【发布时间】:2015-02-12 10:17:43
【问题描述】:
在 MATLAB 文档中,我们有一个 parfeval 函数的代码示例。我对此有一些疑问。这是代码:
p = gcp();
%// To request multiple evaluations, use a loop.
for idx = 1:10
f(idx) = parfeval(p,@magic,1,idx); % Square size determined by idx
end
%// Collect the results as they become available.
magicResults = cell(1,10);
for idx = 1:10
%// fetchNext blocks until next results are available.
[completedIdx,value] = fetchNext(f);
magicResults{completedIdx} = value;
fprintf('Got result with index: %d.\n', completedIdx);
end
-
parfeval是如何工作的? - 此函数是否会将
magic函数的每个 (idx) 评估发送给特定的工作人员?
-
-
如果我们只有一行代码
f = parfeval(p,@magic,1,10);:- 此代码将如何工作?
- 它会只向一名工作人员发送评估并返回输出吗?
-
parfeval和parfevalOnAll有什么区别?
-
fetchNext和fetchOutputs有什么区别? - 为什么在第一个
for循环和第二个循环之后需要fetchNext才能获得结果? - 第一次循环后我们没有所有结果?为什么?
- 我认为我们正在等待工作人员在第二个循环中完成该过程。这是真的?我们不能没有任何循环吗?
-
我认为我们可以在第二个循环中使用
magicResults{idx} = fetchOutputs(f(idx));。我们有同样的结果。这两种结构有什么区别?
【问题讨论】:
-
@embert 。感谢您的完美编辑;-)
-
希望您能尽快得到答复。
标签: matlab parallel-processing parfor