ここでは、OpenMP 宣言子と節の概要を説明します。
宣言子 |
説明 |
---|---|
PARALLEL |
並列実行領域を定義します。 |
DO |
関連付けられたループの反復が並列実行される領域を指定する、反復的なワークシェアリングの構造を識別します。 |
SECTIONS |
チーム内のスレッド間で分割される一連の構造ブロックを指定する、非反復的なワークシェアリングの構造を識別します。 |
SECTION |
囲まれた SECTION 構造の部分として、関連する構造ブロックを並列実行するように指定します。 |
SINGLE |
対応する構造化ブロックがチーム内の 1 つのスレッドだけで実行されるように指定する構造を識別します。 |
PARALLEL FOR |
1 つの for 宣言子を含む並列領域のショートカット。
|
FOR |
関連付けられたループの反復が並列実行される領域を指定する、反復的なワークシェアリングの構造を識別します。 |
PARALLEL SECTIONS |
1 つの SECTIONS 構造を含む並列領域を指定するショートカット形式です。 |
MASTER |
チームのマスタースレッドのみで実行する構造ブロックを指定する構成体を示します。 |
CRITICAL[lock] |
関連する構造ブロックの実行を一度に 1 スレッドだけに制限する構成体を示します。各スレッドは、他のスレッドが同じ lock 引数でクリティカル構造を実行しなくなるまで、クリティカル構造の最初で待機します。 |
BARRIER |
チーム内のすべてのスレッドを同期化します。各スレッドは、チーム内の他のすべてのスレッドがこのポイントに到達するまで待機します。 |
ATOMIC |
特定のメモリー・ロケーションをアトミックに更新し、同時に複数のスレッドによる書き込みの危険性を回避するようにします。 |
FLUSH [(list)] |
クロススレッド・シーケンス・ポイントを指定します。このポイントでは、チーム内のすべてのスレッドから見たメモリー内の特定のオブジェクトの状態の整合性が保たれるように、プログラム上で保証する必要があります。オプションの list 引数は、フラッシュする変数をカンマ区切りでリストします。 |
ORDERED |
ORDERED 宣言子に続く構造ブロックを、シーケンシャル・ループ内で反復が実行される順序で実行します。 |
THREADPRIVATE |
指定された名前付きのファイル有効範囲変数または名前空間の有効範囲変数を特定のスレッドに対してプライベートにし、そのスレッド内ではファイル有効範囲を参照可能にします。 |
節 |
説明 |
---|---|
PRIVATE |
チーム内の各スレッドに対して private になるように変数を宣言します。 |
FIRSTPRIVATE |
private 節で指定される機能のスーパーセットを指定します。 |
LASTPRIVATE |
private 節で指定される機能のスーパーセットを指定します。 |
SHARED |
チーム内のすべてのスレッドで変数を共用します。 |
DEFAULT |
変数のデータ有効範囲属性を設定できます。 |
REDUCTION |
スカラー変数の削減を実行します。 |
ORDERED |
ordered 宣言子に続く構造ブロックを、シーケンシャル・ループ内で反復が実行される順序で実行します。 |
IF |
if(scalar_logical_expression) 節が存在する場合、scalar_logical_expression 節が TRUE である場合にのみ、囲まれたコードブロックは並列に実行されます。それ以外の場合は、コードブロックは直列に実行されます。 |
SCHEDULE |
for ループの反復がチームのスレッド間でどのように分割するかを指定します。 |
COPYIN |
並列領域を実行しているチーム内の各スレッドの threadprivate 変数に、同じ名前を割り当てます。 |