最適化の可能性を識別するには、インテル(R) VTune(TM) パフォーマンス・アナライザーのタイム・ベース・サンプリングおよびイベント・ベース・サンプリング機能を使用します。
タイム・ベース・サンプリングは、最もプロセッサー時間を使用しているコードのセクションを識別します。イベント・ベース・サンプリングは、キャッシュミスや分岐予測ミスのようなマイクロアーキテクチャー上のボトルネックを識別します。clocktick の回数および命令カウントは、チューニングの対象とする特定の関数を識別するために最初に使用すると良いカウンターです。
サンプリングによって特定の関数が識別できたら、コールグラフ解析を使用して、スレッド特有のレポートを生成します。コールグラフ解析は、関数に関する次の情報を返します。
各関数が呼び出された回数
各関数が呼び出された場所
各関数の実行に費やされたプロセッサー時間の合計
200 以上のオペレーティング・システム・カウンター、または特定の環境およびタスク用に作成されたカスタムカウンターに基づいて、リアルタイムにパフォーマンス・データを提供する、カウンターモニター (Microsoft* Perfmon* と同機能) を使用することもできます。
インテル(R) チューニング・アシスタント (VTune アナライザーに含まれています)、およびインテル(R) スレッド・チェッカーも使用できます。インテル・チューニング・アシスタントは、VTune アナライザーによって生成されたデータを解釈し、その情報に基づいてアプリケーション専用のチューニング・アドバイスを生成します。インテル・スレッド・チェッカーは、パフォーマンスを向上するために対応すべき特定のスレッディング問題を識別して、アプリケーションに適用されたスレッディング方法論の精度に対する見識を提供します。
これらのツールに関する詳細は、「インテルが提供するパフォーマンス解析ツールの使用」を参照してください。
コンパイラーは、インテル(R) アーキテクチャーで最高レベルのパフォーマンスを実現する、効率的で費用効率も高い、インテル・プロセッサー用の高度な最適化機能を提供します。IA-32 およびインテル(R) EM64T 対応コンパイラーは、プロセッサー・ディスパッチをサポートしており、1 つの実行ファイルを現在の IA-32 インテル(R) マイクロアーキテクチャーと従来のプロセッサーの両方で最適に実行します。
チューニングする場合、次のオプションが便利です。
Linux*: -mtune、-x、-ax、-prof-gen および -prof-use
Windows*: /G{n}、/Qx、/Qax、/Qprof-gen および /Qprof-use
Mac OS*: -mtune オプションはサポートされていません。-x および -ax オプションで有効な値は P のみです。
上記のオプションに関する詳細は、「最適化オプションのまとめ」および「特定のプロセッサーの最適化の概要」を参照してください。
インテル・コンパイラーは、自動並列化をサポートしています。また、OpenMP* C/C++ バージョン 2.5 仕様もサポートしています。