OpenMP* のサポートの概要

インテル® コンパイラーでは、OpenMP バージョン 3.0 の API の仕様をサポートしています。OpenMP の Fortran 言語サポートの詳細は、OpenMP Web サイト (http://www.openmp.org/、仕様リンクをクリック) の OpenMP Application Program Interface バージョン 3.0 仕様を参照してください。

OpenMP Web サイト (http://www.openmp.org/、仕様をクリック) に説明されているように、本バージョンのインテル® コンパイラーでは、OpenMP API バージョン 3.0 API 仕様もサポートされています。

OpenMP は、次の主な機能を持った対称型マルチプロセッシング (SMP) を提供します。

コンパイラーは、ソースプログラムの開発者の OpenMP 宣言子の指定に従ってコード変換を実行し、マルチスレッド・コードを生成して、既存のソフトウェアへスレッドを追加しやすくします。インテル® コンパイラーは、現在の業界標準の OpenMP 宣言子のすべてに対応し、OpenMP 宣言子の注釈のある並列実行プログラムをコンパイルします。

コンパイラーは、ランタイム・ライブラリー・ルーチンおよび環境変数を含む OpenMP バージョン 3.0 仕様にインテル独自の拡張機能を提供します。ただし、これらの拡張機能はインテル® コンパイラーでのみサポートされています。OpenMP に適用するコンパイラー・オプションの概要は、「OpenMP* オプション・クイック・リファレンス」を参照してください。

OpenMP による並列処理

OpenMP でコンパイルするには、Fortran プログラムコメント形式の OpenMP 宣言子でコードを注釈するプログラムを準備する必要があります。インテル® コンパイラーはアプリケーションを処理して、マルチスレッド・バージョンのコードを内部的に生成してからコードをコンパイルします。その出力は、並列領域または構造を実行するスレッドによって実装される並列処理の実行プログラムです。「OpenMP* によるプログラミング」を参照してください

その他のコンパイラーの使用

OpenMP 仕様は複数の実装の相互運用性について定義していません。このため、他のコンパイラーでサポートされている OpenMP 実装とインテル® コンパイラーでサポートされている OpenMP 実装は相互運用できないことがあります。アプリケーション全体を 1 つのコンパイラーでコンパイルしてビルドしたとしても、異なるコンパイラーでは OpenMP ソース互換 (異なるコンパイラーで同じアプリケーション・ソース・セットをリンクして、コンパイルし、期待する並列実行結果を得ることが可能) を提供しないことに注意してください。

「OpenMP* ソース互換とその他のコンパイラーとの相互運用性」で説明されているように、インテル® コンパイラーには 2 種類の OpenMP ライブラリー・セットがあります。