個人ゲノム解析環境におけるSlurmの利用方法
1. Slurmの概要
Slurmとは、ジョブ管理システムのことで、本システム上で最適なリソース管理を行っています。Slurmはオープンソースであり、個人ゲノム解析環境にインストールすることが可能です。
このページでは、簡易的な扱い方を説明します。
Slurmの詳細については、Slurm公式https://slurm.schedmd.com/documentation.htmlをご覧ください。
2. Slurmのジョブ関連上限設定について
1グループが同時利用可能ジョブスロット数は、デフォルト値で5万です。1ユーザーあたりの設定値はございません。
設定値を変更・拡張するには、問い合わせ窓口までご連絡ください。
3. コマンド例
3-1. 計算ジョブの投入
現在のバージョンのSlurmでは、PATH等の環境変数はジョブ実行時の環境に引き継がれません。必要な環境変数は、ジョブスクリプト内で設定していただけますようお願いします。
計算ノードに計算ジョブを投入するには、sbatchコマンドを利用します。sbatchコマンドでジョブを投入する為には、投入するジョブスクリプトを作成する 必要があります。
簡単な例では以下のように記述します。
#! #$ -S /bin/sh export PATH=${PATH}:/path/to/execfiles export LD_LIBRARY_PATH=/path/to/libfiles:${LD_LIBRARY_PATH} pwd hostname date sleep 20 date echo “to stderr” 1>&2
この時、行の先頭に、"#$"で指定されている行が、Slurmへのオプション指示行になります。
オプション指示行をシェルスクリプトにする、またはsbatchコマンド 実行時のオプションとして指定することでSlurmに動作を指示します。主なオプションとしては以下のものがあります。
指示行の記述 | コマンドラインオプション指示 | 指示の意味 |
---|---|---|
#$ -S インタプリタパス | -S インタプリタパス | コマンドインタプリタをパス指定する。シェル以外のスクリプト言語も指定可能。このオプションは指定必要 |
#$ -J ジョブ名 | -J ジョブ名 | ジョブの名前を指定する。この指定が無ければスクリプト名がジョブ名になる。 |
#$ -o ファイルパス | -o ファイルパス | ジョブの標準出力の出力先を指定する。 |
#$ -e ファイルパス | -e ファイルパス | ジョブの標準エラー出力の出力先を指定する。 |
sbatchには上記の他にも指定可能なオプションが多数ありますので、詳細についてはシステムにログイン後"man sbatch"として、sbatchコマンドの オンラインマニュアルを参照して確認してください。
3-2. ジョブ投入について
本システムでは一般解析環境と異なり、ジョブ投入にキューを指定して頂く必要はございません。
sbatch test.sh
3-3. ジョブの投入状況の確認
sbatchで投入したジョブがジョブとして投入されたかを確認します。投入したジョブの状態確認にはsqueueコマンドを利用します。例えばジョブが 投入されていたとすれば以下のように表示されます。
[username@at027 ~]$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) ------------------------------------------------------------------------------------------------------------------------------------------------
"squeue --job ジョブID"とすることで、ジョブの詳細情報を取得することができます。
[username@at027 ~]$ squeue -j 345
実行状況を確認していて、ジョブの状況が異常でジョブの終了を待たずにただちに削除したい場合はscancelコマンドを使用します。 "scancel ジョブID"とします。自分が投入しているジョブをすべて削除したい場合は、"scancel -u ユーザ名"とすることで実行可能です。
3-4. ジョブの結果の確認
ジョブの結果は、ファイル名が下記のファイルにジョブの標準出力が出力されています。ファイルをご確認ください。
slurm-ジョブ名.out