簡體   English   中英

我們可以在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM