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

並列処理操作は、ユーザーのプログラム・ソースでプラグマ・ディレクティブによって制御します。プラグマは、-qsmp コンパイラー・オプションで並列化が使用可能になっているときにのみ有効です。


OpenMP ディレクティブ

C に適用 Applies to C++

構文

#pragma omp pragma_name_and_args
statement_block

プラグマ・ディレクティブは、一般に、適用対象のコードのセクションの直前に記述します。 omp parallel ディレクティブは、並列化されるプログラム・コードの領域を定義する場合に使用します。その他の OpenMP ディレクティブは、定義済み並列領域内のデータ変数の可視性、およびその領域内の作業の共用方法と同期方法を定義します。

例えば、以下の例は、 for ループの反復が並列で実行できる並列領域を定義しています。

#pragma omp parallel
{
  #pragma omp for 
    for (i=0; i<n; i++)
      ...
}

この例は、プログラム・コードの複数の非反復セクションが並列で実行できる並列領域を定義しています。

#pragma omp sections
{
  #pragma omp section 
     structured_block_1
           ...
  #pragma omp section 
     structured_block_2
           ...
      ....
}
 

関連概念

プログラムの並列化

関連参照

smp
並列処理を制御するプラグマ
並列処理のための OpenMP ランタイム・オプション
並列処理に使用する組み込み関数 IBM Copyright 2003