我有适用于 Ubuntu 64 位的 Matlab R2012b。我有一个 Intel Core i3 CPU M 330 @ 2.13GHz × 4。
我想使用parfor同时并行化 4 个循环。因为英特尔酷睿 i3 有 2 个内核和 4 个线程,所以我使用以下代码:
if matlabpool('size') == 0 % checking to see if my pool is already open
matlabpool(4)
else
matlabpool close
matlabpool(4)
end
我得到以下错误:
错误:
您要求至少 4 个工作人员,但集群“本地”的 NumWorkers 属性设置为最多允许 2 个工作人员。要在比这更多的工作人员(本地集群最多 12 个)上运行通信作业,请增加集群的 NumWorkers 属性的值。本地集群的 NumWorkers 的默认值是本地机器上的核心数。
为什么?我机器中 NumWorkers 的默认值为 2,但如果我可以同时进行 4 个循环,我该如何获得呢?