![](/img/trans.png)
[英]How can we create a distributed array for specific number of workers (cores) in MATLAB?
[英]Can we have more workers than number of cores in MATLAB?
我有一個Core i7
CPU和4 real cores
。 我的計算能否超過4 workers
,或者工人數量總是等於核心數量?
謝謝。
您將能夠擁有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);
關閉一個開放的游泳池。 然后你可以嘗試打開另一個有更多工人的游泳池。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.