1
對大數據集做迴歸處理,我有一個龐大的只讀矩陣,我想在幾個線程之間共享。我已經看過了這樣做的各種方式,並發現sharedmatrix
工具包正是我所需要的。通過tutorial閱讀,我想出了以下設置:Matlab中的共享內存和等待會話
Session 0
- 只是加載了基體,並使其可Session 1..n
- 工會議
的問題是,Session 0
有隻有在所有其他n次會話完成後才能完成。你知道如何讓會話等待嗎?最好的解決方案是讓它等到我殺了它,因爲我在遠程Linux系統上運行腳本,並且一直沒有連接它。
UPDATE:
「自由」指令標記爲刪除共享內存段: 在我已經改變了我的問題解決辦法結束,閱讀本教程的這一部分之後。 注意:直到每個連接的會話 明確分離或終止,它才被實際刪除。一旦上次會話 分離,系統將回收分配的分段。
這意味着我已經創建了一個加載矩陣,使其可用並開始自己的計算的「主」會話,以及使用共享矩陣的多個「從」會話。即使主會話較早完成,對於從會話也不會造成問題,因爲共享矩陣保留在內存中,直到最後一個使用它的進程終止。
也許等待用戶按下某個鍵(例如「暫停」)就足夠了? –
如果您確實想要無限期地等待,請使用Eitan的解決方案。更一般地說,像['labBarrier'](http://www.mathworks.com/help/distcomp/labbarrier.html)這樣的東西就是你應該用來執行這種同步的東西。 –
@JoshuaBarr您的評論是一個很好的回答。爲什麼不把它作爲答案提交? – shoelzer