使用matlabpool批处理的问题

时间:2012-01-08 13:13:31

标签: matlab parallel-processing

我想在Matlab中使用一些并行功能。 并执行以下命令。

matlabpool open local 12;
batch(funcname,1,{arg},'PathDependencies',p,'Matlabpool',1);

然后所有进程在剩下的时间内保持沉默...... 但是没有打开matlabpool。它会正常完成。 使用matlabpool和批处理之间是否有任何冲突?

2 个答案:

答案 0 :(得分:1)

matlabpool命令在本地调度程序上运行并行作业,为您提供运行parfor循环和spmd块主体的工作人员。这意味着当matlabpool打开时,本地调度程序可用的工作程序数量会减少。然后,当您尝试运行batch作业时,它只能在有工作人员空闲时运行。

您可以使用“并行”桌面菜单项中的“作业监视器”查看本地计划程序上有多少正在运行的作业(您的matlabpool会话将显示为状态{ {1}}有12个任务),或执行以下代码:

running

答案 1 :(得分:1)

如果你想同时批量和parfor,用matlabpool打开一个比你更少的工人。在你的情况下11。如果你先批量然后再批量matlabpool,它会自动执行此操作,但反之则不然。

查看队列:

c=parcluster
c.Jobs
有趣的是,如果你打开第二个matlab实例,你可以得到另外12个工人。但奇怪的是没有第三个。虽然我觉得好像你真的使用它们所有它会捶打。