コンパイラが、並列化指令で明示的に指定されたループを分析するごとに、検出されるデータの依存関係に関する警告メッセージを出力します。ただし、ループの並列化は続けられます。
例: 詳細な並列化に関する警告
demo% f95 -explicitpar -vpara any.f any.f: MAIN any: "any.f", 11 行目: 警告: ループには参照を無効にする並列化が含まれている 可能性があります |
-xopenmp と OpenMP API 指令、または -explicitpar と従来の C$MIC DOALL 並列化指令とともに使用します。
警告は、コンパイラが次の状態を検出したときに表示されます。
OpenMP 並列領域でのアクセスによってデータの競合が起きる可能性がある共有変数の宣言、並列領域に値があって並列領域のあとで使用されるスレッド固有変数の宣言など、OpenMP のデータ共有属性節の問題のある使用
異なるループ繰り返し間でデータに依存関係がある C$MIC DOALL 並列化ループ
すべての並列化指令が問題なく処理される場合、警告は表示されません。
Sun Studio のコンパイラは OpenMP API の並列化モデルをサポートします。そのため、C$MIC 並列化指令は推奨されません。OpenMP API への移行については、『OpenMP API ユーザーズガイド』を参照してください。