2014-08-29 78 views
0

我想在Matlab 2013a中使用parfor循環。但是,當我嘗試打開matlabpool時,它給出了下面列出的錯誤。如何在matlab2013a中使用matlabpool?

matlabpool open 

Starting matlabpool using the 'local' profile ... stopped. 

Error using matlabpool (line 144) 

Failed to open matlabpool. (For information in addition to the causing error, 
validate the profile 'local' in the Cluster Profile Manager.) 

Caused by: 
    Error using parallel.internal.pool.InteractiveClient/start (line 281) 
    Failed to start matlabpool. 
     Error using parallel.Cluster/createCommunicatingJob (line 82) 
     The property "NumWorkersRange" cannot be set after submission. 

或當我使用:

n = matlabpool('size') 

它給了我0的答案。

我該如何解決這個問題? 我的系統配備了兩個2.66 GHz 6核Intel Xeon處理器。

+0

錯誤消息已經告訴你該怎麼做。轉到並行>管理羣集配置文件。在那裏你選擇了「本地」配置文件並按下「驗證」。它應該告訴你該怎麼做,或者至少提供一些額外的細節。 – Daniel 2014-08-29 22:56:12

回答

0

MathWorks完全改變了Parallel Toolbox的命令結構。你想要的命令是parpool。我會從那裏開始。一個很好的新功能是,如果你沒有明確啓動一個池,然後調用一個像parfor這樣的命令,MATLAB會自動爲你啓動一個。

+0

非常感謝。我試過parpool。我正在使用parfor。但是我如何檢查我的處理器matlab有多少核心正在使用。由於表現不是很好。當我在matlab中查看時間時,最大時間是由parfor採取的......所以不知道爲什麼? – khan 2014-08-29 20:04:00

+0

使用命令['gcp'](http://www.mathworks.com/help/distcomp/gcp.html)。至於你的性能問題,你必須提供更多細節(最好在單獨的問題中)以及你的基準測試方法。一般來說,如果你的計算結果很短,那麼你將會在工人之間轉移日期時受到一定的處罰。如果計算時間足夠長,傳輸開銷時間相對可以忽略不計,則只會看到加速。 – craigim 2014-08-29 20:41:48

+0

檢查你的matlab窗口的右下角。在那裏你可以看到連接的工人數量。它應該表明至少有兩名工人,在你的系統上它可能會開放更多的工人。 – Daniel 2014-08-29 22:59:57