Matlab Parallel Computing Toolbox是否只为一个核心分配1个工作者?

时间:2015-08-27 18:44:50

标签: matlab matlabpool

您好我使用matlab并行计算工具箱进行并行计算。我的笔记本电脑是2核4线程,所以我假设任务可以连接4个作品?但是,当我输入命令" matlabpool open"时,只连接了2个工作人员。任何人都可以告诉我如何指定要连接的确切工作人员数量,以便我可以分配任务的工作人员数量多于核心数量,从而提高计算效率吗?谢谢!

1 个答案:

答案 0 :(得分:3)

您可以告诉matlab使用特定数量的工作人员,但它不会让您使用超过最大数量,这可能是您的物理核心数版本 - 和集群依赖。 R2012b允许在本地群集中使用12名工作人员R2014a allows more than 12

来自help matlabpool

  

...

     

matlabpool [poolSize]

     

...

     

matlabpoolmatlabpool OPEN使用默认值启动工作池       具有该配置文件指定的池大小的群集配置文件。您       也可以使用matlabpool OPEN <poolSize>指定池大小,但请注意       大多数集群都有可以启动的最大进程数。

     

% Start a worker pool using the local profile with 2 workers:
    matlabpool local 2

<强>更新

我玩了一下。在R2012b上要求16名工人给我错误

  

您至少要求16名工作人员,但本地群集只允许12名工作人员。

这意味着这个版本不可能有更多的工人。但是,如果我用12个工作人员调用本地池,我会收到错误

  

您要求至少12名工作人员,但群集&#34; local&#34;将NumWorkers属性设置为允许最多4个工作者。跑一个           在更多工作人员上交换工作(本地群集最多为12),增加NumWorkers属性的值。           簇。本地群集的NumWorkers的默认值是本地计算机上的核心数。

因此,根据您的版本,您可能无法使用超过12名工作人员。如果您看到后者错误,则可以重新定义群集以允许更多内核。复制local池:

mycluster=parcluster('local');
mycluster.NumWorkers=48;
matlabpool(mycluster,48);
...
matlabpool close;