我试图实现一些逻辑,可以在下面的例子中简化:
count = 5;
value = 0;
parfor i = 1:2
if i == 1
for u = 0:count
%Do dome work
pause(5);
value = value + 1;
end
else
while true
disp(value)
end
end
end
我想并行运行共享某个变量的两个循环。上面是我能得到的最接近的。我意识到如果我使用如图所示的parfor,我就可以在各自的工作器上调用每个循环。不幸的是,我得到了错误The PARFOR loop cannot run due to the way variable 'value' has been used
任何人有一个想法,我如何才能成功地实现上述目标?
1条答案
按热度按时间mzaanser1#
很难说你到底想在这里做什么,但是
parfor
看起来并不合适。你可能最好使用spmd
,它被设计成允许工作者之间的通信。但是,注意spmd
内部使用的通信方法本质上是“双边的”--即发送者和接收者都必须参与。类似于这样: