Oracle® Solaris Studio 12.4: OpenMP API ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

7.3 スコープチェックを使用する際の制限事項

  • スコープチェックは、最適化レベルが -xO3 以上に設定されている場合にのみ動作します。スコープチェックは、プログラムが -xopenmp=noopt でコンパイルされただけでは動作しません。

  • 解析では、OpenMP ディレクティブのみ認識、使用されます。OpenMP 実行時ルーチンの呼び出しは認識されません。たとえばプログラムが omp_set_lock() および omp_unset_lock() を使用してクリティカル領域を実装している場合、コンパイラはそのクリティカル領域の存在を検出できません。可能な場合は critical ディレクティブを使用してください。

  • データ競合解析では、barriermaster などの OpenMP 同期ディレクティブを使用して指定された同期のみが認識され、使用されます。ビジー待ちなどのユーザー実装の同期は認識されません。


注 -  –xvpara コンパイラオプションを使用してスコープチェックを行うと、静的 (コンパイル時) 解析を使用して、プログラムの潜在的な問題が判別されます。一方、スレッドアナライザツールは、動的 (実行時) 解析を使用して、プログラムでのデータ競合およびデッドロックをチェックします。これらの両方のアプローチを使用して、プログラムでできるかぎり多くのエラーを検出してください。