OpenMP* サポート

インテル® Fortran コンパイラー・クラシックおよびインテル® Fortran コンパイラーは、OpenMP* アプリケーション・プログラミング・インターフェイス (API) バージョン 5.0 TR4 を完全にサポートしており、OpenMP* バージョン 5.1 の一部の機能もサポートしています。OpenMP* 仕様の詳細は、OpenMP* ウェブサイトで公開されている仕様 (http://www.openmp.org (英語) の OpenMP* Specifications) を参照してください。このドキュメントでは、OpenMP* の言語特性の説明において、通常この OpenMP* 仕様で定義されている用語を使用しています。

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

コンパイラーは、ソースプログラムの OpenMP* ディレクティブの指定に従ってコード変換を実行し、マルチスレッド・コードを生成して、既存のソフトウェアへスレッドを追加しやすくします。インテル® コンパイラーは、業界標準の OpenMP* ディレクティブに対応し、並列プログラムをコンパイルします。

コンパイラーは、ランタイム・ライブラリー・ルーチンおよび環境変数を含む OpenMP* 仕様にインテル独自の拡張機能を提供します。コンパイラー・オプションの概要は、OpenMP* オプションのクイック・リファレンスを参照してください。

OpenMP* による並列処理

OpenMP* API を使用してコンパイルするには、コードに Fortran プログラムコメント形式のディレクティブを追加します。インテル® コンパイラーはコードを処理し、マルチスレッド・バージョンを内部的に生成してから、コンパイルして並列領域または構造を実行するスレッドによって実装される並列処理の実行プログラムを生成します。

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

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