この記事は、インテル® デベロッパー・ゾーンに公開されている「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*)?
- GUI を除くインテル® VTune™ Amplifier XE のコンポーネントをターゲットにインストールします。
- VTune ドライバーが起動していることを確認します。”lsmod grep sep | pax | vtsspp” をチェック。起動していなければ、$VTune_Amplifier_XE/sepdk/src ディレクトリーで VTune ドライバーのビルドとインストールを行います。
- “ssh-keygen –t rsa” コマンドで、$user/.ssh に id_rsa と id_rsa.pub ファイルを作成します。
- >cat $user/.ssh/id_rsa.pub >> $user/.ssh/authorized_keys
ホスト上で行うべきことは (Linux*)?
(重要: すでに $user/.ssh 下に id_rsa、id_rsa.pub、authorized_keys ファイルが存在する場合、競合を避けるためそれらを削除してください)
- “scp target_machine:/$user/.ssh/id_rsa $user/.ssh” を実行します。
- パスワードの照合なしでターゲットマシンに SSH できることを確認します。
- これで、ホストからターゲット上でアプリケーションを実行できる環境が整いました。
>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 - ホストからインテル® 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*)?
- Puttygen.exe をデフォルト設定で起動し、”Generate (生成)” ボタンをクリックします。次に “Save private key (プライベートキーを保存)” をクリックします。例えば、c:\putty\peter.ppk ファイルのように。
- パブリックキーをターゲットの $user/.ssh/authorized_keys にコピーして追加します。
- Putty.exe を起動し、新しいセッションを作成しターゲットの Host Name(IP) を指定します。Category の [Connection] > [SSH] > [Auth] をクリックし、”Private key file for authentication:” に .ppk ファイルを追加します。(この例では、c:\putty\peter.ppk)。セッションの変更を [Save] します。Putty を使用して、ターゲットへの接続を確認します。パスワードが確認されず接続できた場合、ホストのパブリックキーとターゲットのプライベートキーを上手く利用できていることを意味します。
- 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 のバージョンは同一でなければいけません。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。