インテル® VTune™ プロファイラー・ユーザーガイド

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

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

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

カスタムコレクターをインテル® VTune™ プロファイラーとともに使用し、収集したデータを相互に関連付けるには次の操作を行います。

  1. カスタムコレクターを設定します

  2. カスタムコレクターを起動します

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

インテル® VTune™ プロファイラーは、データ収集と収集した結果を管理するためカスタムコレクターが利用する環境変数を設定します。

インテル® VTune™ プロファイラーの環境変数

カスタムコレクターで有効になる処理

AMPLXE_DATA_DIR

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

AMPLXE_HOSTNAME

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

AMPLXE_COLLECT_CMD

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

各コマンドでカスタムコレクターが再起動されます。

start

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

stop

データの収集 (バックグラウンドのプロセス) を停止し、データを csv ファイルに変換して結果ディレクトリー (AMPLXE_DATA_DIR で指定) にコピーし、インテル® VTune™ プロファイラーに制御を返します。

pause

データ収集を一時的にポーズ (pause) します。これはオプションです。

resume

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

AMPLXE_COLLECT_PID

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

インテル® VTune™ プロファイラーは、[アプリケーションを起動] または [プロセスにアタッチ] モードでプロファイルを行う場合にのみ、この変数に PID を設定します。システム全体の解析では値は設定されません。プロファイルされたアプリケーションがプロセスツリーを構成すると、AMPLXE_COLLECT_PID 変数には、起動または接続されたプロセスの PID が設定されます。スクリプトからワークロードを起動する場合、子プロセスの PID をカスタムコレクターに渡すため、独自の設定を行う必要があります。

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

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™ プロファイラーからカスタムコレクターを起動するには、次の操作を行います。

  1. ツールバーの [解析の設定] ボタンをクリックします。

    [解析の設定] ウィンドウが開きます。

  2. [どこを][何を] ペインで正しいターゲットシステムとターゲットタイプが選択されていることを確認します。

  3. [何を] ペインの [高度] セクションで、[カスタムコレクター] フィールドを修正して外部コレクターを起動するコマンドラインを追加します。以下に例を示します。

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

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

  4. [どのように] ペインで、解析タイプ (例えば、ホットスポット) を選択します。

  5. 必要に応じて解析オプションを使用します。

  6. [開始] ボタンをクリックして、インテル® VTune™ プロファイラーの解析とカスタムデータ収集を並行して起動します。

    インテル® VTune™ プロファイラーは以下を行います。

    1. ターゲット・アプリケーションが存在する場合、サスペンドモードで起動します。

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

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

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

コマンドラインからカスタムコレクターを起動するには、次の操作を行います。

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

コマンドラインの例:

この例では、デフォルトのユーザー・サンプリング・モードでホットスポット解析を実行し、指定するアプリケーションのカスタム統計情報を収集する外部スクリプトも起動します。

Windows* :

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

Linux* :

vtune -collect hotspots -custom-collector="python /home/my_collectors/custom_collector.py" -- my_app

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

Windows* :

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

Linux* :

vtune -collect-with runsa -custom-collector="set | find \"AMPLXE\"" -- my_app

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

関連情報