インテル® VTune™ Amplifier XE のリモートデータ収集を簡単に行う方法

インテル® VTune™ プロファイラー

この記事は、インテル® デベロッパー・ゾーンに公開されている「How to quickly use remote data collection for VTune(TM) Amplifier XE?」 (https://software.intel.com/en-us/blogs/2015/12/10/how-to-quickly-use-remote-data-collection-for-vtunetm-amplifier-xe/) の日本語参考訳です。


背景

インテル® VTune™ Amplifier XE は、データ収集、コマンドラインおよびグラフィック・ユーザー・インターフェイスのコンポーネントを提供します。 いくつかのシステムでは GUI がサポートされておらず (GNU* X11 ライブラリーがインストールされていない。ターゲットデバイスがカスタマイズされたオペレーティング・システムで動作しているなど)、そのようなシステムにインテル® VTune™ Amplifier XE がインストールされると、データ収集とコマンドラインのみが利用できます。そのような場合、ユーザーは amplxe-cl コマンドを使用してターゲットでデータを収集して、結果を GUI が利用可能なホストシステムに手動でコピーすることで解析を行うことができますが、これは不便です。インテル® VTune™ Amplifier XE のリモートデータ収集は、ホストからターゲットのデータ収集を行い (結果は自動的にホストに転送される)、すぐに結果を解析する機能をサポートしています。

ターゲットで行うべきことは (Linux*)?

  1. GUI を除くインテル® VTune™ Amplifier XE のコンポーネントをターゲットにインストールします。
  2. VTune ドライバーが起動していることを確認します。”lsmod grep sep | pax | vtsspp” をチェック。起動していなければ、$VTune_Amplifier_XE/sepdk/src ディレクトリーで VTune ドライバーのビルドとインストールを行います。
  3. “ssh-keygen –t rsa” コマンドで、$user/.ssh に id_rsa と id_rsa.pub ファイルを作成します。
  4. >cat $user/.ssh/id_rsa.pub >> $user/.ssh/authorized_keys

ホスト上で行うべきことは (Linux*)?

(重要: すでに $user/.ssh 下に id_rsa、id_rsa.pub、authorized_keys ファイルが存在する場合、競合を避けるためそれらを削除してください)

  1. “scp target_machine:/$user/.ssh/id_rsa $user/.ssh” を実行します。
  2. パスワードの照合なしでターゲットマシンに SSH できることを確認します。
  3. これで、ホストからターゲット上でアプリケーションを実行できる環境が整いました。
    >ssh $user@hsw-ep01 /home/peter/problem_report/primes (hsw-ep01 iは、この例でのターゲットマシン)
    /home/peter/problem_report/primes: error while loading shared libraries: libiomp5.so: cannot open shared object file: No such file or directory
    (/home/peter/problem_report/primes: 共有ライブラリーのロードエラー: libiomp5.so: 共有オブジェクト・ファイルを開けません: そのようなファイルもしくはディレクトリーは存在しません)

    これは、ターゲットの環境が正しく設定されていないことに起因します。この場合、アプリケーションは OpenMP* ライブラリーを必要としていますが、コンパイラーの共有ライブラリー libiomp5.so を正しく参照できていません。 Primes.sh スクリプトを作成します:
    #!/bin/sh
    source /opt/intel/compilers_and_libraries_2016/linux/bin/compilervars.sh intel64
    /home/peter/problem_report/primes

    これで、ホストからアプリケーションをターゲットで実行しても問題はありません。
    >ssh $user@hsw-ep01 /home/peter/problem_report/primes.sh
  4. ホストからインテル® Vtune™ Amplifier XE を使用してターゲット上でアプリケーションを実行できます。次に例を示します:
    > amplxe-cl -target-system=ssh:$user@hsw-ep01 -c advanced-hotspots -knob collection-detail=stack-and-callcount — /home/peter/problem_report/primes.sh

    そして、ホストで結果を参照するには、”amplxe-cl –R hotspots” を使用します。

ホスト上で行うべきことは (Windows*)?

  1. Puttygen.exe をデフォルト設定で起動し、”Generate (生成)” ボタンをクリックします。次に “Save private key (プライベートキーを保存)” をクリックします。例えば、c:\putty\peter.ppk ファイルのように。
  2. パブリックキーをターゲットの $user/.ssh/authorized_keys にコピーして追加します。
  3. Putty.exe を起動し、新しいセッションを作成しターゲットの Host Name(IP) を指定します。Category の [Connection] > [SSH] > [Auth] をクリックし、”Private key file for authentication:” に .ppk ファイルを追加します。(この例では、c:\putty\peter.ppk)。セッションの変更を [Save] します。Putty を使用して、ターゲットへの接続を確認します。パスワードが確認されず接続できた場合、ホストのパブリックキーとターゲットのプライベートキーを上手く利用できていることを意味します。
  4. Linux* 環境でも同様です。次のようにコマンドラインから amplxe-cl を使用してデータを収集するためターゲットに接続します:
    C:\temp>amplxe-cl -target-system=ssh:root@hsw-ep01 -target-install-dir=/opt/inte
    l/vtune_amplifier_xe_2016 -c advanced-hotspots -knob collection-detail=stack-and
    -callcount — /home/peter/problem_report/primes.sh

注意: ターゲットとホストで使用するインテル® VTune™ Amplifier XE のバージョンは同一でなければいけません。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

タイトルとURLをコピーしました