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