インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド
ここでは、インテル® C++ コンパイラーでサポートされている OpenMP* プラグマと節の概要を説明します。 OpenMP* API の詳細については、OpenMP* Web サイトの OpenMP Application Program Interface 4.0 バージョン 4.0 仕様を参照してください。
このプラグマを使用してスレッドのチームを形成しスレッドを並列に実行します。
プラグマ |
説明 |
---|---|
スレッドのチームにより並列に実行される構造ブロックを指定します。 |
これらのプラグマを使用してスレッドのチーム間のワークを共有します。
プラグマ |
説明 |
---|---|
並列ループを指定します。ループの各反復は、チーム内の 1 つのスレッドにより実行されます。 |
|
チーム内のスレッド間で分配される構造ブロック領域を定義します。 |
|
チーム内の 1 つのスレッドにより 1 回だけ実行するコードブロックの開始位置を指定します。 |
これらのプラグマは WORKSHARING プラグマが続く PARALLEL プラグマのショートカットとして使用します。
プラグマ |
説明 |
---|---|
関連付けられた 1 つ以上のループを含む並列構造を指定します。 |
|
1 つの sections 構造を含む parallel 構造を指定します。 |
これらのプラグマを使用して遅延実行を行います。
プラグマ |
説明 |
---|---|
実行が遅延される可能性があるコードブロックの開始位置を指定します。 |
|
現在のタスクを中断し、別のタスクの実行を優先することを許可します。 |
これらのプラグマを使用してスレッド間を同期します。
プラグマ |
説明 |
---|---|
アトミックに実行する必要がある計算を指定します。 |
|
チーム内のすべてのスレッドが到着するまで各スレッドが待機しなければならないコード位置を指定します。 |
|
一度に 1 つのスレッドのみアクセスできるコードブロックを指定します。 |
|
スレッドから見たメモリーの状態と実際のメモリーの整合性が保たれるポイントを識別します。 |
|
チームのマスタースレッドで 1 回だけ実行するコードブロックの開始位置を指定します。 |
|
チームのマスタースレッドで 1 回だけ実行するコードブロックの開始位置を指定します。 |
|
囲まれたタスクと派生タスクがすべて完了するまでプログラムを待機させます。 |
|
現在のタスクが開始してから、生成された子タスクの完了まで待機するように指定します。 |
このプラグマを使用してグローバルなプライベート・データをスレッドに割り当てます。
プラグマ |
説明 |
---|---|
各スレッドにプライベートとして割り当てられるグローバル変数のリストを指定します。 |
これらのプラグマを使用してコプロセッサー上の実行を制御します。
プラグマ |
説明 |
---|---|
target 領域から呼び出せる関数のデバイス固有バージョンを作成します。このプラグマは、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
1 つ以上のループの反復をすべてのスレッドチームのマスタースレッド間で共有するかどうかを指定します。 |
|
デバイスデータ環境を作成して同じデバイスで構文を実行します。このプラグマは、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
ホストからターゲットデバイスへ変数をマッピングして、デバイスのデータ環境を作成します。このプラグマは、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
プラグマで指定されているモーション節に応じて、デバイスとホスト間でデバイスのデータ環境の項目の整合性を保持します。このプラグマは、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
スレッドチームを複数作成し、各チームのマスタースレッドの構造ブロックを実行します。 |
これらのプラグマを使用してベクトル・ハードウェア上の実行を制御します。
プラグマ |
説明 |
---|---|
ループを SIMD (Single Instruction, Multiple Data) 命令を使用して同時に実行されるループに変換します。 |
|
SIMD ループから一度の呼び出しで、SIMD (single instruction-multiple data) 命令を使用して複数の引数を処理できる関数バージョンを作成します。 |
|
SIMD (Single Instruction, Multiple Data) 命令を使用して同時に実行可能なループの開始位置を指定します。ループの各反復は、チーム内の 1 つのスレッドにより実行されます。 |
|
SIMD (Single Instruction, Multiple Data) 命令を使用して実行するループを含む並列領域を指定します。 |
これらの節を使用してプラグマのオプションを指定します。