OpenMP* による並列化の概要

インテル® C++ コンパイラは、OpenMP* C++ バージョン2.0 API 仕様をサポートしています。OpenMP は、次の主な機能を持った対称型マルチプロセッシング (SMP) を提供します。

インテル C++ コンパイラは、ソース・プログラムのユーザの OpenMP ディレクティブの指定に従って、コード変換を実行し、マルチ・スレッド・コードを生成して、既存のソフトウェアへスレッドを追加しやすくします。インテル・コンパイラは、現在の業界標準のOpenMPディレクティブのすべてに対応しています。 ただし、WORKSHAREおよびOpenMPディレクティブの注釈のある並列実行プログラムのコンパイラは除きます。さらに、インテル C++ コンパイラは、ランタイム・ライブラリ・ルーチンおよび環境変数を含むOpenMP C++ バージョン 2.0 仕様にインテル独自の拡張機能を提供します。

コンパイラの他の高度機能と同じように、OpenMP ディレクティブを効果的に使用し、プログラムの予期しない動作を避けるためには、OpenMP ディレクティブの機能を正しく理解する必要があります。

インテルC++コンパイラのOpenMP機能の全オプションについては、「並列化オプションの概要」を参照してください。

OpenMP 標準の詳細については、Web サイト http://www.openmp.org をご覧ください。OpenMP* C++ バージョン 2.0 API 仕様については、 http://www.openmp.org/specs/ を参照してください。

OpenMPによる並列処理

OpenMPでコンパイルするには、OpenMPディレクティブでコードを注釈するプログラムを準備する必要があります。 インテル C++ コンパイラは、はじめにアプリケーションを処理して、コードのマルチスレッド・バージョンを生成してからコードをコンパイルします。 その出力は、並列領域またはコンストラクタを実行するスレッドによって実装される並列処理の実行プログラムです。

パフォーマンス分析

プログラムのパフォーマンス分析には、パフォーマンス情報を表示する「インテル® VTune™ パフォーマンス・アナライザ」を使用してください。コードのどの部分が最も多く実行時間を必要としているか、また並列パフォーマンスの問題個所の特定に関する詳細情報が得られます。