インテル® VTune™ Amplifier 2018 ヘルプ

カスタムコレクターを使用する

標準のインテル® VTune™ Amplifier パフォーマンス解析を拡張して、インテル® VTune™ Amplifier から直接カスタム・データ・コレクターを起動できます。

インテル® VTune™ Amplifier で解析するアプリケーションや、インテル® VTune™ Amplifier で起動するコレクターをカスタムコレクターにすることができます。

インテル® VTune™ Amplifier とカスタムコレクターを使用するため、収集されたデータを関連付けます。

  1. カスタムコレクターの設定

  2. カスタムコレクターの起動

カスタムコレクターの設定

インテル® VTune™ Amplifier は、カスタムコレクターが使用するいくつかの環境変数を設定して、データ収集と収集された結果を管理できます。

インテル® VTune™ Amplifier で提供される環境変数

カスタムコレクターで使用するには

AMPLXE_DATA_DIR

インテル® VTune™ Amplifier の解析結果のパスを特定します。カスタムコレクターは、このパスに出力 csv ファイルを保存し、インテル® VTune™ Amplifier がこのパスにアクセスして csv データをネイティブの収集結果に追加できるようにします。

AMPLXE_HOSTNAME

データが収集されたマシンの完全なホスト名を特定します。ホスト名は、 csv ファイル名の必須要素です。

AMPLXE_COLLECT_CMD

カスタムデータ収集を管理します。カスタムコレクターは次のコマンドを受け取ります。これらのコマンドを実行後、カスタムコレクターは即座に終了してインテル® VTune™ Amplifier に制御を返す必要があります。

各コマンドをを実行するため、カスタムコレクターは再起動されます。

start

カスタムデータ収集を開始します。必要であれば、カスタムコレクターはバックグラウンド・プロセスを生成します。

stop

データ収集を終了し (バックグラウンド・プロセス)、データを csv ファイルに変換後、それを結果ディレクトリーにコピーし (AMPLXE_DATA_DIR で指定された場所に)、そして制御をインテル® VTune™ Amplifier に戻します。

pause

データ収集を一時的に停止します。これはオプションです。

Resume

ポーズ後にデータ収集を再開します。これはオプションです。

AMPLXE_COLLECT_PID

解析するアプリケーションのプロセス ID を特定します。インテル® VTune™ Amplifier は、root ターゲットプロセスの PID にこの環境変数を設定します。カスタムコレクターは、データをフィルター処理する際などにこれを使用します。

インテル® VTune™ Amplifier は、[Launch Application (アプリケーションを起動)] または [Attach to Process (プロセスにアタッチ)] モードのプロファイルでのみ、この環境変数にプロセス ID を設定します。システム全体のプロファイルでは、この値は未設定です。プロファイル対象のアプリケーションが 3 つのプロセスをスポーンする場合、AMPLXE_COLLECT_PID 環境変数の値は、起動されたまたはアタッチされたプロセスの PID を含んでいます。これは、ワークロードを起動するスクリクトでカスタムコレクターへ子プロセスの PID を渡す際に重要となります。

次のテンプレートは、インテル® VTune™ Amplifier とカスタムコレクターとの相互作用を示します。

Python* の例:

import os

def main():
    cmd = os.environ['AMPLXE_COLLECT_CMD']
    if cmd == "start":
        path = os.environ['AMPLXE_DATA_DIR']
        #starting collection of data to the given directory
    elif cmd == "stop":
        pass #stopping the collection and making transformation of own data to CSV if necessary

main()

Windows* CMD シェルの例:

if "%AMPLXE_COLLECT_CMD%" == "start" goto start
if "%AMPLXE_COLLECT_CMD%" == "stop" goto stop
echo Invalid command
exit 1

:start
rem Start command in non-blocking mode
start <my collector command to start the collection> “%AMPLXE_DATA_DIR%”\data_file.csv
exit 0

:stop
<my collector command to stop the collection>
exit 0

カスタムコレクターの起動

インテル® VTune™ Amplifier の GUI からカスタムコレクターを起動するには:

  1. [Configure Project (プロジェクトの設定)] ツールバーボタンをクリックします。

    [Analysis Type (解析タイプ)] タブがアクティブな状態で [Choose Target and Analysis Type (ターゲットと解析タイプの選択)] ウィンドウが開きます。

  2. 左のペインで、正しいターゲットシステムとターゲットタイプが選択されていることを確認してください。

  3. 必要であれば、右ペインでターゲットオプションを設定します。

  4. [Advanced (詳細)] セクションで、[Custom collector (カスタムコレクター)] フィールドを編集し、外部コレクターを起動するコマンドを追加します。次に例を示します。

    • Windows*: python.exe C:\work\custom_collector.py

    • Linux*: python home/my_collectors/custom_collector.py

  5. [Analysis Type] タブに切り替えます。

  6. 左のペインで解析タイプを選択します。例えば、[Algorithm Analysis (アルゴリズム解析)] > [Basic Hotspots (基本ホットスポット)] など。

    対応する解析設定のペインが右に開きます。

  7. 必要であれば、利用可能な解析オプションを設定します。

  8. インテル® VTune™ Amplifier を起動し、カスタムデータを並列に収集するには [Start (開始)] ボタンをクリックします。

    インテル® VTune™ Amplifier は次のことを行います。

    1. サスペンドモードでターゲット・アプリケーションを起動します。

    2. アタッチ (またはシステム全体) モードでカスタムコレクターを起動します。

    3. アプリケーションをアクティブモードに切り替えて、プロファイルを開始します。

    アタッチモードでカスタムコレクターを起動できない場合、不完全なデータが収集される可能性があります。

コマンドラインからカスタムコレクターを起動するには:

オプション -custom-collector=<string> を使用します。

コマンドラインの例:

この例では、基本ホットスポット解析を実行し、同時に指定されたアプリケーションのカスタム統計を収集する外部スクリプトを起動します。

Windows*:

>amplxe-cl -collect hotspots -custom-collector="python.exe C:\work\custom_collector.py" -- notepad.exe

Linux*:

>amplxe-cl -collect hotspots -custom-collector="python /home/my_collectors/custom_collector.py" -- my_app

この例は、インテル® VTune™ Amplifier のイベントベース・サンプリング・コレクターを実行し、製品の環境変数を特定するため外部のシステムコレクターを使用します。

Windows*:

>amplxe-cl -collect-with runsa -custom-collector="set | find \"AMPLXE\"" -- notepad.exe

Linux*:

>amplxe-cl -collect-with runsa -custom-collector="set | find \"AMPLXE\"" -- my_app

カスタムコレクターとしてターゲット・アプリケーションを使用する場合[Custom collector] オプションを適用する必要はありませんが、アプリケーションが次の環境変数を使用することを確認してください。

関連情報