我想使用Matlab中的一些并行特性。并执行以下命令。
matlabpool open local 12;
batch(funcname,1,{arg},'PathDependencies',p,'Matlabpool',1);然后所有的进程在剩下的时间里保持静默...但没有打开matlabpool。它将正常结束。matlabpool和batch的使用有冲突吗?
发布于 2012-01-09 15:14:48
matlabpool命令在本地调度程序上运行一个并行作业,为您提供运行parfor循环和spmd块主体的工作进程。这意味着当matlabpool打开时,可供本地调度程序使用的工作进程数会减少。然后,当您尝试运行batch作业时,它只能在有空闲的工作线程时运行。
您可以使用“并行”桌面菜单项中的“作业监视器”(您的matlabpool会话将在那里显示为具有12个任务的状态running中的作业),或者通过执行以下代码段来了解您的本地调度程序上有多少正在运行的作业:
s = findResource( 'scheduler', 'Type', 'local' );
[pending, queued, running, finished] = findJob(s);
running发布于 2012-05-29 22:09:17
如果你想同时使用批处理和parfor,用matlabpool打开的worker比其他时候少一个。所以在你的情况下是11。如果您先批处理,然后再批处理matlabpool,它将自动执行此操作,但反之亦然。
查看队列的步骤:
c=parcluster
c.Jobs有趣的是,如果您打开第二个matlab实例,您可以获得另外12个工作进程。但奇怪的是,第三个不是。不过,我猜如果你真的把它们都用上了,那就有道理了。
https://stackoverflow.com/questions/8777810
复制相似问题