遺伝研スパコン
最終更新日: 2026-08-27
新規登録
- https://sc.ddbj.nig.ac.jp/guides/from_application_to_approval/
- https://sc.ddbj.nig.ac.jp/guides/using_general_analysis_division/ga_application/
コマンドライン操作をともなうので、Windows では PowerShell を使う。 WSL や Git for Windows 同梱の Bash を使うのもオススメ。
事前に SSH 公開鍵・秘密鍵を作成しておく。 すでにある場合はそれを使ってもよい。
ログイン
- https://sc.ddbj.nig.ac.jp/guides/using_general_analysis_division/ga_login/
- https://sc.ddbj.nig.ac.jp/guides/using_general_analysis_division/ga_interactive_login/
ゲートウェイノード → インタラクティブノードの順に ssh する。 ゲートウェイノードは gw.ddbj.nig.ac.jp, gw2.ddbj.nig.ac.jp の2つ、 インタラクティブノード a001, a002, a003 の3つからいずれかを指定する。
<localaccount>@local ~$ ssh <username>@gw.ddbj.nig.ac.jp
<username>@gw ~$ ssh a001
<username>@a001 ~$ジョブ実行
- https://sc.ddbj.nig.ac.jp/guides/software/JobScheduler/Slurm/
- https://slurm.schedmd.com/documentation.html
インタラクティブジョブ
https://sc.ddbj.nig.ac.jp/guides/software/JobScheduler/Slurm/interactive_jobs
インタラクティブノードではファイルの確認など軽い作業のみ行う。 大量のメモリ・CPU を使う作業をインタラクティブに行うには srun コマンドを使って計算ノードを確保する:
srun --pty bashバッチジョブ
https://sc.ddbj.nig.ac.jp/guides/software/JobScheduler/Slurm/batch_jobs
sbatch コマンドを使う。 基本的な流れは Grid Engine と同じで、ジョブスクリプトを書いて sbatch example.sh するだけ:
example.sh
#!/bin/bash
#SBATCH -t 0-00:10:00
#SBATCH --mem-per-cpu 4G
#SBATCH -J an_example
pwdジョブ実行時のオプション設定は #SBATCH で渡す。 sbatch のコマンドライン引数で渡してもいい。 Grid Engine でいう #$ -cwd (カレントディレクトリの設定) と #$ -V (環境変数の引継ぎ) は、Slurm ではデフォルトらしい。
インタープリタの指定オプションはない (?) ので、shebang で指定する必要がある: #!/bin/bash, #!/bin/csh, #!/usr/bin/python
よく使いそうなオプション:
-b,--begin- ジョブの実行割り当て開始時間を指定するする。
-D,--chdir- バッチジョブのワーキングディレクトリを指定。 (デフォルトはカレントディレクトリ。)
-o,--output-
標準出力の出力先をファイル名で指定する。 デフォルトでは
slurm-[JOBID]_[JOBインデックス].outに吐き出される。 -e,--error- 標準エラーの出力先をファイル名で指定する。 デフォルトでは標準出力と同じファイルに吐き出される。
-i,--input- バッチジョブの標準入力。
--export- ジョブに渡す環境変数を制御する。
-J,--job-name- ジョブの名前。デフォルトではスクリプトのファイル名になる。
-c,--cpus-per-task- 1タスクあたりに必要な CPU コア数を指定する。
--mem- ノードごとに必要なメモリの指定。単位は K, M, G, T を使う。(省略時は M)
--mem-per-cpu- CPU あたりに必要なメモリ量の指定。
-t,--time- ジョブの実行時間を指定する。 デフォルトの単位は “minutes” で、他に “minutes:seconds”, “hours:minutes:seconds”, “days-hours”, “days-hours:minutes”, “days-hours:minutes:seconds” の形式で指定できる。
-p,--partition- https://sc.ddbj.nig.ac.jp/guides/using_general_analysis_division/ga_slurm_partition/
- バッチジョブを投入する待ち行列の種類を指定。
- 投入するジョブの実行時間や並列数、メモリに応じて選択する。
-
sinfo -o "%P %c %m %l"で各パーティションの CPU 数、メモリ、実行時間制限を確認できる。
アレイジョブ
https://sc.ddbj.nig.ac.jp/guides/software/JobScheduler/Slurm/array_jobs
-a で制御する。 SLURM_ARRAY_TASK_ID, SLURM_ARRAY_TASK_COUNT などの変数を参照可能。
例えば6個の SRA データを取得する場合:
#!/bin/bash
#SBATCH -a 1-6
seq_ids=(SRR030253 SRR030254 SRR030255 SRR030256 SRR030257 SRR030258)
seq_id=${seq_ids[$SLURM_ARRAY_TASK_ID-1]}
prefetch ${seq_id}同時に投入されるタスク数の上限は %N で制御する (Grid Engine でいう -tc N)。 例えば1から1000までの並列ジョブで、同時に走るジョブ数の上限を10にするには: #SBATCH -a 1-1000%10
パラレルジョブ
- https://sc.ddbj.nig.ac.jp/guides/software/JobScheduler/Slurm/parallel_jobs
- https://slurm.schedmd.com/mc_support.html
Slurm には Grid Engine でいうパラレルジョブに直接該当する機能はない。 --nodes, --ntasks, --ntasks-per-node などを使って並列ジョブを制御する。
-N,--nodes- ジョブに割り当てるノードの数を指定する。[最小-最大] の範囲指定も可。
--spread-job- ジョブの割り当てをできるだけ多くのノードに均等に分散させる。
-n,--ntasks- ジョブに割り当てるタスク数を指定する。
# 例
#!/bin/bash
#SBATCH --nodes 1-1
#SBATCH --ntasks 5
#SBATCH --mem-per-cpu 4G
orthofinder -f ExampleData -a 5この時ノード全体では、4G×5core=20G のメモリを使う。
その他のコマンド
https://sc.ddbj.nig.ac.jp/guides/software/JobScheduler/Slurm/other_commands
squeue-
ジョブの状況を確認 (i.e.
qstat) -
-u [username]で自分の投げたジョブのみ確認 scancel [JOBID]-
実行中のジョブをキャンセルする (i.e.
qdel) scontrol- ジョブの設定変更
Apptainer (Singularity)
- https://sc.ddbj.nig.ac.jp/guides/software/Container/Apptainer/
- https://sc.ddbj.nig.ac.jp/guides/software/Container/BioContainers/
バイオインフォマティクスでよく使われる解析ツールは各ソフトウェアの頭文字ごとに /usr/local/biotools/ に配置されており、インストール不要で使うことができる。
複数のバージョン用意されている場合もある。 たとえば:
ls /usr/local/biotools/s/samtools*使用例:
apptainer exec /usr/local/biotools/s/samtools samtools --help