Sun Studio 12: C ユーザーズガイド

reduction 変数

#pragma MP taskloop reduction (縮約変数リスト) このプラグマは、縮約変数リストにあるすべての変数が、そのループに対して縮約変数として扱われるために使用します。縮約変数とは、ループのある繰り返しを処理している個々のプロセッサによって、その値が部分的に計算され、最終値がすべての部分値から計算される変数のことをいいます。縮約変数リストにより、そのループが縮約ループであることをコンパイラに指示し、適切な並列縮約用のコードを生成できるようにします。次の例について考えてみましょう。


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

ここでは変数 x(和の) 縮約変数であり、i ループが (和の) 縮約ループになっています。