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

ドキュメントの情報

はじめに

1.  OpenMP API について

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

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

4.  入れ子並列処理

5.  タスク化

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

6.1 自動スコープ宣言用データスコープ節

6.1.1 __auto

6.1.2 default(__auto)

6.2 並列構文のスコープ宣言の規則

6.2.1 スカラー変数に関するスコープ宣言規則

6.2.2 配列に関するスコープ宣言規則

6.3 task 構文のスコープ宣言規則

6.3.1 スカラー変数に関するスコープ宣言規則

6.3.2 配列に関するスコープ宣言規則

6.4 自動スコープ宣言に関する一般的な注意事項

6.5 制限事項

6.6 自動スコープ宣言結果の確認

6.7 自動スコープ宣言の例

7.  スコープチェック

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

A.  指令での節の記述

索引

6.4 自動スコープ宣言に関する一般的な注意事項

タスクの自動スコープ宣言規則と、自動スコープ宣言の結果は、今後のリリースで変更される可能性があります。また、暗黙的に決定されたスコープ宣言規則と自動スコープ宣言規則が適用される順序も、今後のリリースで変更される可能性があります。

プログラマは _auto(list-of-variables) 節または default(_auto) 節を使用し、明示的に自動スコープ宣言を要求します。default(_auto) または _auto(list-of-variables) 節を parallel 構文に対して指定しても、parallel 構文に字句的または動的に包含される task 構文にも同じ節が適用されることを意味するわけではありません。

事前定義された暗黙的スコープを持たない変数を自動スコープ宣言する場合、コンパイラは、変数の使用について、前述の規則に対して順番に確認します。規則に一致する場合、コンパイラはその規則に従って変数のスコープを決定します。一致する規則がない場合、または自動スコープ宣言が変数を処理できない場合 (次の節で説明されているいくつかの制限事項のため)、コンパイラは変数を SHARED とスコープ宣言し、parallel または task 構文を IF (.FALSE.) または if(0) 節が指定されているかのように処理します。

自動スコープ宣言が失敗する理由は、一般的に 2 つあります。1 つの理由は、変数の使われ方が規則のどれにも一致しないことです。もう 1 つの理由は、ソースコードが複雑すぎて、コンパイラが十分な解析を行えないことです。こうした原因としてよくあるのは、たとえば、関数呼び出しや複雑な配列添え字、メモリー別名、ユーザー実装の同期などです。