インテル® Fortran コンパイラー 16.0 ユーザー・リファレンス・ガイド
ここでは、インテル® Fortran コンパイラーでサポートされている OpenMP* 宣言子と節の概要を説明します。OpenMP* API の詳細については、OpenMP* Web サイトの OpenMP Application Program Interface バージョン 4.0 および 4.1 仕様を参照してください。
次のリストで、ほかでも同じ名前が使用されている OpenMP* 宣言子には宣言子と明記しています。例えば、FLUSH は宣言子、文、サブルーチンを指します。
これらの宣言子を使用してスレッドのチーム間のワークを共有します。
宣言子 |
説明 |
---|---|
関連付けられたループの反復がチーム内のスレッド間で分割される、反復的なワークシェアの構造を識別します。 |
|
囲まれた SECTION 宣言子がチームのスレッド間に分割されるコードのブロックを定義することを指定します。各セクションは、チーム内のスレッドにより 1 回だけ実行されます。 |
|
コードのスレッドが一度に 1 つのスレッドでのみ実行されることを指定します。 |
|
文または構造のブロックを実行する作業を個別のユニットに分割します。また、実行単位の作業をチームのスレッドに分配して、各作業単位が 1 回だけ実行されるようにします。 |
これらの宣言子を使用してスレッド間を同期します。
宣言子 |
説明 |
---|---|
特定のメモリー位置をアトミックに更新し、複数のスレッドが同時に読み取り/書き込みを行う危険性を回避します。 |
|
チーム内のすべてのスレッドを同期化します。各スレッドは、チーム内のほかのすべてのスレッドがバリアに到達するまで待機します。 |
|
コードのブロックへのアクセスを一度に 1 つのスレッドのみに制限します。 |
|
チームのスレッドでメモリーの状態の整合性が保たれる同期ポイントを識別します。 |
|
チームのマスタースレッドで実行されるコードブロックを指定します。 |
|
チームのスレッドがループの反復順に実行するスレッドのコードブロックを指定します。 |
|
現在のタスクの子タスクと派生タスクがすべて完了するまで待機するように指定します。 |
|
現在のタスクが開始してから、生成された子タスクの完了まで待機するように指定します。 |
|
現在のタスクを中断し、別のタスクの実行を優先することを許可します。 |
この宣言子を使用してグローバルなプライベート・データをスレッドに割り当てます。
宣言子 |
説明 |
---|---|
各スレッドにプライベート (ローカル) な名前付き共通ブロック (スレッド内ではグローバル) を指定します。 |
これらの宣言子を使用してコプロセッサー上の実行を制御します。
宣言子 |
説明 |
---|---|
target 領域から呼び出せる名前付きルーチンのデバイス固有バージョンを作成します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
teams 構造により生成されるすべてのスレッドチームのマスタースレッド間で、ループ反復を共有するように指定します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
デバイスデータ環境を作成して同じデバイスで構文を実行します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
領域の範囲のデバイスデータ環境を作成します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
デバイスのデータ環境へ変数をマップします。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
デバイスのデータ環境から変数をアンマップ (解放) します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
デバイスデータ環境のリスト項目と対応するオリジナルのリスト項目の整合性を保持します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
ターゲット領域内でスレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
これらの宣言子を使用してベクトル・ハードウェア上の実行を制御します。
宣言子 |
説明 |
---|---|
ループの SIMD ベクトル化を要求して制御します。 |
|
SIMD プロシージャーを生成します。 |
宣言子 |
説明 |
---|---|
指定した構文の最内領域の取り消し要求を行います。このプラグマに到達した暗黙的または明示的なタスクは、取り消された構文の最後に進みます。 |
|
暗黙的または明示的なタスクが、指定された節の最内領域で取り消し要求があったかどうかをチェックするポイントを定義します。 |
これらの宣言子は、連続する複数の宣言子のショートカットとして使用します。
宣言子 |
説明 |
---|---|
複数のチームのメンバーである複数のスレッドによって同時に実行できるループを指定します。 |
|
複数のチームのメンバーである複数のスレッドによって並列に実行されるループを指定します。SIMD 命令を使用して同時に実行されます。 |
|
チーム領域のマスタースレッド間で分散されるループを指定します。SIMD 命令を使用して同時に実行されます。 |
|
SIMD 命令を使用して同時に実行できるループを指定します。 |
|
1 つの DO 宣言子を含む並列領域を簡潔に指定する方法を提供します。 |
|
SIMD (Single Instruction, Multiple Data) 命令を使用して実行するループを含む並列領域を指定します。 SIMD 命令を使用して同時に実行できるループを指定します。1 つの SIMD ループ構造だけを含み、その他の文を含まない PARALLEL 構造を簡潔に指定する方法を提供します。 |
|
1 つの SECTIONS 宣言子を含む並列領域を簡潔に指定する方法を提供します。セマンティクスは SECTIONS 宣言子が直後に続く PARALLEL 宣言子を明示的に指定することと同じです。 |
|
1 つの WORKSHARE 宣言子を含む並列領域を簡潔に指定する方法を提供します。 |
|
デバイスデータ環境を作成して同じデバイスで構文を実行します。また、スレッドチームを複数作成し、各チームのマスタースレッドが構造化ブロックを実行します。このプラグマは、インテル® MIC アーキテクチャーにのみ適用されます。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
デバイスデータ環境を作成して同じデバイスで構文を実行します。また、TEAMS 構造により生成されるすべてのスレッドチームのマスタースレッド間で、ループ反復を共有するように指定します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
デバイスデータ環境を作成して同じデバイスで構文を実行します。また、TEAMS 構造により生成される複数のチームのメンバーである複数のスレッド間で、ループが並列に実行されるように指定します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
デバイスデータ環境を作成して同じデバイスで構文を実行します。また、TEAMS 構造により生成される複数のチームのメンバーである複数のスレッド間で、ループが並列に実行されるように指定します。ループはチーム全体に分散され、SIMD 命令を使用して同時に実行されます。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
デバイスデータ環境を作成して同じデバイスで構文を実行します。また、teams 構造により生成されるすべてのスレッドチームのマスタースレッド間で、ループ反復を共有するように指定します。SIMD 命令を使用して同時に実行されます。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。 |
|
スレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。また、TEAMS 構造により生成されるすべてのスレッドチームのマスタースレッド間で、ループ反復を共有するように指定します。 |
|
スレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。また、複数のチームのメンバーである複数のスレッドによって同時に実行できるループを指定します。 |
|
スレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。また、複数のチームのメンバーである複数のスレッドによって同時に実行できるループを指定します。ループはチーム領域のマスタースレッド間で分散され、SIMD 命令を使用して同時に実行されます。 |
|
スレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。また、チーム領域のマスタースレッド間で分散されるループを指定します。 |