我想在Matlab中使用一些并行功能。 并执行以下命令。使用matlabpool批处理的问题
matlabpool open local 12;
batch(funcname,1,{arg},'PathDependencies',p,'Matlabpool',1);
然后所有进程的时间... 其余但是,如果没有打开matlabpool保持沉默。它会正常完成。 使用matlabpool和批处理之间是否存在任何冲突?
我想在Matlab中使用一些并行功能。 并执行以下命令。使用matlabpool批处理的问题
matlabpool open local 12;
batch(funcname,1,{arg},'PathDependencies',p,'Matlabpool',1);
然后所有进程的时间... 其余但是,如果没有打开matlabpool保持沉默。它会正常完成。 使用matlabpool和批处理之间是否存在任何冲突?
matlabpool
命令在本地计划程序上运行并行作业,为您提供运行parfor
循环和spmd
块的工作站。这意味着虽然matlabpool
处于打开状态,但本地调度程序可用的工作人员数量会减少。然后,当您尝试运行batch
作业时,它只能在有工人空闲时运行。
你可以找到你有你的本地调度程序或者使用“作业监视器”,从“并行”桌面菜单项有多少正在运行的作业(您matlabpool
会议将有显示为状态running
12个任务的工作),或通过执行以下代码片段:
s = findResource('scheduler', 'Type', 'local');
[pending, queued, running, finished] = findJob(s);
running
,打开一个都不能少与matlabpool工人比你,否则会。所以11你的情况。如果你先批量然后matlabpool,它会自动做到这一点,但反之亦然。
看到队列:
c=parcluster
c.Jobs
有趣的是,如果你打开第二个MATLAB实例,你可以得到另外12名工人。但奇怪的是没有第三个。虽然我猜测你好像实际上使用它们,但它会摔打。