Skip to content

ようこそ

このガイドでは、AI4S Supercomputer の早期アクセス利用に必要な基本情報として、ログイン方法と簡単な Slurm ジョブの例を説明します。

システムのハードウェア情報については、https://github.com/RIKEN-RCCS/AI-for-Science-Supercomputer を参照してください。

AI4S Supercomputer の早期アクセス利用アカウントを申請するには、アカウント作成フォームを提出してください。

アカウント作成フォーム

SSH ログイン

以下の USERNAME は自分のユーザー名に置き換えてください。

$ ssh USERNAME@login01.ai.r-ccs.riken.jp

利用方法

Slurm を使ってジョブを投入します。利用可能なパーティションは以下のとおりです。

パーティション 最大ノード数 最大 GPU/ノード 最大実行時間 最大メモリ/ノード
1n1gpu 1 1 96 時間 400GB
1n2gpu 1 2 96 時間 800GB
1n4gpu 1 4 96 時間 1600GB
2n4gpu 2 4 96 時間 1600GB
4n4gpu 4 4 96 時間 1600GB
4n4gpu-p 4 4 無制限 無制限

モジュール環境

このシステムでは、NVIDIA HPC Software Development Kitを利用した開発・実行向けに複数のモジュール環境を提供しています。

モジュール 説明
nvhpc 標準的な NVHPC 環境
nvhpc-nompi MPI なしの NVHPC 環境。MPI を自分で管理する場合に使用します
nvhpc-hpcx IB と HPC-X を含む NVHPC 環境
nvhpc-hpcx-cuda13 HPC-X を含み、CUDA 13 に固定された NVHPC 環境
nvhpc-byo-compiler システムの GCC を利用する環境。BYO は bring your own の意味です

利用可能なモジュールを確認する

module avail を使うと、利用可能なモジュールの詳細な一覧を確認できます。

$ module avail

ロード済みのモジュールを確認する

module list を使うと、現在ロードされているモジュールを確認できます。

$ module list

モジュールを読み込む

利用したい環境は module load で読み込みます。

$ module load nvhpc

モジュールを切り替える

別のモジュールを読み込む前に、現在のモジュールを unload します。

$ module unload nvhpc
$ module load nvhpc-hpcx

モジュールの内容を確認する

module show を使うと、そのモジュールが環境にどのような変更を加えるかを確認できます。

$ module show nvhpc-hpcx

バッチジョブを投入する

job.sh のようなジョブスクリプトを作成します。以下の例では、1n1gpu パーティションで 1 ノード、1 GPU を要求します。

#!/bin/bash
#SBATCH --job-name=test-job
#SBATCH --partition=1n1gpu
#SBATCH --nodes=1
#SBATCH --gpus-per-node=1
#SBATCH --time=00:10:00

module load nvhpc

hostname
nvidia-smi

sbatch でジョブを投入します。

$ sbatch job.sh

squeue で自分のジョブを確認します。

$ squeue -u $USER

インタラクティブジョブを実行する

salloc を使う

salloc を使うと、インタラクティブセッション用のリソースを確保できます。以下の例では、1n1gpu パーティションで 10 分間、1 ノード、1 GPU を要求します。

$ salloc --partition=1n1gpu --nodes=1 --gpus-per-node=1 --time=00:10:00

割り当てが開始されたら、srun を使って割り当てられたノード上でコマンドを実行します。

$ srun hostname
$ srun nvidia-smi

終了したら、exit を実行してインタラクティブ割り当てを解放します。

$ exit
exit
salloc: Relinquishing job allocation 1066

srun を使う

srun --pty bash を使うと、計算ノード上でインタラクティブシェルを開始できます。以下の例では、1n1gpu パーティションで 10 分間、1 ノード、1 GPU を要求します。

$ srun --partition=1n1gpu --nodes=1 --gpus-per-node=1 --time=00:10:00 --pty bash

終了したら、exit を実行してシェルを抜け、srun ジョブを終了します。

$ exit
exit

ジョブをキャンセルする

投入済みまたは実行中のジョブは scancel でキャンセルできます。JOBIDsbatch または squeue で表示されるジョブ ID に置き換えてください。

$ scancel JOBID

パーティションの状態を確認する

sinfo を使って、パーティションとノードの状態を確認できます。

$ sinfo

特定のパーティションを確認するには -p を使います。

$ sinfo -p 1n1gpu

ローカル Scratch ストレージ

各計算ノードでは、約 7TB の NVMe SSD 上にローカル Scratch 領域を提供しています。ジョブからこの Scratch 領域にアクセスするには、USER_SCRATCH_DIR 環境変数を使用します。

このストレージは、計算中に一時ファイル、データセット、チェックポイント、中間結果などを高速なローカル SSD 上で扱いたい場合に有用です。この領域のファイルはジョブ終了後に自動的に削除されるため、保存が必要な結果はジョブ終了前に永続的なストレージへコピーしてください。

#!/bin/bash
#SBATCH --job-name=scratch-example
#SBATCH --partition=1n1gpu
#SBATCH --nodes=1
#SBATCH --gpus-per-node=1
#SBATCH --time=00:10:00

module load nvhpc

echo "Scratch directory: ${USER_SCRATCH_DIR}"

./my_application > ${USER_SCRATCH_DIR}/output.log

# ジョブ終了後も保存が必要な結果をコピーします。
# SLURM_SUBMIT_DIR は sbatch コマンドを実行したディレクトリです。
cp ${USER_SCRATCH_DIR}/output.log ${SLURM_SUBMIT_DIR}/