インテル® Advisor は、使用する並列フレームワークにかかわらず、プログラムに並列処理を追加する準備を手助けします。インテル® Advisor は、シリアルプログラムの並列動作を推測して、実際に並列処理を追加する前に、並列領域の可能性を検証することができます。
インテル® Advisor は、並列プログラムの解析を行わないため、どのような並列フレームワークも使用できます。インテル® Advisor は、フォーク・ジョイン・モデルなどの高レベルの並列フレームワーク、または明示的なスレッド制御を行う低レベル API とともに使用できます。
インテル® ソフトウェア開発ツールに含まれる、インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB)、または OpenMP* 並列フレームワークを使用することを推奨します。これらの高レベルなフレームワークは、ほとんどのマルチコア・コンピューターに適合する並列処理機能を提供します。
ほかの並列フレームワークを使用したり、低レベルのスレッド化 API を使用する場合、次のことに注意してください。
並列フレームワークの中には、異なるコア数へのスケーラビリティー、ロードバランス処理、およびループのスケーラビリティー処理 (チャンク化) などに制限を持つものがあります。
計画の過程で、選択した並列フレームワークのコード構造と等価なインテル® Advisor のサイト、タスクおよびロック・アノテーションへのマッピングを作成する必要があります。使用する並列フレームワークの機能に対応するインテル® Advisor のアノテーションのリストを作成するため、すべてのアノテーションを把握しておかなければなりません。例えば、すべてのインテル® Advisor プログラムは、並列サイトとタスク・アノテーションを使用する必要があります。大部分のプログラムはロック・アノテーションを使用します。アノテーションの完全なリストについては、ヘルプトピックの「アノテーション・タイプのサマリー」をご覧ください。
ライブラリーで実装される並列フレームワークは、複数のコンパイラーで利用できるのに対し、一部の並列フレームワークはコンパイラーによるサポート (並列フレームワークのキーワードの認識) が必要です。
並列フレームワークの中には、複数のプログラムのワークロードを正しく処理できないものがあります。
すべてのケースにおいて、選択した並列フレームワークの使用法を学ぶ必要があります。現在の並列処理の追加ワークフローでは、アノテーションを選択した並列フレームワーク・コードと置き換える作業が必要です。