インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

OpenMP* サポート

インテル® コンパイラーは、OpenMP* バージョン 4.0 のすべての機能と OpenMP* バージョン 4.5 の多くの機能をサポートしています。OpenMP* 仕様の詳細は、OpenMP* Web サイト (http://www.openmp.org の OpenMP Specifications) にある OpenMP* Application Program Interface バージョン 4.5 仕様を参照してください。このドキュメントでは、OpenMP* の言語特性の説明において、通常 OpenMP* 仕様で定義されている用語を使用しています。

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

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

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

OpenMP* による並列処理

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

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

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

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