Sun Studio 12:C 用户指南

reduction 变量

#pragma MP taskloop reduction (list_of_reduction_variables) 指定出现在 reduction 变量列表中的所有变量均将视为循环的 reduction 变量。reduction 变量的部分值可由处理循环迭代的每个处理器单独计算,其最终值可从其所有部分值中计算。有了 reduction 变量列表,便于编译器识别循环是否为约简循环,从而允许为其生成并行约简代码。请看以下示例:


#pragma MP taskloop reduction(x)
    for (i=0; i<n; i++) {
         x = x + a[i];
}

变量 x(sum) 约简变量,i 循环是 (sum) 约简循环。