use*_*243 3 parallel-processing matlab worker
我有一个Core i7CPU 和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
Run Code Online (Sandbox Code Playgroud)
编辑:在 R2014amatlabpool中被替换为parpool,因此请改用:
parpool('local', 8);
parfor I = 1:N
#your code
end
Run Code Online (Sandbox Code Playgroud)
在本地机器上打开 8 个内核。
注意:您只需要matlabpool在 Matlab 启动时运行该命令一次。然后您可以运行许多带有 parfor 循环的脚本,而无需再次打开工作程序,它们将保持打开状态,直到您关闭它们或关闭 Matlab。
这应该在您的本地系统上打开 8 个工人。
如果您收到有关可用工人数量的错误,则您需要更改设置:并行菜单 -> 管理配置。右键单击“本地”行。在调度程序选项卡中,将“调度程序可用的工作线程数”设置为 8。
最后,你一次只能打开一个工作池,使用这个:
poolobj = gcp('nocreate');
delete(poolobj);
Run Code Online (Sandbox Code Playgroud)
关闭一个开放的游泳池。然后你可以尝试用更多的工人打开另一个池。