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

D.5 Cray の並列化指令


注 –

従来の Sun および Cray の並列化指令は非推奨になりました。Solaris SPARC および x86 プラットフォームでの並列化には、OpenMP API の使用が推奨されます。従来のアプリケーションを OpenMP に移行する方法については、『OpenMP API ユーザーズガイド』を参照してください。


Cray 形式の並列化指令については、『Fortran プログラミングガイド』の並列化に関する章で詳しく説明しています。-mp=cray コンパイラオプションを指定する必要があります。

表 D–4 Cray の並列化指令の要約

書式

CMIC$ directive qualifiers : 最初の行

CMIC$& [more_qualifiers] : 継続行

固定書式。指令指示子には、C (前述の例)、c*、または ! を使用できます。f95 自由書式の場合、!MIC$ より前に空白を指定できます。

DOALL 指令

CMIC$ DOALL SHARED(list), PRIVATE(list) [, more_qualifiers]

以降のループを並列化します。修飾子は、次のとおりです。 

スコーピング修飾子が必要です (list が空でない場合) — ループ内の変数はすべて PRIVATE 句または SHARED 句で宣言されていなければいけません。

PRIVATE(list) リストの名前を PRIVATE として宣言します。

SHARED(list) リストの名前を SHARED として宣言します。

AUTOSCOPE 変数の範囲を自動的に判別します。

次にオプションを示します。 

MAXCPUS(n) 多くても使用するスレッドは n 個です。

SAVELAST すべての非公開変数の最終的な値を保存します。スケジューリング修飾子は 1 つだけ指定できます。

GUIDED Sun 形式の GSS(64) と等価です。

SINGLE Sun 形式の SELF(1) と等価です。

CHUNKSIZE(n) Sun 形式の SELF(n) と等価です。

NUMCHUNKS(m) Sun 形式の SELF(n/m) と等価です。

デフォルトのスケジューリング型は、Sun 形式の STATIC と等価です。これと等価の Cray 形式のスケジューリング型はありません。これらのスケジューリング型の解釈方法は、Sun 形式と Cray 形式で異なります。詳細については、『Fortran プログラミングガイド』を参照してください。

TASKCOMMON 指令

CMIC$ TASKCOMMON block_name

指定した共通ブロックの変数を「スレッド非公開」として宣言します。これは、スレッドに対しては非公開ですが、スレッド内ではグローバルとなります。共通ブロック TASKCOMMON を宣言するには、そのブロックの全共通宣言の直前または直後にこの指令を指定する必要があります。

DOSERIAL 指令

CMIC$ DOSERIAL

以降のループの並列化を無効にします。 

DOSERIAL* 指令

CMIC$ DOSERIAL*

以降のループのネストの並列化を無効にします。