主要内容

使用parfor-循环减少分配

这两个例子表明parfor-循环使用reduce赋值。减少是一个循环迭代的累积。左边的例子使用了x在循环的10次迭代中积累一个总和。右边的例子生成了一个串联数组,1:10.在这两个例子中,迭代在worker上的执行顺序并不重要:当worker为每个迭代计算单个结果时,客户端正确地积累并组装最终的循环结果。

x = 0;parforx = x + I;结束x
x = 55
x2 = [];n = 10;parforI = 1:n x2 = [x2, I];结束x2
X2 = 1 2 3 4 5 6 7 8 9 10

如果循环迭代以非确定性序列操作,则您可能期望右边示例中的连接序列是非连续的。然而,MATLAB®识别连接操作并产生确定的结果。

下一个尝试计算斐波那契数的示例是无效的parfor的元素的值f在一次迭代中依赖于的其他元素的值f在其他迭代中计算。

f = 0 (50);f (1) = 1;f (2) = 2;parforN = 3:50 f(N) = f(N -1) + f(N -2);结束

当你完成了你的循环示例,清空你的工作区并删除你的并行工作者池:

明确的删除(gcp)

相关的话题