インテル® VTune™ Amplifier XE による Java* および Python* コードのプロファイル

この記事は、インテルの The Parallel Universe Magazine 26 号に収録されている、さまざまなツールと手法によりマシンラーニングで Python* のパフォーマンスを向上する方法に関する章を抜粋翻訳したものです。

長年にわたり、Java* は開発者に人気のある言語で、エンタープライズ、組込み、IoT (モノのインターネット) 向けアプリケーションを牽引してきました。インテル® VTune™ Amplifier XE の電力およびパフォーマンス・プロファイラー (インテル® ソフトウェア・ツール・スイートに含まれる) は、長い間、Java* や .NET のようなマネージドコードのプロファイルを行ってきました。Python* も、使いやすさとシステムを効率良く統合できることから、人気のプログラミング言語になりました。

この 2 つの異なるプログラミング言語の人気の高まりを受け、これらの言語で開発されたアプリケーションが CPU 性能を効率良く利用できるように、インテル® VTune™ Amplifier XE のプロファイル機能が拡張され、Java* および Python* ベースのアプリケーションに対応しました。ここでは、インテル® VTune™ Amplifier XE を使用して、アプリケーションの振る舞いを詳しく理解します。

インテル® VTune™ Amplifier XE とは?

インテル® VTune™ Amplifier XE は、多くの CPU 時間を費やしているモジュール/プロセス (hotspot) の特定を支援する、パフォーマンスおよび電力プロファイラーです。サンプリングにより、最小限のオーバーヘッドで、マイクロアーキテクチャー・レベルの問題 (例えば、キャッシュミス、ページウォーク、TLB 問題など) を見つけることができます。

アプリケーション・パフォーマンスをプロファイルする理由

アプリケーション・パフォーマンスのプロファイルは、多くの CPU クロックサイクルを費やしているさまざまなコードブロックを特定するのに必要です。この情報は、手動でタイミング API を挿入して取得することもできます。ただし、プロジェクトに多数のモジュールが含まれる場合、手動では問題のあるモジュールの検証と特定に多くの時間がかかります。インテル® VTune™ Amplifier XE の各種プロファイラーは、問題にドリルダウンするのに役立ちます。

インテル® VTune™ Amplifier XE の機能

インテル® VTune™ Amplifier XE には、直感的で使いやすいさまざまな機能があります。

  • サンプリング: インストルメンテーションと比べて最小限のオーバーヘッドでプロファイルできます。
  • 使いやすいプロファイラー: さまざまなグループ/フィルター/呼び出し元-呼び出し先オプションにより、問題のコード領域を絞り込むことができます。
  • 異なるレベルの情報: ソースレベルとアセンブリー・レベルで情報を提供します。
  • マイクロアーキテクチャーに関する情報: アプリケーションのマイクロアーキテクチャーに関するさまざまな情報を提供します。

Java* アプリケーションのプロファイル

Java* アプリケーションのプロファイルは、4 つのステップから成ります。

  1. インテル® VTune™ Amplifier XE プロジェクトを作成します。
  2. プロファイルするアプリケーション/プロセスを選択します。
  3. 解析タイプを選択します。
  4. 結果を収集して、解釈します。

Windows® 上でのインテル® VTune™ Amplifier XE プロジェクトの作成

最初に、amplxe-vars バッチファイルを使用して環境変数を設定します。例えば、インテル® VTune™ Amplifier XE がデフォルトのディレクトリーにインストールされている場合は、次のコマンドを実行します。

C:\[Program Files]\IntelSWTools\VTune Amplifier XE\amplxe-vars.bat

バッチファイルは、製品名とビルド番号を表示します。

次に、インテル® VTune™ Amplifier XE を起動します。スタンドアロン GUI インターフェイスの場合は、amplxe-gui コマンドを実行します。コマンドライン・インターフェイスの場合は、amplxe-cl コマンドを実行します。

インテル® VTune™ Amplifier XE プロジェクトを作成します (スタンドアロンの場合のみ)。

  • 右上のメニューボタンをクリックして、[New] > [Project] を選択します。
  • [Create Project] ダイアログボックスでプロジェクトの名前と場所を指定します。

注: Linux* プラットフォーム上でプロジェクトを新規作成する方法は、「インテル® VTune™ Amplifier XE 2017 for Linux* 入門」 (英語) を参照してください。

プロファイルするアプリケーション/プロセスの選択

[Analysis Target] タブの左ペインでターゲットシステムを選択し、右ペインで解析ターゲットタイプを選択します。次のいずれかを選択できます。

  • Launch Application: プロファイルするアプリケーションを起動します。
  • Attach to Process: すでに実行中のアプリケーションにプロファイラーをアタッチします。
  • Profile System: アプリケーションとシステムコールの相互作用を検証します。

関連記事

  • インテル® VTune™ Amplifier XE を利用した Python* コードの高速化インテル® VTune™ Amplifier XE を利用した Python* コードの高速化 この記事は、インテルの The Parallel Universe Magazine 25 号に収録されている、インテル® VTune™ Amplifier XE を利用して非常に低いオーバーヘッドで Python* コードのプロファイリング情報を得る方法に関する章を抜粋翻訳したものです。 インテル® VTune™ […]
  • マシンラーニングにおける Python* パフォーマンスの壁を乗り越えるマシンラーニングにおける Python* パフォーマンスの壁を乗り越える この記事は、インテルの The Parallel Universe Magazine 26 号に収録されている、さまざまなツールと手法によりマシンラーニングで Python* […]
  • インテル® Performance Bottleneck Analyzerインテル® Performance Bottleneck Analyzer この記事は、インテル® ソフトウェア・ネットワークに掲載されている「Intel® Performance Bottleneck Analyzer」の日本語参考訳です。 はじめに: インテル® Performance Bottleneck Analyzer (インテル® PBA) […]
  • Python* プロファイルPython* プロファイル この記事は、インテル® デベロッパー・ゾーンに公開されている「Python* Profiling」の日本語参考訳です。 Python*/C/C++ が混在したコードのパフォーマンス解析機能 - ベータ 混在したアプリケーション・コードの隠れたホットスポットを検出 インテル® VTune™ […]
  • インテル® VTune™ Amplifier XE で Python*/Cython 混在コードをプロファイルするインテル® VTune™ Amplifier XE で Python*/Cython 混在コードをプロファイルする この記事は、インテル® デベロッパー・ゾーンに公開されている「Use VTune™ Amplifier XE to profile Python/Cython mixed code」の日本語参考訳です。 Python* はインタープリター言語であり、コンパイラーを使用してバイナリー実行コードを生成しません。Cython […]