0

如果我们Parfor在 MATLAB(并行计算)中使用,我们无法使用Save('My_workspace'). 除此之外,如果我们简单地删除循环;中的每一行,ForMATLAB 会显示输出,command windowParfor不会出现任何内容。循环中的一切For都是正常的,但是当我更改For为时Parfor会出现一些错误,因此我需要检查Parfor.

我想检查流程和数据的流,正如我在For循环中看到的那样。我怎样才能在Parfor结构上做到这些?

谢谢。

4

2 回答 2

2

save不允许进入parfor。根据这篇文章,违反了透明度。但是,您可以使用函数解决此问题,因为函数有自己的堆栈,如本文所示

parfor ii = 1:4
    x = rand(10,10);
    y = ones(1,3);
    parsave(sprintf('output%d.mat', ii), x, y);
end

function parsave(fname, x,y)
save(fname, 'x', 'y')
end

命令窗口输出的另一个问题的答案是“你不能”。请参阅Mathworks 的文档(在最后一节,显示输出),答案是“否”。

于 2014-08-13T18:18:28.397 回答
0

将其更改为常规 for 循环以进行调试,然后在修复后将其放回 parfor。

于 2014-08-13T17:27:11.553 回答