我有一个Core i7
CPU和4 real cores
。我的计算能否超过4 workers
,或者工人数量总是等于核心数量?
感谢。
答案 0 :(得分: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循环的脚本而不再打开worker,它们将保持打开状态,直到你关闭它们或关闭Matlab。
这应该在您的本地系统上打开8名工作人员。
如果您收到有关可用工作人员数量的错误,则需要更改设置: 并行菜单 - >管理配置。右键单击" local"线。在“调度程序”选项卡中,设置"可供调度程序使用的工作者数量"到8。
最后,您一次只能打开一个工作池,使用它:
poolobj = gcp('nocreate');
delete(poolobj);
关闭一个开放池。然后你可以尝试打开另一个有更多工人的游泳池。