Oracle® Solaris Studio 12.4: OpenMP API ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

6.3.1 parallel 構文内のスカラー変数のスコープ宣言の規則

parallel 構文内で参照され、暗黙に決まるか事前定義されたスコープを持たないスカラー変数を自動宣言する場合、コンパイラは、変数の使用を次の規則 PS1 - PS3 に対して順番に確認します。

  • PS1: parallel 構文内で変数を使用しても、その構文を実行するチーム内でスレッドに関するデータ競合状態が発生しない場合、その変数のスコープは shared と宣言されます。

  • PS2: parallel 構文を実行するすべてのスレッドで、変数が同じスレッドによる読み取りの前に常に書き込まれる場合、その変数のスコープは private と宣言されます。変数が private とスコープ宣言することが可能で、並列構文のあと、書き込みの前に読み取られ、構文が parallel for/doparallel sections のいずれかである場合、その変数のスコープは、lastprivate と宣言されます。

  • PS3: 変数がコンパイラの認識可能な縮約処理で使用されている場合、その変数のスコープは、その特定の型を持つ reduction と宣言されます。