この記事は、インテル® デベロッパー・ゾーンに公開されている『Intel® VTune™ Profiler Performance Analysis Cookbook』の「Profiling in a Singularity* Container」日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
このレシピは、インテル® VTune™ Amplifier の解析向けに Singularity* コンテナーを構成して、独立したコンテナー環境で動作しているアプリケーションの hotspot を特定します。
コンテンツ・エキスパート: Denis Pravdin (英語)
使用するもの
以下は、パフォーマンス解析シナリオで使用するハードウェアとソフトウェアのリストです。
- アプリケーション: MatrixMultiplication。
この Java* アプリケーションはデモ用であり、ダウンロードすることはできません。
- ツール: インテル® VTune™ Amplifier 2018
注
- インテル® VTune™ プロファイラー評価版のダウンロードと製品サポートについては、https://www.isus.jp/intel-vtune-amplifier-xe/ を参照してください。
- このクックブックのレシピはすべてスケーラブルであり、インテル® VTune™ Amplifier 2018 以降に適用できます。バージョンにより設定がわずかに異なることがあります。
- ベータ版インテル® oneAPI ベース・ツールキット向けのバージョンから、インテル® VTune™ Amplifier の名称がインテル® VTune™ プロファイラーに変わりました。引き続き、インテル® Parallel Studio XE またはインテル® System Studio のコンポーネントとして、あるいはスタンドアロン版のインテル® VTune™ プロファイラーをご利用いただけます。
- Linux* コンテナーランタイム: singularity
- オペレーティング・システム: Ubuntu* 16.04
- CPU: インテル® プロセッサー (開発コード名 Skylake)、8 論理 CPU
Singularity* コンテナーをインストールして設定する
- Singularity* ソフトウェア (例えばバージョン 2.4.5) をインストールします。
host> VERSION=2.4.5 host> wget https://github.com/singularityware/singularity/releases/download/$VERSION/singularity-$VERSION.tar.gz host> tar xvf singularity-$VERSION.tar.gz host> cd singularity-$VERSION host>./configure --prefix=/usr/local host> make host> sudo make install
注
詳しいインストール手順は、https://singularity.lbl.gov/install-linux (英語) を参照してください。 - 新しい Singularity* コンテナーを、例えば Docker* Hub を使用して作成します。
host> singularity build ubuntu.img docker://ubuntu:latest Docker image path: index.docker.io/library/ubuntu:latest Cache folder set to /root/.singularity/docker Importing: base Singularity environment Importing: /root/.singularity/docker/sha256:d3938036b19cfa369e1081a6776b07b54be9612bc4c8fed7f139370c8142b79f.tar.gz Importing: /root/.singularity/docker/sha256:a9b30c108bda615dc10e402f62d712f413214ea92c7ec4354cd1cc0f3450bc58.tar.gz Importing: /root/.singularity/docker/sha256:67de21feec183fcd009a5eddc4de8c346ee0f4369a20047f1a302a90716fc741.tar.gz Importing: /root/.singularity/docker/sha256:817da545be2ba4bac8f6b4da584bca0fb4844938ecc462b9feab1001b5df7405.tar.gz Importing: /root/.singularity/docker/sha256:d967c497ce230b63996a7b1fc6ec95b741aea9348118d3328c676f13be789fa7.tar.gz Importing: /root/.singularity/metadata/sha256:c6a9ef4b9995d615851d7786fbc2fe72f72321bee1a87d66919b881a0336525a.tar.gz Building Singularity image... Singularity container built: ubuntu.img Cleaning up...
注
Ubuntu.img ファイルが現在のディレクトリーに作成されることを確認してください。 - コンテナーを実行します。
Singularity* は、ホストシステム上のディレクトリーをコンテナー内にマップできます。これにより、簡単にホストシステム上のデータを読み書きできます。例えば、インテル® VTune™ Amplifier と Java* アプリケーションでホストフォルダー /tmp/vtune を使用する場合、コンテナーを実行して /tmp/vtune をコンテナー内の /local/vtune へマップする必要があります。
host> singularity shell --bind /tmp/vtune:/local/vtune ./ubuntu.img Singularity: Invoking an interactive shell within container... Singularity ubuntu.img:~>
コンテナー内でパフォーマンス解析を実行する
Singularity* コンテナーからインテル® VTune™ Amplifier のコマンドライン・インターフェイス amplxe-cl を起動して、Java* アプリケーションの解析を実行します。例えば、MatrixMultiplication アプリケーションの高度な hotspot 解析を実行するには、次のコマンドを入力します。
Singularity ubuntu.img:~> cd /local/vtune/matrix/ Singularity ubuntu.img:/local/vtune/matrix> /local/vtune/bin64/vtune -collect advanced-hotspots -- /local/vtune/jdk9.0.1-x64/bin/java -cp . MatrixMultiplication 2000 2000 2000 2000
注
- Singularity* コンテナーで動作しているターゲット・アプリケーションをプロファイルするには、同じコンテナーからインテル® VTune™ Amplifier を起動します。Singularity* プロファイルでは、コンテナー外からのインテル® VTune™ Amplifier の実行はサポートされていません。
- 高度な hotspot 解析は、インテル® VTune™ Amplifier 2019 で汎用の hotspot 解析に統合されました。ハードウェア・イベントベース・サンプリング収集モードで利用できます。
収集後、ホストシステムにインストールされているインテル® VTune™ Amplifier の GUI から解析結果がを開き、従来の解析フローに従ってアプリケーション・パフォーマンスの概要を提供する [Summary (サマリー)] ウィンドウから開始します。
注
Singularity* コンテナー外 (例えば、ホストシステムにインストールされているインテル® VTune™ Amplifier の GUI ) で解析結果を再ファイナライズする必要がある場合、モジュールに必要なすべてのバイナリーとソースファイルにコンテナー外からアクセスできることを確認してください。
関連情報
- Java* コード解析 (英語)