クライアント・マシンからサーバー上のインテル® Xeon Phi™ コプロセッサーで動作するアプリケーションのプロファイルを行う
この記事は、インテル® デベロッパー・ゾーンに公開されている「Practice an example of profiling applications on Intel® Xeon Phi™ coprocessor on the sever from a client machine」の日本語参考訳です。
シナリオ:
インテル® Xeon Phi™ コプロセッサー・カードを搭載した Linux* サーバーが、X11 をサポートせずにインテル® VTune™ Amplifier XE GUI をサーバー上で利用できないカスタマイズされた Linux* システムである場合。開発者は、他のマシン (クライアント) から、データを収集して解析する必要があります。
ソリューション:
- サーバー・プラットフォームにインテル® VTune™ Amplifier XE 製品のフルパッケージをインストールすることが可能であれば、サーバーへ接続するため ssh を使用してクライアントからコンソールを開くことができます。そして、インテル® VTune™ Amplifier XE コマンドライン “amplxe-cl” を使用してプロファイルを行います。この方法では、クライアントからコンソールを使用してサーバー上のアプリケーションのプロファイルを行い、その結果と調査対象のモジュールおよびソースを amplxe-gui を利用して解析を行うクライアントにコピーする必要があります。インテル® Xeon Phi™ コプロセッサー上でのアプリケーションのプロファイルについては、こちらの記事をご覧ください。
- クライアント・マシンからリモートでパフォーマンス・データを収集する機能を使用すると、ssh でサーバーにリモート接続してプロファイルを行う必要はありません。こちらの記事を参照ください。この方法ではサーバー上にインテル® VTune™ Amplifier XE 製品全体をインストールする必要はなく、インテル® VTune™ Amplifier XE GUI コンポーネントを除く製品のインストールだけで済みます。ライセンスファイルも必要ありません。
ドキュメントと上記の記事を読む時間が無い方のため、以下に 2 番目の方法を行う手順をまとめます。
クライアント・マシンにはインテル® VTune™ Amplifier XE 2015 製品すべてをインストールし、サーバーマシンにはインテル® VTune™ Amplifier XE GUI コンポーネント以外をインストールします (すべてのインテル® VTune™ Amplifier XE ドライバーがロードされていることを確認してください)。
各マシンの設定を行います。
- サーバーマシン上で行うこと: root もしくは sudo で
- /root/.ssh で id_rsa を生成するため、”ssh-keygen -t rsa” を実行 (“root” でログインしている場合)
- /root/.ssh から “scp id_rsa.pub authorized_keys” を実行
- 生成された id_rsa ファイルをクライアント・マシンにコピー
- (非常に重要) /root/.ssh から他の場所へ id_rsa.pub を移動し、次のステップで MIC カードからパスワードなしで ssh を使用できるよう設定
- サーバーマシンの MIC 側で行うこと:
- /root/.ssh で id_rsa を生成するため、”ssh-keygen -t rsa” を実行
- /root/.ssh で “scp id_rsa.pub authorized_keys” を実行
- この id_rsa ファイルをサーバーマシンへコピー
- サーバーマシン上で行うこと: root もしくは sudo で
クライアントからパスワードなしで ssh をテストします。
# ssh prc-mic01
Last login:Thu Dec 11 15:53:20 2014 from snb01
# ssh mic0
# (パスワードは要求されません)最後に、サーバー上の MIC プログラムのプロファイルを行うため、クライアントからインテル® VTune™ Amplifier XE のデータ収集が動作することを確認します。次に例を示します:
> amplxe-cl –target-system=ssh:root@prc-mic01 –target-system=mic-native:mic0 -collect advanced-hotspots -knob collection-detail=stack-sampling — /root/omp_pi.MIC
amplxe:Using target: ssh:root@prc-mic01
…
amplxe:Collection started. (収集を開始しました) 収集を停止するには、CTRL-C を押すか他のコンソール・ウィンドウから次のコマンドを実行します:
amplxe-cl -r /root/r009ah -command stop
amplxe:Error:Binary ‘/root/omp_pi.MIC’ cannot be executed. 推奨: 指定した場所に正しくファイルが存在し、そのファイルの実行権限を持っていることを確認します。
amplxe:Collection failed. (収集に失敗しました)
amplxe:Collection failed. (収集に失敗しました)
amplxe:Copying collection logs from the device (デバイスから収集したログをコピーしています)現在の製品は、MIC カードを搭載するリモートホストのリモート収集を処理しないことがその理由です。また、次の方法も利用できます。
> ssh root@prc-mic01 /opt/intel/vtune_amplifier_xe_2015/bin64/amplxe-cl –target-system=mic-native:mic0 -collect advanced-hotspots -knob collection-detail=stack-sampling –r vtune_mic_rpt– /root/omp_pi.MIC
その後、解析のためサーバーから結果ファイル vtune_mic_rpt を直接コピーできます。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください