1. サテライト富岳とは

  • 「サテライト富岳」とは、R-CCSが提唱する「バーチャル富岳」の実証・開発環境として整備された、商用クラウド上に「富岳」と同等のソフトウェアスタックを構築した計算機システムです。

  • 「富岳」アカウント保持者が利用できます。

  • 構成に関してはシステム構成およびソフトウェア構成を参照ください。

注意

  • サテライト富岳は試行用のごく小規模な、多数のユーザによる共用の環境です。

  • 各資源は潤沢ではありませんので、ご利用の際にはご注意ください。

  • 事前の予告なくサテライト富岳の運用を停止することがあります。

  • アナウンス情報は富岳ウェブサイトをご確認ください。

2. ログインおよびログアウト

サテライト富岳環境はインターネットから直接接続することはできないため、利用するには、まず初めに富岳ログインノードにログインする必要があります。 富岳ログインノードへのログイン方法は利用手引書 利用およびジョブ実行編をご参照ください。

ログイン時は富岳ログインノードで以下のコマンドを実行します。

login$ ssh sflogin1

重要

  • UID/GIDは富岳と同一です。

  • サテライト富岳では課題毎にデータ領域を設定していますので、シングルアカウントの場合はidコマンドおよびnewgrpコマンドを使用して、グループを変更してファイルにアクセスしてください。以下に実行例を示します。

sflogin1$ id
uid=99999(u19999) gid=59999(fugaku) groups=59999(fugaku),99999(hp999999)
sflogin1$ newgrp hp999999

ログアウト時は以下のコマンドを実行してください。 富岳ログインノードへログインした状態に戻ります。

sflogin1$ exit

また別のログイン方法として、Webブラウザ上でサテライト富岳ログインノードのターミナルを起動することができます。 実行方法は富岳Open OnDemandとの連携をご参照ください。

3. ファイルシステム利用

3.1. 概要

サテライト富岳は試行環境であり、ファイルシステムの利用において富岳とは異なる部分があります。

重要

  • 今後の運用状況により以下の内容は変更となる場合があります。

  • 利用者のデータのバックアップは実施しません。利用者自身で適宜バックアップをお願いします。

  • ホーム領域、データ領域はサテライト富岳にも存在しますが、富岳とは別のファイルシステムであり、共通化されていません。

  • 全体のディスク容量が小さいため、ホーム領域、データ領域ともに必要最小限での利用をお願いします。

  • ジョブ実行に必要なデータは、データ領域をご利用ください。データ領域は共有ファイルシステム(Lustreファイルシステム)上に、課題ごとのディレクトリを用意しています。

  • ジョブ実行に必要なデータは富岳第2階層ファイルシステムからコピーして利用できます(詳しくは富岳とのデータ連携をご覧ください)。

  • ホーム領域、データ領域ともにQuota制限をかけています。

  • ホーム領域、データ領域ともに拡大できません。今後拡大できるようになりましたら富岳ウェブサイトでお知らせします。

3.2. ホーム領域

利用者のhome領域は富岳と同じパスで作成されます。 ただし、ディレクトリ中のデータは同期されていません。

Quota制限はユーザ当たり10GBです。

ホーム領域はログインノードと計算ノードで共有されます。

3.3. データ領域

データ領域は富岳とはパスが異なります。 課題ごとに以下のような領域を用意しますので、ジョブの入出力ファイルの格納場所としてお使いください。

/lustre01/groupname/

Quota制限は課題当たり200GBです。

データ領域はログインノードと計算ノードで共有されます。

3.4. 富岳とのデータ連携

サテライト富岳ログインノードは、富岳の第2階層ファイルシステムをNFSマウントしています。 ジョブ実行に必要なデータは、サテライト富岳データ領域にコピーしてください。以下にコピー例を示します。

sflogin1$ cp /vol000X/groupname/... /lustre01/groupname/...

注意

  • 富岳の第2階層ファイルシステムはサテライト富岳計算ノードからはアクセスできません。

  • 1回あたり50GB以上のデータコピーはご遠慮いただき、必要最小限にしてください。

富岳の第2階層ファイルシステムへは、サテライト富岳ログインノードにて以下のマウントポイントからアクセスできます。 シンボリックリンクは作成していません。ディレクトリ、ファイルには実体パスでアクセスする必要があります。

  • /vol0001

  • /vol0002

  • /vol0003

  • /vol0004

  • /vol0005

  • /vol0006

Tip

  • 富岳の第2階層の実体パス(ファイルパス)は 富岳ログインノード上で 以下のように確認できます。

login$ readlink -f <filepath>

3.5. その他

バーチャル富岳環境(Spack)をインストールしたファイルシステムがあります(/efs01)。 この領域はバーチャル富岳環境(Spack)として提供するOSSをインストールする目的に限定しており、利用者は書き込みをすることができません。

なお、バーチャル富岳環境(Spack)の利用方法は以下の通りです。

sflogin1$ . /efs01/apps/oss/spack/share/spack/setup-env.sh

4. コンパイル

GCCでのみコンパイルが可能です。 利用可能なコンパイラについてはコンパイラ環境も併せてご参照ください。 以下、コンパイル実行例です。

sflogin1$ gcc -o a.out sample.c

5. ジョブ実行

ジョブ実行には、バッチジョブとインタラクティブジョブによる2種類の方法があります。 バッチジョブは、あらかじめジョブスクリプトを作成しジョブを投入する方法で、 長時間実行する場合などに適しています。 一方、インタラクティブジョブでは、ユーザがコマンド実行を会話的に行うことができるため、 バッチジョブ投入前のデバッグ等に使用することができます。

5.1. ジョブキュー

サテライト富岳では以下のジョブキューを利用可能です。

重要

  • 今後の運用状況により内容は変更となる場合があります。

キュー名

ノード名

最大ノード数

合計利用可能コア数

最大経過時間

ノードあたり最大メモリ量

ジョブあたり最大ノード数

satf01

satf01-dy-g3e-[1-8]

8

512

24 H

128 GB

8

計算ノードの状態はsinfoコマンドで確認できます。以下に例を示します。

sflogin1$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
satf01*      up   infinite      7  idle~ satf01-dy-g3e-[2-8]
satf01*      up   infinite      1    mix satf01-dy-g3e-1

STATE の主な表示内容と説明は以下の通りです。

STATE

意味

idle~

ノード停止状態

idle

アイドル状態(すべてのコアにジョブが割り当たっていない状態)

mix

CPUコアの一部はジョブに割り当てられているものの、まだ空きCPUコアが存在する状態

alloc

すべてのコアにジョブが割り当てられている状態

sinfoコマンドの詳細な利用方法はプリポスト環境 利用手引書やSlurm公式ドキュメントをご参照ください。

ジョブキューの情報は以下のコマンドで確認できます。

sflogin1$ scontrol show partition

注意

  • 計算ノードは現在最大8ノードまで起動しますが、常時8台が稼働しているわけではありません。

  • ジョブ実行を終了した計算ノードは、アイドル状態が10分間継続すると停止状態となります。

  • ジョブ実行に際し新たに計算ノードを起動する必要がある場合、ジョブ実行開始までに5分程度を要します。

5.2. バッチジョブ

サテライト富岳環境へバッチジョブとしてジョブを投入するには、ジョブスクリプトを作成し、 サテライト富岳ログインノード上でSlurmコマンドを実行します。

投入したジョブは自動的にスケジューリングされ、実行されます。

同一ノードは複数ジョブで共用されます。性能測定したい場合はノードを専有するようにジョブを実行してください。

以下にジョブ実行例を示します。

  1. 逐次ジョブ

sflogin1$ cat job.sh
#!/bin/bash
#SBATCH -p satf01
#SBATCH -n 1
#SBATCH --time 00:30:00
#SBATCH --mem 1G
./a.out
sflogin1$ sbatch job.sh
  1. OpenMP

sflogin1$ cat mp.sh
#!/bin/bash
#SBATCH -p satf01
#SBATCH --time 00:30:00
#SBATCH --cpus-per-task=2
export OMP_NUM_THREADS=2
./a.out
sflogin1$ sbatch mp.sh
  1. OpenMPI

sflogin1$ cat mpi.sh
#!/bin/bash
#SBATCH -p satf01
#SBATCH -n 2
#SBATCH --time 00:30:00
mpiexec --use-hwthread-cpus -n 2 ./a.out
sflogin1$ sbatch mpi.sh

投入したジョブの状況は以下で確認できます。

sflogin1$ squeue

5.3. インタラクティブジョブ

インタラクティブジョブでは、必要となるリソースをSlurmコマンドのオプションとして、 サテライト富岳ログインノード上で直接指定し、実行します。 リソースが確保できればインタラクティブジョブに遷移します。 その後は、会話的にコマンドが実行できます。 以下にインタラクティブジョブのジョブ投入コマンドの例を示します。

注意

  • 必ず実行時間の制限(--timeオプション)を設定してください。

sflogin1$ srun -N1 -n1 --job-name "InteractiveJob" --time 00:30:00 --pty bash -i

5.4. Slurmコマンド

サテライト富岳で利用可能な主なSlurmコマンドを以下に示します。 各コマンドの詳細な利用方法はプリポスト環境 利用手引書やSlurm公式ドキュメントをご参照ください。

  • sinfo

  • squeue

  • sbatch

  • srun

  • scancel

注意

  • ジョブ実行履歴確認コマンド(sacctコマンド)は現在利用できません。利用できるようになりましたら富岳ウェブサイトでお知らせします。

6. システム構成

6.1. システム構成図

_images/satf01_system.svg

6.2. マシンスペック

  • ログインノード

ノード名:sflogin1

Server

AWS EC2

CPU

AWS Graviton3E (2.60GHz/64core)

Memory

128GB

Local Storage

1TB

OS

RHEL 8.10 (4.18.0-553.5.1.el8_10.aarch64)

Shared File System

Lustre File System 12TB (quota 200GB/group), EFS (Only for Virtual Fugaku Environment(Spack), READ ONLY)

  • 計算ノード

ノード名:satfs01-dy-g3e-1 ~ satfs01-dy-g3e-8

Server

AWS EC2

CPU

AWS Graviton3E (2.60GHz/64core)

Memory

128GB

Local Storage

35GB

Cluster Network

EFA enabled

OS

RHEL 8.10 (4.18.0-553.5.1.el8_10.aarch64)

Shared File System

Lustre File System 12TB (quota 200GB/group), EFS (Only for Virtual Fugaku Environment(Spack), READ ONLY)

注意

  • 計算ノードは現在最大8ノードまで起動しますが、常時8台が稼働しているわけではありません。

  • ジョブ実行を終了した計算ノードは、アイドル状態が10分間継続すると停止状態となります。

  • ジョブ実行に際し新たに計算ノードを起動する必要がある場合、ジョブ実行開始までに5分程度を要します。

7. ソフトウェア構成

7.1. バーチャル富岳環境(Spack)

サテライト富岳では、バーチャル富岳ver.1として定義されているソフトウェアスタックを提供します。 バーチャル富岳ver.1のソフトウェアスタックはSpackのレシピとして実装されています。 以下のコマンドを実行することで、利用可能なOSSの一覧が取得できます。

ここでは -x オプションにより明示的にインストールされたパッケージのみを表示していますが、実際にはこれらが依存する多数のパッケージもインストールされています。

注意

  • 最新の状態は実機でご確認ください。

sflogin1$ . /efs01/apps/oss/spack/share/spack/setup-env.sh
sflogin1$ spack find -x
-- linux-rhel8-neoverse_v1 / gcc@8.5.0 --------------------------
gcc@14.1.0

-- linux-rhel8-neoverse_v1 / gcc@14.1.0 -------------------------
genesis@2.1.3
gnuplot@6.0.0
gromacs@2024.2
gsl@2.7.1
lammps@20230802.3
metis@5.1.0
openbabel@3.1.1
openfoam@2312
openfoam-org@10
paraview@5.12.1
parmetis@4.0.3
petsc@3.21.2
py-ase@3.21.1
py-matplotlib@3.9.0
py-mpi4py@3.1.6
py-numpy@1.26.4
py-pandas@2.1.4
py-scikit-learn@1.5.0
py-scipy@1.13.1
py-toml@0.10.2
quantum-espresso@7.3.1
scale@5.4.4
tmux@3.4

7.2. コンパイラ環境

以下が利用可能です。

  • gcc 8.5.0

  • gcc 14.1.0 ($ spack load gcc の実行により利用可能となります)

7.3. MPI環境

デフォルトでOpenMPI 4.1.6( /opt/amazon/openmpi )が利用できます。

8. 富岳Open OnDemandとの連携

富岳Open OnDemandからサテライト富岳ログインノードのコマンドラインインタフェースを起動することができます。

これにより、Webブラウザ上でサテライト富岳ログインノードが操作できます。

富岳Open OnDemandの「Passenger Apps」から「Satellite Fugaku Shell Access」を選択してください。 富岳Open OnDemandの利用方法は富岳Open OnDemandガイドをご参照ください。

_images/terminal_on_fugakuood.png

9. Singularityの利用

サテライト富岳では、Singularity(singularity-ce version 4.1.4)の利用が可能です。

Singularityは、HPC向けに開発されたコンテナランタイムです。ユーザー権限を維持しつつ、セキュアなコンテナ環境を提供し、軽量かつ効率的に動作します。

本手順ではSingularityの基本操作および実行例を示します。

詳細な情報は公式ユーザーガイドを参照してください。

9.1. コンテナイメージの実行

Singularityはシンプルなコマンドでコンテナを操作できます。

  1. イメージの取得

singularity pull docker://ubuntu:latest

このコマンドは ubuntu:latest のイメージを取得し、 ubuntu_latest.sif というファイルを作成します。

  1. コンテナの実行

singularity run ubuntu_latest.sif

ubuntu_latest.sifrunscript を実行します。runscript がない場合、シェルモードで開けます。

  1. コンテナ内でコマンドを実行

singularity exec ubuntu_latest.sif ls /usr

コンテナ内で /usr ディレクトリをリスト表示します。

  1. シェルに入る

singularity shell ubuntu_latest.sif

Singularityのシェルを開き、インタラクティブに操作できます。

  1. ファイルシステムのバインド

singularity exec --bind /data:/mnt ubuntu_latest.sif ls /mnt

ホストの /data をコンテナ内の /mnt にバインドします。

9.2. コンテナイメージの作成

Singularityには、主に2つのイメージ形式があります。

  • SIF(Singularity Image Format):

    Singularityの標準イメージ形式で、単一ファイルにコンテナデータが含まれます。

  • サンドボックス(ディレクトリ形式):

    ディレクトリとして管理され、開発やデバッグ時に便利です。

singularity build --sandbox my_sandbox/ docker://ubuntu:latest

ここでは、SIFイメージの作成について記載します。

また、一般ユーザ権限でコンテナを作成するため、fakeroot機能を活用します。

  1. ベースイメージの取得

singularity build ubuntu_latest.sif docker://ubuntu:latest

Docker Hubの ubuntu:latest をSingularityイメージ(SIF形式)に変換します。

  1. イメージのビルド

singularity build --fakeroot my_image.sif Singularity.def

定義ファイル Singularity.def の定義に従い、 my_image.sif を作成します。

Tip

  • イメージの詳細は以下のように確認可能です。

singularity inspect my_image.sif

イメージのメタデータ(環境変数、ラベル、runscript など)を表示します。

  1. 定義ファイルの記述

以下に定義ファイルの記述例を示します。

  • Headerセクション

Bootstrap: docker
From: ubuntu:20.04

Ubuntu 20.04のDockerイメージをベースに作成します。

  • %postセクション

%post
    apt-get update
    apt-get install -y build-essential
    apt-get clean
    rm -rf /var/lib/apt/lists/*

不要なデータを削除し、コンテナサイズを最適化します。

  • %runscriptセクション

%runscript
    echo "This is a custom Singularity container!"
    exec "$@"
  • %environmentセクション

%environment
    export PATH=/opt/myapp/bin:$PATH
    export MY_VAR="custom_value"

9.3. 計算ノード上でのSingularityの利用

Singularityコンテナを計算ノード上で実行できます。

サテライト富岳のジョブスケジューラはSlurmであり、ジョブスクリプトを以下のように記述します。

#!/bin/bash
#SBATCH --job-name=my_singularity_job
#SBATCH --output=output.txt
#SBATCH --ntasks=1
#SBATCH --time=00:10:00
singularity run my_container.sif python my_script.py

10. 改訂履歴

Version

Date

Detail

1.0

2024-07-16

初版作成

1.1

2024-07-26

2章 富岳Open OnDemandからのログインについて追記/8章 富岳Open OnDemandからサテライト富岳ログインノードのターミナルを起動する方法を追加

1.2

2025-02-28

9章 Singularityの利用方法を追加