正如我所知道的 Matlab 中的并行编程,我们可以准确地指定什么工人做什么;使用 :
if labindex == x
%some computations
end
我们也可以并行运行for
循环;使用 :
parfor i1 = x:y
%some computations
end
我正在使用一个有几个节点的集群,每个节点有 8 个核心。
我想运行 2 个函数,每个函数都包含一个parfor
循环,每个函数都由一个 worker 执行,我的代码是这样的:
spmd
if labindex == 1
alpha = forward( some parameters );
end
if labindex == 2
beta = backward( some parameters );
end
end
我希望这 2 个函数由 2 个不同的节点同时执行。但 Matlab 抛出此错误:
PARFOR or SPMD can not be used inside an SPMD block.
为什么呢?任何想法?