Sun Studio 12: Fortran プログラミングガイド

10.3.2 OpenMP 並列化指令

OpenMP は、マルチプロセッサプラットフォーム用の並列プログラミングモデルで、Fortran 95、C、C++ のアプリケーションの標準的なプログラミング方法となってきているものです。Forte Developer コンパイラでは、この並列プログラミングモデルを推奨しています。

OpenMP 指令を有効にするには、-openmp オプションフラグを使用してコンパイルします。Fortran 95 OpenMP 指令は、指令名と従属句の前に付く、コメントのような !$OMP という符号によって識別されます。

!$OMP PARALLEL は、プログラム内の並列領域を識別します。!$OMP DO は、並列領域内で並列化すべき DO ループを識別します。この 2 つの指令を組み合せて 1 つの !$OMP PARALLEL DO 指令とすることができます。 この指令は、DO ループの直前に配置します。

OpenMP の仕様には、プログラムの 1 つの並列領域内で作業を共有および同期化するための多数の指令と、データのスコープ指定および制御のための従属句が含まれています。

OpenMP 指令と古い Sun 形式の指令のもっとも大きな違いは、OpenMP では、非公開または共有のいずれかとして明示的にデータのスコープを指定する必要があることです。ただし、自動スコープ指定機能が提供されています。

Sun や Cray の並列化指令を使用して古いプログラムを変換するためのガイドラインも含めて、詳細は、Forte Developer の『OpenMP API ユーザーズガイド』を参照してください。