JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: OpenMP API ユーザーガイド
search filter icon
search icon

ドキュメントの情報

はじめに

1.  OpenMP API について

2.  OpenMP プログラムのコンパイルと実行

3.  実装によって定義される動作

4.  入れ子並列処理

5.  タスク化

5.1 タスク化モデル

5.2 データ環境

5.3 TASKWAIT 指令

5.4 タスク化の例

5.5 プログラミング上の留意点

5.5.1 THREADPRIVATE およびスレッド特有の情報

5.5.2 ロック

5.5.3 スタックデータへの参照

6.  変数の自動スコープ宣言

7.  スコープチェック

8.  パフォーマンス上の検討事項

A.  指令での節の記述

B.  OpenMP への変換

索引

5.2 データ環境

task 指令は、タスクのデータ環境を定義する次のデータ属性節を取ります。

shared 節にリスト指定された変数へのタスク中のすべての参照は、 task 指令の直前に存在する同じ名前の変数を参照します。

private および firstprivate 変数のそれぞれに対し、新しいストレージが作成され、task コンストラクトの字句エクステントにある元の変数へのすべての参照は、新しいストレージへの参照に置き換えられます。firstprivate 変数は、タスクが検出された時点の元の変数値で初期化されます。

OpenMP 3.0 仕様のバージョン 3.0 (節 2.9.1) には、parallel、task、および worksharing 領域で参照される変数のデータ共有属性の決定方法が説明されています。

コンストラクト中で参照される変数のデータ共有属性は、事前定義明示的定義、または暗黙的定義のいずれかです。明示的に指定されたデータ共有属性を持つ変数は、指定されたコンストラクトの中で参照される変数で、コンストラクト上のデータ共有属性節にリストされています。暗黙的に指定されたデータ共有属性を持つ変数は、指定されたコンストラクトの中で参照される変数で、事前に決められたデータ共有属性を持たず、コンストラクト上のデータ共有属性節にリストがありません。

変数のデータ共有属性を暗黙的に決めるための規則は、必ずしも明白ではない場合があります。予期せぬ事態を避けるため、プログラミングの際には、OpenMP の暗黙的なスコープ宣言規則に依存せずに、データ共有属性節を使用してタスク構文で参照されるすべての変数を明示的にスコープ宣言することをお勧めします。