この記事は、インテル® デベロッパー・ゾーンに公開されている『Intel® VTune™ Profiler Performance Analysis Cookbook』の「Profiling in a Apptainer* Container」日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
このレシピは、インテル® VTune™ プロファイラーの解析向けに Apptainer* コンテナを設定して、独立したコンテナ環境で動作しているアプリケーションの hotspot を特定します。
コンテンツ・エキスパート: Alexey Kireev
使用するもの
以下は、パフォーマンス解析シナリオで使用するハードウェアとソフトウェアのリストです。
- アプリケーション: MatrixMultiplication
この Java* アプリケーションはデモ用であり、ダウンロードすることはできません。 - ツール: インテル® VTune™ プロファイラー
- Linux* コンテナランタイム: Apptainer
オペレーティング・システム: Ubuntu* 20.04
- CPU: 8 論理 CPU 搭載のインテル® マイクロアーキテクチャー開発コード名 Skylake。
Apptainer* コンテナをインストールして設定する
Apptainer* をインストールします。詳しいインストール手順は、Apptainer* のインストール・ガイド (英語) を参照してください。
新しい Apptainer* コンテナを、例えば Docker* Hub を使用して作成します。
host> apptainer build ubuntu.img docker://ubuntu:latest INFO: Starting build... Getting image source signatures Copying blob 5e8117c0bd28 done Copying config b6548eacb0 done Writing manifest to image destination Storing signatures 2023/12/08 15:23:58 info unpack layer: sha256:5e8117c0bd28aecad06f7e76d4d3b64734d59c1a0a44541d18060cd8fba30c50 INFO: Creating SIF file... INFO: Build complete: ubuntu.img
注:
ubuntu.img ファイルが現在のディレクトリーに作成されることを確認してください。コンテナを実行します。
Apptainer* は、ホストシステム上のディレクトリーをコンテナ内にマップできます。これにより、簡単にホストシステム上のデータを読み書きできます。例えば、インテル® VTune™ プロファイラーと Java* アプリケーションでホストフォルダー /tmp/vtune を使用する場合、コンテナを実行して /tmp/vtune をコンテナ内の /local/vtune へマップする必要があります。
host> apptainer shell --bind /opt/intel/oneapi/vtune/2024.0:/local/vtune --bind /test_application:/local/test_application ./ubuntu.img
コンテナ内でパフォーマンス解析を実行する
Apptainer* コンテナからインテル® VTune™ プロファイラーのコマンドライン・インターフェイス (vtune-cl) を起動して、Java* アプリケーションの解析を実行します。
例えば、MatrixMultiplication アプリケーションの hotspot 解析を実行するには、次のコマンドを入力します。
Apptainer> /local/vtune/bin64/vtune -collect hotspots -- /local/test_application/jdk-21.0.1/bin/java -cp /local/test_application MatrixMultiplication 2000 2000 2000 2000
注:
Apptainer* コンテナで動作しているターゲット・アプリケーションをプロファイルするには、同じコンテナからインテル® VTune™ プロファイラーを起動します。
収集後、ホストシステムにインストールされているインテル® VTune™ プロファイラーの GUI から解析結果を開き、アプリケーション・パフォーマンスの概要を提供する [Summary (サマリー)] ウィンドウから開始します。
注:
Apptainer* コンテナ外 (例えば、ホストシステムにインストールされているインテル® VTune™ プロファイラーの GUI ) で解析結果を再ファイナライズする必要がある場合、モジュールに必要なすべてのバイナリーとソースファイルにコンテナ外からアクセスできることを確認してください。