Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中调用工人之间的停机时间_Matlab_Parallel Processing - Fatal编程技术网

在MATLAB中调用工人之间的停机时间

在MATLAB中调用工人之间的停机时间,matlab,parallel-processing,Matlab,Parallel Processing,我正在MATLAB中运行以下代码: for i=1:n job1=batch('script1.m'); ... job8=batch('script8.m'); wait(job1); ... wait(job8); load(job1,'var1'); ... load(job8,'var8'); delete(job1); ... delete(job8); for j=1:m do stuff wi

我正在MATLAB中运行以下代码:

for i=1:n
   job1=batch('script1.m');
   ...
   job8=batch('script8.m');
   wait(job1);
   ...
   wait(job8);
   load(job1,'var1');
   ...
   load(job8,'var8');
   delete(job1);
   ...
   delete(job8);
   for j=1:m
      do stuff with var1 thru var8;
   end
end
我在一个四核处理器上运行这段代码,根据“j循环”的输出判断,并监控机器的性能,似乎在“j循环”之后和8名工人下一次呼叫之前有大量的停机时间


有没有办法缩小这些电话之间的差距?原因是什么?我应该提到的是,工作人员需要等待“j循环”的结果(该循环不是计算密集型的)。

在“使用var1到var8执行stuff”和下一次迭代之间是否存在依赖关系?是的,脚本1到8使用该“stuff”位的输出。如果内部循环不允许任何并行任务,优化代码是唯一剩下的可能性;这最初是一个系列的蒙特卡罗模拟,“做东西”实际上是一个关于{var1..var8}的统计过程。我只是想知道为什么在“j循环”之后,给工人的电话之间会出现延迟。