バッチジョブ
バッチジョブの使い方
CPU コアを 1 コアだけ使用し長時間実行するプログラムを少数実行する場合は、バッチジョブとして実行してください。Slurmではバッチジョブの投入にはsbatchコマンドを利用します。
一般的なジョブ投入の説明
例えば以下のようなシェルスクリプト(example.sh)を実行したいとします。(このシェルスクリプトは遺伝研スパコンにインストールされている biotools Singularity コンテナのリストを生成します。)
#!/bin/bash
ls /usr/local/biotools > $1
以下のようなjob_script.sh を用意し、sbatch job_script.shを実行して下さい。 すると Slurmの待ち行列(パーティション)にバッチジョブが投入されます。ジョブ投入スクリプトの中の#SBATCHが書いてある行は、Slurmへのオプション指示行です。(AGEではキューと呼んでいた待ち行列を、Slurmではパーティションと呼びます。ご注意ください。)
#!/bin/bash
#SBATCH -t 0-00:10:00
#SBATCH --mem-per-cpu 4g
#SBATCH -J an_example
example.sh biotools_list.txt
- Slurmの場合、AGEの動作と異なり、デフォルト動作として、sbatchコマンドを実行した際のカレントワーキングディレクトリを投入したジョブのカレントワーキングディレクトリとしてジョブを実行します。その他のディレクトリでジョブを実行したい場合は、
--chdir
オプションを利用して指定してください。 - Slurmの場合、AGEの動作と異なり、sbatch実行時のシェルの環境変数をジョブの起動シェルにデフォルト動作で全て引き継ぎます。特定の環境変数のみを引き継ぎたい(引き継ぎたくない)場合は、
--export
オプションを利用してください。詳細につい てはオンラインマニュアルを参照してください。 -p パーティション名
: バッチジョブを投入する待ち行列(パーティション Partition)の種類を指定します。- 個人ゲノム解析区画の場合は利用可能なパーティション構成は利用申請時の申請したシステム構成によります。詳細はSlurmパーティションの構成の項を参照ください。
-t 0-00:10:00
: バッチジョブの実行上限時間。- バッチジョブの実行開始からこの実行上限時間をすぎるとバッチジョブは強制終了させられます。
- 実行時間の上限は少し長めに書いたほうが安全ですが、長すぎるとスケジューリングが難しくジョブが実行されにくくなる場合があります。その場合は
--time-min
と組み合わせての指定を検討してください。 -t
の指定省略時は、パーティションの設定が適用されます。- 時刻の記述フォーマットは、minutes, minutes:seconds,hours:minutes:seconds,days-hours,days-hours:minutes,days-hours:minutes:secondsがあります。
--mem-per-cpu
は、使用するメモリ量です。ジョブに割り当てられたCPUコア(タスク)1個あたりに割り当てられるメモリ量を指定していることになります。単位は G,M,K が使えます。省略時は単位はMとして解釈されます。ジョブ全体としては、ジョブに割り当てられたコア数×指定したメモリ量が割り当てられることになるので注意してください。-J
: ジョブ名の指定です。