🗻

バーチャル富岳の GENESIS 実行例を Rescale で実行する

に公開

この記事について

バーチャル富岳GENESISの実行例をRescaleで実行します。理化学研究所から公開されているスライドの「アプリの実行例1:genesis」を実行します

背景

理化学研究所 計算科学研究センターによると、バーチャル富岳は以下のように説明されています

「バーチャル富岳」とは、「富岳」以外のスパコンやクラウドサービス上に、「富岳」と同等のソフトウェア環境を再現するものです。

また、以下の説明の通り、現在は AWS の Graviton CPU をサポート対象として Singularity image の形で環境が配布されています

このような「バーチャル富岳」の構築に向け、まず「富岳」の CPU と互換性のある Arm アーキテクチャベースの CPU の AWS Graviton を用いたクラウドサービスを提供するアマゾン・ウェブ・サービス(AWS)との間で 覚書を締結し、「富岳」上のアプリケーションを AWS 上でほぼそのまま実行できる、いわば「富岳」の機能がクラウド上に仮想的に再現されるソフトウェア環境の構築に向けた研究協力を行いました。研究協力の結果から、理研はGraviton CPUを「バーチャル富岳」の第一号のサポート対象とすることを決定し、2024年8月に「バーチャル富岳」初版 (ver. 1.0) を、2024年11月にアップデート版 (ver. 1.1) のリリースを開始しました。
「バーチャル富岳」初版のソフトウェアスタックは、「富岳」で利用頻度の高いオープンソースソフトウェアを選抜しました。Ver. 1.1 では、産業界で利用頻度の高いアプリケーションとAIフレームワーク関連のオープンソースソフトウェアを追加するアップデートを行いました。また、配付はSingularityコンテナイメージにて行います。AWSインスタンスを購入した方々が、このコンテナイメージをAWSへインストールすることでプライベートな「富岳」が構築できることになります。さらに、「富岳」の利用者ならば誰でも使用可能な、「バーチャル富岳」の試験・試行環境をAWSのクラウドサービス上に構築して提供します。

具体的な AWS 上での実行方法は理化学研究所提供のスライドに書かれていますが、詳細な環境構築手順が書かれているわけではありません。また、実際にバーチャル富岳に含まれるソフトウェアを研究等で使用したい際に, AWS 上の環境構築や保守運用の手間はなるべく省きたいケースも想定されます
一方 Rescale を使用すれば, Singularity インストール済みのクラスタを環境構築不要で起動できます。そこで, Rescale の Graviton CPU 搭載のコアタイプを使用し、前出のスライドの最初の題材である GENESIS の例を実行してみます

ジョブ設定

まずは, Singularity image と GENESIS の入力ファイルをコマンド内で取得する方法で実行します。したがって以下のジョブ設定では入力ファイル(Inputs)が「なし」となっています

  • Inputs: なし
  • Software Settings
    • Bring Your Own Singularity Container 3.10.0 (ARM)
    • Command
SIFFILE=~/work/shared/vf-ver1.1_latest.sif
export SINGULARITY_BIND=${PWD},/opt/amazon
export OMP_NUM_THREADS=8

cd ~/work/shared/

wget https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/12/benchmark_mkl_ver4_nocrowding.tar.gz
tar -zxvf benchmark_mkl_ver4_nocrowding.tar.gz

singularity pull library://riken-rccs/virtual-fugaku/vf-ver1.1
cd benchmark_mkl_ver4_nocrowding/npt/genesis1.6_2.5fs/jac_amber
mpirun --use-hwthread-cpus -n 8 singularity -v run ${SIFFILE} spdyn p8.inp
  • Hardware Settings
    • Pectolite 64 cores
    • Walltime: 1 hour

以下のコマンドで, Rescale REST API で上記ジョブを作成できます

curl -H "Authorization: Token <api-token>" -H "Content-Type: application/json" "https://platform.rescale.jp/api/v2/jobs/" -d '
{
  "isLowPriority": false,
  "name": "Virtual Fugaku genesis (Pectolite 64 Cores)",
  "jobanalyses": [
    {
      "inputFiles": [],
      "analysis": {
        "code": "user_included_singularity_container",
        "version": "3.10.0-aarch64"
      },
      "command": "SIFFILE=~/work/shared/vf-ver1.1_latest.sif\nexport SINGULARITY_BIND=${PWD},/opt/amazon\nexport OMP_NUM_THREADS=8\n\ncd ~/work/shared/\n\nwget https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/12/benchmark_mkl_ver4_nocrowding.tar.gz\ntar -zxvf benchmark_mkl_ver4_nocrowding.tar.gz\n\nsingularity pull library://riken-rccs/virtual-fugaku/vf-ver1.1\ncd benchmark_mkl_ver4_nocrowding/npt/genesis1.6_2.5fs/jac_amber\nmpirun --use-hwthread-cpus -n 8 singularity -v run ${SIFFILE} spdyn p8.inp",
      "hardware": {
        "slots": 1,
        "coresPerSlot": 64,
        "coreType": "pectolite",
        "walltime": 1
      }
    }
  ]
}
'

実行結果

Running Job の時間は22分程度で実行できました。

process_output.log を見ると, Singularity image のダウンロードに19分ほど要していることが分かります。後ほど, Singularity image を入力ファイルに設定し, Running Job の時間短縮をしてみます

また、理化学研究所のスライド中で「実行結果 ⇒ 正常動作」として言及されている Output_Time から始まる出力内容が, process_output.log に出ています。したがって GENESIS の実行例を正常に実行できたものと考えられます

Singularity image を入力ファイルにして時間短縮する

  • Inputs: vf-ver1.1_latest.sif
  • Software Settings
    • Bring Your Own Singularity Container 3.10.0 (ARM)
    • Command
SIFFILE=~/work/shared/vf-ver1.1_latest.sif
export SINGULARITY_BIND=${PWD},/opt/amazon
export OMP_NUM_THREADS=8

cd ~/work/shared/

wget https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/12/benchmark_mkl_ver4_nocrowding.tar.gz
tar -zxvf benchmark_mkl_ver4_nocrowding.tar.gz

cd benchmark_mkl_ver4_nocrowding/npt/genesis1.6_2.5fs/jac_amber
mpirun --use-hwthread-cpus -n 8 singularity -v run ${SIFFILE} spdyn p8.inp
  • Hardware Settings
    • Pectolite 64 cores
    • Walltime: 1 hour

Running Job の時間から Singularity image のダウンロードに要する時間がなくなり、4分程度にまで短縮されました

Discussion