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

2.3.2 並列化の指令

並列化 指令は、コンパイラに対して、指令のあとに続く DO ループまたはコードの範囲を並列化するように明示的に指示します。一般的な指令とは、構文が異なります。並列化指令は、-openmp-parallel、または -explicitpar コンパイルオプションが指定されている場合のみ、認識されます。Fortran 並列化についての詳細は、『OpenMP API ユーザーズガイド』および『Fortran プログラミングガイド』を参照してください。

Fortran コンパイラは、OpenMP 2.5 共有メモリー並列化モデルをサポートします。従来の Sun および Cray の並列化指令は現在推奨されていないため、使用すべきではありません。

2.3.2.1 OpenMP 並列化指令

Fortran 95 コンパイラでは、並列プログラミングモデルとして OpenMP Fortran 共有メモリーマルチプロセッシング API を使用することをお勧めします。API は、OpenMP Architecture Review Board (http://www.openmp.org) によって指定されます。

OpenMP 指令を使用可能にするには、コマンド行オプション -openmp を指定してコンパイルする必要があります (「3.4.155 -xopenmp[={ parallel|noopt|none}]」を参照)。

f95 で使用可能な OpenMP 指令についての詳細は、『OpenMP API ユーザーズガイド』を参照してください。

2.3.2.2 従来の Sun および Cray 並列指令


注 –

従来の Sun および Cray 形式の並列化指令は非推奨になりました。コンパイラはこれらの指令を認識しますが、今後の Sun Studio のリリースでは変更される可能性があります。Open MP 並列化 API が推奨されます。従来の Sun/Cray 指令から OpenMP モデルへの移行方法については、『OpenMP API ユーザーズガイド』を参照してください。


Sun 形式の並列化指令は、-parallel および -explicitpar のデフォルトです。Sun 指令には $PAR という指令「センチネル」が付きます。

Cray 形式の並列化指令を使用するには、-mp=cray というコンパイラオプションを指定します。 これには、MIC$ というセンチネルが付きます。Sun と Cray では、同じ指令でも解釈の仕方が異なります。詳細は、『Fortran プログラミングガイド』の並列化の章を参照してください。また、従来の Sun/Cray 並列化指令を OpenMP 指令に変換する方法については、『OpenMP API ユーザーズガイド』も参照してください。

x86 Solaris および Linux プラットフォームで、並列化に使用できるのは OpenMP 指令だけです。

SUN/Cray の並列化指令の構文は次のとおりです。

並列化指令では、キーワードのあとにオプション修飾子を指定します。

例: 共有変数でループを指定


C$PAR DOALL SHARED(yvalue)    Sun 形式
CMIC$ DOALL SHARED(yvalue)    Cray 形式