インテル® Fortran コンパイラー 16.0 ユーザー・リファレンス・ガイド

OpenMP* 宣言子の概要

ここでは、インテル® Fortran コンパイラーでサポートされている OpenMP* 宣言子と節の概要を説明します。OpenMP* API の詳細については、OpenMP* Web サイトの OpenMP Application Program Interface バージョン 4.0 および 4.1 仕様を参照してください。

次のリストで、ほかでも同じ名前が使用されている OpenMP* 宣言子には宣言子と明記しています。例えば、FLUSH は宣言子、文、サブルーチンを指します。

PARALLEL 宣言子

この宣言子を使用してスレッドのチームを形成しスレッドを並列に実行します。

宣言子

説明

PARALLEL 宣言子 (OpenMP*)

並列実行領域を定義します。

タスキング宣言子

この宣言子を使用して遅延実行を行います。

宣言子

説明

TASK

タスク領域を定義します。

ワークシェアリング宣言子

これらの宣言子を使用してスレッドのチーム間のワークを共有します。

宣言子

説明

DO 宣言子

関連付けられたループの反復がチーム内のスレッド間で分割される、反復的なワークシェアの構造を識別します。

SECTIONS

囲まれた SECTION 宣言子がチームのスレッド間に分割されるコードのブロックを定義することを指定します。各セクションは、チーム内のスレッドにより 1 回だけ実行されます。

SINGLE

コードのスレッドが一度に 1 つのスレッドでのみ実行されることを指定します。

WORKSHARE

文または構造のブロックを実行する作業を個別のユニットに分割します。また、実行単位の作業をチームのスレッドに分配して、各作業単位が 1 回だけ実行されるようにします。

同期宣言子

これらの宣言子を使用してスレッド間を同期します。

宣言子

説明

ATOMIC

特定のメモリー位置をアトミックに更新し、複数のスレッドが同時に読み取り/書き込みを行う危険性を回避します。

BARRIER

チーム内のすべてのスレッドを同期化します。各スレッドは、チーム内のほかのすべてのスレッドがバリアに到達するまで待機します。

CRITICAL Directive

コードのブロックへのアクセスを一度に 1 つのスレッドのみに制限します。

FLUSH Directive

チームのスレッドでメモリーの状態の整合性が保たれる同期ポイントを識別します。

MASTER

チームのマスタースレッドで実行されるコードブロックを指定します。

ORDERED

チームのスレッドがループの反復順に実行するスレッドのコードブロックを指定します。

TASKGROUP

現在のタスクの子タスクと派生タスクがすべて完了するまで待機するように指定します。

TASKWAIT

現在のタスクが開始してから、生成された子タスクの完了まで待機するように指定します。

TASKYIELD

現在のタスクを中断し、別のタスクの実行を優先することを許可します。

データ環境宣言子

この宣言子を使用してグローバルなプライベート・データをスレッドに割り当てます。

宣言子

説明

THREADPRIVATE

各スレッドにプライベート (ローカル) な名前付き共通ブロック (スレッド内ではグローバル) を指定します。

コプロセッサー制御宣言子

これらの宣言子を使用してコプロセッサー上の実行を制御します。

宣言子

説明

DECLARE TARGET

target 領域から呼び出せる名前付きルーチンのデバイス固有バージョンを作成します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

DISTRIBUTE

teams 構造により生成されるすべてのスレッドチームのマスタースレッド間で、ループ反復を共有するように指定します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET Directive

デバイスデータ環境を作成して同じデバイスで構文を実行します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET DATA

領域の範囲のデバイスデータ環境を作成します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET ENTER DATA

デバイスのデータ環境へ変数をマップします。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET EXIT DATAOpenMP

デバイスのデータ環境から変数をアンマップ (解放) します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET UPDATE

デバイスデータ環境のリスト項目と対応するオリジナルのリスト項目の整合性を保持します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TEAMS

ターゲット領域内でスレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

ベクトル化宣言子

これらの宣言子を使用してベクトル・ハードウェア上の実行を制御します。

宣言子

説明

SIMD 宣言子 (OpenMP*)

ループの SIMD ベクトル化を要求して制御します。

DECLARE SIMD

SIMD プロシージャーを生成します。

キャンセル構文

宣言子

説明

CANCEL

指定した構文の最内領域の取り消し要求を行います。このプラグマに到達した暗黙的または明示的なタスクは、取り消された構文の最後に進みます。

CANCELLATION POINT

暗黙的または明示的なタスクが、指定された節の最内領域で取り消し要求があったかどうかをチェックするポイントを定義します。

複合宣言子

これらの宣言子は、連続する複数の宣言子のショートカットとして使用します。

宣言子

説明

DISTRIBUTE PARALLEL DO

複数のチームのメンバーである複数のスレッドによって同時に実行できるループを指定します。

DISTRIBUTE PARALLEL DO SIMD

複数のチームのメンバーである複数のスレッドによって並列に実行されるループを指定します。SIMD 命令を使用して同時に実行されます。

DISTRIBUTE SIMD

チーム領域のマスタースレッド間で分散されるループを指定します。SIMD 命令を使用して同時に実行されます。

DO SIMD

SIMD 命令を使用して同時に実行できるループを指定します。

PARALLEL DO

1 つの DO 宣言子を含む並列領域を簡潔に指定する方法を提供します。

PARALLEL DO SIMD

SIMD (Single Instruction, Multiple Data) 命令を使用して実行するループを含む並列領域を指定します。

SIMD 命令を使用して同時に実行できるループを指定します。1 つの SIMD ループ構造だけを含み、その他の文を含まない PARALLEL 構造を簡潔に指定する方法を提供します。

PARALLEL SECTIONS

1 つの SECTIONS 宣言子を含む並列領域を簡潔に指定する方法を提供します。セマンティクスは SECTIONS 宣言子が直後に続く PARALLEL 宣言子を明示的に指定することと同じです。

PARALLEL WORKSHARE

1 つの WORKSHARE 宣言子を含む並列領域を簡潔に指定する方法を提供します。

TARGET TEAMS

デバイスデータ環境を作成して同じデバイスで構文を実行します。また、スレッドチームを複数作成し、各チームのマスタースレッドが構造化ブロックを実行します。このプラグマは、インテル® MIC アーキテクチャーにのみ適用されます。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET TEAMS DISTRIBUTE

デバイスデータ環境を作成して同じデバイスで構文を実行します。また、TEAMS 構造により生成されるすべてのスレッドチームのマスタースレッド間で、ループ反復を共有するように指定します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET TEAMS DISTRIBUTE PARALLEL DO

デバイスデータ環境を作成して同じデバイスで構文を実行します。また、TEAMS 構造により生成される複数のチームのメンバーである複数のスレッド間で、ループが並列に実行されるように指定します。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD

デバイスデータ環境を作成して同じデバイスで構文を実行します。また、TEAMS 構造により生成される複数のチームのメンバーである複数のスレッド間で、ループが並列に実行されるように指定します。ループはチーム全体に分散され、SIMD 命令を使用して同時に実行されます。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TARGET TEAMS DISTRIBUTE SIMD

デバイスデータ環境を作成して同じデバイスで構文を実行します。また、teams 構造により生成されるすべてのスレッドチームのマスタースレッド間で、ループ反復を共有するように指定します。SIMD 命令を使用して同時に実行されます。この宣言子は、インテル® MIC アーキテクチャーにのみ適用されます。

TEAMS DISTRIBUTE

スレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。また、TEAMS 構造により生成されるすべてのスレッドチームのマスタースレッド間で、ループ反復を共有するように指定します。

TEAMS DISTRIBUTE PARALLEL DO

スレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。また、複数のチームのメンバーである複数のスレッドによって同時に実行できるループを指定します。

TEAMS DISTRIBUTE PARALLEL DO SIMD

スレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。また、複数のチームのメンバーである複数のスレッドによって同時に実行できるループを指定します。ループはチーム領域のマスタースレッド間で分散され、SIMD 命令を使用して同時に実行されます。

TEAMS DISTRIBUTE SIMD

スレッドチームを複数作成し、各チームのマスタースレッドの構造化ブロックを実行します。また、チーム領域のマスタースレッド間で分散されるループを指定します。

関連情報