Oracle Solaris Studio 12.2: OpenMP API ユーザーガイド

2.1 使用するコンパイラオプション

OpenMP の指令を使用して明示的に並列化を有効にするには、ccCC、または f95 のオプションフラグ -xopenmp を指定してプログラムをコンパイルします。f95 コンパイラでは、-xopenmp-openmp を同義語として使用することができます。

-xopenmp フラグには、次のキーワードサブオプションを指定することができます。


-xopenmp=parallel

OpenMP プラグマの認識を有効にします。  

-xopenmp=parallel の最小限の最適化レベルは -xO3 です。

コンパイラは、必要に応じて最適化のレベルを低いレベルから -xO3 に上げ、警告を出力します。


-xopenmp=noopt

OpenMP プラグマの認識を有効にします。  

最適化のレベルが -xO3 より低い場合でも、コンパイラは最適化のレベルを上げません。

-xO2 -openmp=noopt のように、最適化レベルを明示的に -xO3 よりも下げると、コンパイラはエラーを出力します。

-openmp=noopt を使用して最適化レベルを指定しない場合、OpenMP プラグマが認識され、プログラムが並列化されますが、最適化は行われません。


-xopenmp=stubs

このオプションはサポートされていません。  

OpenMP スタブライブラリは、ユーザーの便宜上の理由で提供されています。  

OpenMP ライブラリルーチンを呼び出しても OpenMP プラグマを無視するような OpenMP プログラムをコンパイルするには、-xopenmp オプションを指定しないでコンパイルします。その後、libompstubs.a ライブラリを使ってオブジェクトファイルをリンクします。

次に例を示します。% cc omp_ignore.c -lompstubs

libompstubs.a と OpenMP 実行時ライブラリの libmtsk.so 両方とのリンクはサポートされていません。両方とリンクすると、予期しない動作になることがあります。


-xopenmp=none

OpenMP プラグマの認識を無効にし、最適化レベルを変更しません 

その他の注