ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: OpenMP API ユーザーガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
2.2.2 Oracle Solaris Studio の環境変数
2.2.2.5 SUNW_MP_MAX_POOL_THREADS
2.2.2.6 SUNW_MP_MAX_NESTED_LEVELS
OpenMP の指令を使用して明示的に並列化を有効にするには、cc、CC、または f95 のオプションフラグ -xopenmp を指定してプログラムをコンパイルします。f95 コンパイラでは、-xopenmp と -openmp を同義語として使用することができます。
-xopenmp フラグには、次のキーワードサブオプションを指定することができます。
|
その他の注
Oracle Solaris プラットフォーム上で最適なパフォーマンスおよび機能を得るために、最新の OpenMP 実行時ライブラリ libmtsk.so が実行中のシステムにインストールされていることを確認してください。
コマンド行で -xopenmp を指定しない場合、コンパイラでは -xopenmp=none (OpenMP プラグマ の認識を無効にする) を指定したと見なされます。
-xopenmp をキーワードサブオプションなしで指定した場合、コンパイラでは -xopenmp=parallel を指定したと見なされます。
-xopenmp=parallel または -xopenmp=noopt を指定すると、_OPENMP プリプロセッサトークンが YYYYMM (C/C++ では 201107L、Fortran 95 では 201107) として定義されます。
dbx を使用して OpenMP プログラムをデバッグする場合、-xopenmp=noopt -g を使用してコンパイルします。
-xopenmp のデフォルトの最適化レベルは、将来のリリースで変更される可能性があります。適切な最適化レベルを明示的に指定することによって、コンパイル警告メッセージの表示を防止することができます。
Fortran 95 では、-xopenmp、-xopenmp=parallel、-xopenmp=noopt を指定すると、-stackvar が自動的に追加されます。「2.4 スタックとスタックサイズ」を参照してください。
別々の手順で OpenMP プログラムをコンパイルしてリンクする場合は、コンパイル時およびリンク時にそれぞれ -xopenmp を含めます。
OpenMP プログラミング関連の潜在的な問題に関するコンパイラの警告、および自動スコープ宣言 (第 6 章変数の自動スコープ宣言を参照) とスコープチェック (第 7 章スコープチェックを参照) に関連するメッセージを表示するには、—xvpara オプションを —xopenmp、—xopenmp=parallel、または —xopenmp=noopt とともに使用します。たとえば、次の表に示された状態をコンパイラが検出した場合は、エラーメッセージが表示されます。
異なるループ繰り返し間でデータに依存関係がある場合に、OpenMP 指令を使用して並列化されたループ。
OpenMP データ共有属性節に問題がある場合。たとえば、shared と宣言された変数に、OpenMP 並列領域からアクセスするとデータ競合が発生する可能性がある場合や、並列領域の中に値を持つ変数を private と宣言し、並列領域よりあとでその変数を使用する場合です。