parfor在计算机上像普通的for循环一样执行?

时间:2019-03-27 20:15:03

标签: matlab parfor

我有两台计算机和一个可以工作的MATLAB代码。

1)在一台计算机上,包含parfor的行按预期执行并行计算。

2)在另一台计算机上,parfor就像普通的for循环一样执行,没有任何并行化。即使同时询问最少两件事,也会发生这种情况。

在两台计算机上都不会发生代码错误。

这是怎么回事?

1 个答案:

答案 0 :(得分:1)

documentation to parfor说:

  

默认情况下,MATLAB使用并行池中的可用工作程序。 [...]您可以使用parpool覆盖并行池中的默认工作程序数。当池中没有可用的工作程序或M为零时,MATLAB仍将以不确定的顺序执行循环体,但不能并行执行。测试代码时,请使用此语法在并行执行和串行执行之间切换。

因此,如果一台计算机没有可用的工作线程,则按顺序执行循环。