Sun Studio 12: Fortran ユーザーズガイド

3.4.23 -explicitpar

(廃止、SPARC) Sun または Cray の指令で明示的に示されたループを並列化します。


注 –

このオプションを使用すると、従来の Sun または Cray の並列化指令が有効になります。これらの指令および並列化モデルは推奨されず、サポートされません。推奨され、サポートされる並列化モデルは OpenMP API です。Sun/Cray 指令から OpenMP への変換についての詳細は、-xopenmp オプションおよび『OpenMP API ユーザーズガイド』を参照してください。


コンパイラは、並列で実行すると、正確な結果が生成されないようなデータの依存が DO ループ中にある場合でも、並列コードを生成します。明示的な並列化を行う場合は、ループを正しく分析してデータ依存の問題がないことを確認してから、並列化の指令を使用してください。

並列化は、マルチプロセッサシステムのみに適用されます。

このオプションを使用すると、Sun、Cray、またはこの両方の明示的な並列化指令が有効になります。並列化指令の直前にある DO ループには、スレッド化されたコードが生成されます。

OpenMP 明示的並列化指令を有効にするには、-explicitpar を使用しないでください。この代わりに -openmp を使用してください (「3.4.155 -xopenmp[={ parallel|noopt|none}]」を参照)。

-explicitpar は、すでに libthread ライブラリへの呼び出しによって、独自にマルチスレッド処理を行なったプログラムをコンパイルする場合には使用できません。

並列化されたプログラムをマルチスレッド環境で実行するには、実行前に PARALLEL (または OMP_NUM_THREADS) 環境変数を設定しておく必要があります。これは、プログラムが作成できる最大スレッド数を実行時システムに指示しています。デフォルトは 1 です。 一般的に、PARALLEL 変数または OMP_NUM_THREADS 変数には、ターゲットプラットフォーム上の利用可能な仮想プロセッサ数を設定します。psrinfo(1) を参照してください。

-explicitpar を使用してコンパイルとリンクを一度に行う場合、マルチスレッド処理ライブラリとスレッド対応の Fortran 実行時ライブラリが自動的にリンクされます。-explicitpar を使用してコンパイルとリンクを分けて行う場合は、リンクにも -explicitpar を指定する必要があります。

-explicitpar などの並列化オプションを使用する場合にパフォーマンスを改善するには、-stackvar オプションも指定してください。

有効な並列化指令の形式は -mp オプション (「3.4.59 -mp={%none|sun|cray}」を参照) を使用して選択します。-explicitpar のデフォルトは Sun 指令です。Cray 指令を有効にするには、-explicitpar -mp=cray を使用してください。

最適化レベルが -O3 以上に設定されていない場合は、自動的に -O3 に設定されます。

詳細は、『Fortran プログラミングガイド』の「並列化」の章を参照してください。