OpenMP* は、C、C++、および Fortran コード向けの並列プログラミング・フレームワークです。OpenMP* はソースの変更を最小限に抑え、多くのコンパイラーでサポートされます。OpenMP* は、OpenMP* ライブラリーによってサポートされるため、型、変数、呼び出しではなくコンパイラー・ディレクティブを使用してソースコードを変更します。コンパイラー・オプションを省略して、コンパイラーに OpenMP* ディレクティブを無視させることで、OpenMP* プログラムを並列実行からシリアル実行に変更することができます。
OpenMP* 2.0 は、複数のコア (スレッド) を使用して配列を操作するループには適していますが、タスクを生成する不規則な並列処理をサポートしていません。OpenMP* 2.0 は Microsoft*、インテル、および GNU* の C、C++、Fortran コンパイラーなどでサポートされています。文のシーケンスや完全なループ本体の単純な分割以外に OpenMP* 2.0 を活用することは困難です。
OpenMP* 3.0 仕様では、TASK のサポートが追加されました。TASK ディレクティブは、アルゴリズムの任意の部分を並列実行することを可能にします。インテル® C++ コンパイラー・クラッシックとインテル® Fortran コンパイラー・クラッシックは、OpenMP* 3.0 と OpenMP* 4.0 の一部をサポートします。インテル、Microsoft*、および GNU* コンパイラーを使用する場合、コンパイラーのドキュメントでサポートされる OpenMP* 仕様を確認してください。
アプリケーションが Fortran で記述されている場合、OpenMP* は利用可能な唯一の高水準並列フレームワークです。