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.  変数の自動スコープ宣言

7.  スコープチェック

7.1 スコープチェック機能の使用

7.2 制限事項

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

A.  指令での節の記述

索引

第 7 章

スコープチェック

自動スコープ宣言を使用すると、変数をどのようにスコープ宣言するかをプログラマが決定できます。ただし、複雑なプログラムの場合、自動スコープ宣言が実行されなかったり、自動スコープ宣言の結果が予期しないものになったりすることがあります。不正なスコープ宣言により、目立たないが深刻な問題が多数発生することがあります。たとえば、一部の変数を SHARED として不正にスコープ宣言するとデータ競合が起きるという可能性や、変数のスレッド固有化を正しく行わないと構文外でその変数が未定義の値になるという可能性があります。

Oracle Solaris Studio C、C++、および Fortran のコンパイラは、コンパイル時のスコープチェック機能を備えており、OpenMP プログラムの変数が正しくスコープ宣言されたかどうかがコンパイラによって確認されます。

スコープチェックを行えば、コンパイラの機能に応じて、データ競合、不適切な変数のスレッド固有化や縮約、およびその他のスコープ宣言上の不具合など、潜在的な問題を検出することができます。スコープチェック時には、プログラマによって指定されたデータ共有属性、コンパイラによって決定された暗黙的なデータ共有属性、および自動スコープ宣言の結果が、コンパイラによって確認されます。