並列処理を制御するプラグマ

このページの #pragma ディレクティブによって、ユーザー・プログラムでの並列処理をコンパイラーが処理する方法を制御することができます。

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

OpenMP プラグマ・ディレクティブ
C に適用 C++ に適用
説明
#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 であるが、そのスレッド内でファイル・スコープが可視であると定義する。

関連概念

プログラムの並列化

関連タスク

プラグマを使用した並列処理の制御

関連参照

並列処理のための OpenMP ランタイム・オプション
並列処理に使用する組み込み関数

OpenMP 仕様の完全な情報については、以下を参照してください。

IBM Copyright 2003