OpenMP* のサポートの概要

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

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

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

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

OpenMP* を使用するオプションはインテル製マイクロプロセッサーおよび互換マイクロプロセッサーの両方で利用可能ですが、両者では結果が異なります。両者の結果が異なる可能性のある OpenMP* 構造および機能の主なリストは次のとおりです: ロック (内部的なものおよびユーザーが利用可能なもの)、SINGLE 構造、バリア (暗黙的および明示的)、並列ループ・スケジューリング、リダクション、メモリーの割り当て、スレッド・アフィニティー、バインド。

OpenMP* による並列処理

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

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

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

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


このヘルプトピックについてのフィードバックを送信

© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。