ようこそ¶
このガイドでは、AI4S Supercomputer の早期アクセス利用に必要な基本情報として、ログイン方法と簡単な Slurm ジョブの例を説明します。
システムのハードウェア情報については、https://github.com/RIKEN-RCCS/AI-for-Science-Supercomputer を参照してください。
AI4S Supercomputer の早期アクセス利用アカウントを申請するには、アカウント作成フォームを提出してください。
SSH ログイン¶
以下の USERNAME は自分のユーザー名に置き換えてください。
利用方法¶
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 list を使うと、現在ロードされているモジュールを確認できます。
モジュールを読み込む¶
利用したい環境は module load で読み込みます。
モジュールを切り替える¶
別のモジュールを読み込む前に、現在のモジュールを unload します。
モジュールの内容を確認する¶
module show を使うと、そのモジュールが環境にどのような変更を加えるかを確認できます。
バッチジョブを投入する¶
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 でジョブを投入します。
squeue で自分のジョブを確認します。
インタラクティブジョブを実行する¶
salloc を使う¶
salloc を使うと、インタラクティブセッション用のリソースを確保できます。以下の例では、1n1gpu パーティションで 10 分間、1 ノード、1 GPU を要求します。
割り当てが開始されたら、srun を使って割り当てられたノード上でコマンドを実行します。
終了したら、exit を実行してインタラクティブ割り当てを解放します。
srun を使う¶
srun --pty bash を使うと、計算ノード上でインタラクティブシェルを開始できます。以下の例では、1n1gpu パーティションで 10 分間、1 ノード、1 GPU を要求します。
終了したら、exit を実行してシェルを抜け、srun ジョブを終了します。
ジョブをキャンセルする¶
投入済みまたは実行中のジョブは scancel でキャンセルできます。JOBID は sbatch または squeue で表示されるジョブ ID に置き換えてください。
パーティションの状態を確認する¶
sinfo を使って、パーティションとノードの状態を確認できます。
特定のパーティションを確認するには -p を使います。
ローカル 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}/