2014-08-29 37 views

回答

4

您將能夠擁有8名工作者,因爲4個核心具有超線程,爲您提供8個邏輯核心。但是,因爲只有4個物理核心,理論上8個工作人員不應該比4個工作人員快得多。 但是,我確實發現在我的i7上6和8名工人比4人快。

爲此嘗試

matlabpool open 8; 
parfor I = 1:N 
    #your code 
end 

編輯:在R2014a matlabpool被替換爲parpool,所以用這個來代替:

parpool('local', 8); 
parfor I = 1:N 
    #your code 
end 

打開本地計算機上的8個內核。

注意:當Matlab啓動時,您只需要運行一次matlabpool命令。然後,您可以在不打開工作人員的情況下運行帶有parfor循環的許多腳本,它們將保持打開狀態,直到您關閉它們或關閉Matlab。

這應該會在本地系統上打開8位工作人員。

如果您收到有關可用工人數量的錯誤,則需要更改設置: 並行菜單 - >管理配置。右鍵單擊「本地」行。在調度選項卡,設置爲8

最後「可向調度人員的數量」,你只能有工人在同時打開的一個池,使用:

poolobj = gcp('nocreate'); 
delete(poolobj); 

來關閉打開游泳池。然後你可以嘗試打開另一個有更多工人的游泳池。

+0

thanks.Should我應該在'parfor'之前加入'R2014a'嗎? – user2991243 2014-08-29 06:50:42

+0

要檢查是否啓用了超線程(即8個邏輯內核),請打開任務管理器並轉至性能選項卡,您應該在CPU使用率歷史記錄中看到8個圖。 (僅適用於Windows) – Sheldon 2014-08-29 06:51:47

+0

+'''MATLAB'用於'core i7'的默認工作數是多少? – user2991243 2014-08-29 06:53:38

相關問題