主要内容

parfor 循环中的归约赋值

什么是归约赋值?

规则要求循环迭代必须是独立的,但归约赋值(或简称归约)是一个例外。归约变量会将依赖于所有循环迭代的值累加在一起,但与迭代顺序无关。有关支持的归约变量的列表,请参阅Reduction Variables

一个 parfor 循环中的多个归约

您可以在一个 parfor 循环内多次执行相同的归约赋值,前提是每次使用相同的数据类型。

例如,在以下 parfor 循环中,u(i)v(i) 必须为相同的类型。

parfor i = 1:10;
  X = X + u(i);
  X = X + v(i);
end

同样,以下示例有效,前提是 u(i)v(i) 是相同的类型。

parfor i=1:10
  r = foo(r,u(i));
  r = foo(r,v(i));
end