OpenMP プラグマ・ディレクティブの要約

このページに要約されているプラグマ・ディレクティブは、コンパイラーがプログラムの中で並列処理をどのように扱うかを制御します。

ディレクティブは、 このディレクティブの直後に続くステートメントまたはステートメント・ブロックに対してのみ適用されます。

OpenMP プラグマ・ディレクティブ
説明
#pragma omp atomic アトミックに更新されなければならず、しかも、 複数の同時書き込みスレッドに公開してはならない特定のメモリー位置を識別する。
#pragma omp parallel 複数のスレッドによって並列で実行されるように並列領域を定義する。 特定の例外はありますが、他のすべての OpenMP ディレクティブは、 このディレクティブで定義された並列領域内で実行されます。
#pragma omp for 反復が並列で実行される反復 for ループを識別する作業共有構成。
#pragma omp parallel for omp parallelomp for プラグマ・ディレクティブのショートカット組み合わせで 単一の for ディレクティブを含む並列領域の定義に使用される。
#pragma omp ordered 順番に実行しなければならないコードの構造化ブロックを識別する作業共有構成。
#pragma omp section、#pragma omp sections 並列で実行する必要があるコードの 1 つ以上のサブセクションを含む、 コードの非反復セクションを識別する作業共有構成。
#pragma omp parallel sections omp parallelomp sections プラグマ・ディレクティブのショートカット組み合わせで単一の sections ディレクティブを含む並列領域の定義に使用される。
#pragma omp single 単一の使用可能スレッドによって実行しなければならないコードのセクションを識別する作業共有構成。
#pragma omp master マスター・スレッドでしか実行してはならないコードのセクションを識別する同期構成。
#pragma omp critical 単一スレッドによって一度に実行しなければならないステートメント・ブロック を識別する同期構成。
#pragma omp barrier 並列領域内のすべてのスレッドを同期化する。
#pragma omp flush 並列領域内のすべてのスレッドがメモリー内で指定されたオブジェクトの同じビューを持っていることをコンパイラーが保証するポイントを識別する同期構成体。
#pragma omp threadprivate 選択したファイル・スコープ・データ変数のスコープがスレッドに対して private であるが、 そのスレッド内でファイル・スコープが可視であると定義する。