对大型数据集进行回归,我有一个巨大的只读矩阵,我想在几个线程之间共享。我已经研究了各种方法,发现sharedmatrix
工具包正是我需要的。通过tutorial阅读,我想出了以下设置:
Session 0
- 只需加载矩阵并使其可用Session 1..n
- 工人会议问题是Session 0
必须在所有其他n个会话结束后才能完成。你知道如何让会话等待吗?最好的解决方案是让它等到我杀了它,因为我在远程linux系统上运行脚本并且一直没有连接它。
更新 最后,在阅读本教程的这一部分之后,我已经改变了我对问题的处理方法:
“free”指令标记要删除的共享内存段。 注意:直到每个连接的会话才会实际删除它 明确分离或终止。最后一次会议 分离,系统将回收分配的段。
这意味着我创建了一个“主”会话,它加载矩阵,使其可用,然后开始自己的计算,以及几个使用共享矩阵的“从”会话。即使主会话提前完成,它也不会对从会话产生任何问题,因为共享矩阵保留在内存中,直到最后一个使用它的进程终止。