4.2.ジョブの実行方法(SLURMコマンド編)

目次 (4.2.ジョブの実行方法(SLURMコマンド編))

4.2.   ジョブの実行方法(SLURMコマンド編)
4.2.1.  ジョブ投入コマンド(sbatch)
4.2.2.  ジョブ情報表示コマンド(squeue)
4.2.3.  ジョブのキャンセルコマンド(scancel)
4.2.4.  ジョブステータス情報表示コマンド(sstat)
4.2.5.  実行ジョブ情報表示コマンド(sacct)

▲このページの先頭へ

4.2.ジョブの実行方法(SLURMコマンド編)

ジョブを実行するには、フロントエンドサーバからコマンドを実行します。
ジョブ管理のためのコマンドは次のとおりです。

表4.2 ジョブ管理コマンド一覧(SLURMコマンド編)

コマンド コマンド用途 手順
sinfo -s キュー(パーティション)の情報を表示する 4.1.2.キュー情報の確認方法
squeues キューのノード実行状況を表示する
freenodes 空ノード数を表示する 4.1.3. 利用可能なノード数の確認方法
sbatch ジョブを投入する 4.2.1.ジョブ投入コマンド(sbatch)
squeue ジョブの状態を表示する 4.2.2.ジョブ情報表示コマンド(squeue)
scancel ジョブをキャンセルする 4.2.3.ジョブのキャンセルマンド(scancel)

▲このページの先頭へ

4.2.1.ジョブ投入コマンド(sbatch)

ジョブを実行するために、ジョブ投入スクリプトを事前に作成します。sbatchコマンドにジョブ投入スクリプトを指定することで、ジョブがキューイングされ実行されます。
sbatchコマンドの書式】

sbatch ジョブ投入スクリプト

注)bsubと異なり、リダイレクトではなく、引数でジョブ投入スクリプトを渡します。

sbatchコマンドの例(スクリプトファイルがrun.shの場合)】

$ sbatch run.sh

ジョブ投入コマンド(sbatch)について、以下に主なオプションを示します。
表 4.2.1 sbatchオプション

オプション 概要
sbatch -J "sample job name" ジョブに任意のジョブ名をつけます。
sbatch -p キュー名 指定したキュー名のキュー(パーティション)にジョブを投入します。
sbatch -N ノード数 ノード数を指定します。
sbatch -n プロセス数 ジョブ全体でのプロセス数を指定します。
sbatch -o ./out_%j.log (※) out_ジョブIDという名前のファイルに標準出力を出力します。-eオプションが指定されていない場合は、標準エラー出力もこのファイルに出力されます。
sbatch -e ./err_%j.log (※) err_ジョブIDという名前のファイルに標準エラー出力を出力します。
※シンボル「%j」はジョブIDに置換されます。

▲このページの先頭へ

4.2.2.ジョブ情報表示コマンド(squeue)

ジョブの各種情報を表示するときは、squeueコマンドを実行します。

squeue

注)他の利用者の情報は表示されません。

squeueコマンド例】

$ squeue
JOBID PARTITION NAME     USER     ST  TIME  NODES NODELIST(REASON)
xxxx d024h     testrun  u***0001  R  4:58     60 d[007-066]
xxxx c006m     testrun  u***0001 CG  0:39      1 c001

<出力説明>

カラム 説明
JOBID ジョブに割り当てられたジョブIDが表示されます。
ジョブの削除(scancel)などで指定する識別子となります。
PARTITION ジョブを投入したキューの名前を表示します。
NAME ジョブ名(未指定の場合はコマンド文字列)を表示します。
USER ジョブ投入リクエスト(ジョブ)の実行者を表示します。
ST ジョブの状態を表示します。主なジョブの状態を以下の表に示します。
TIME ジョブの実行時間(形式:days-hh:mm:ss)
NODES ジョブ実行に使用されるノード数
NODELIST(REASON) ジョブが実行されるホスト名のリスト (ジョブ状態に対する理由があれば表示されます)
ジョブ状態がPD(PENDING)の場合のREASONを下記に示します。
(Resources) リソースが利用可能になるのを待っています。
(Priority) パーティション内の優先度の高いジョブが完了するのを待っています。
(Dependency) このジョブが依存する他のジョブが完了するのを待っています。
(InvalidQOS) Resources と同義です。

表 4.2.2 ジョブ状態(squeueコマンド-STフィールド)

状態 説明
CA (CANCELLED) ジョブが明示的にユーザまたはシステム管理者によってキャンセルされました。
CD (COMPLETED) ジョブは、すべてのノード上のすべてのプロセスを終了しました。
CF (CONFIGURING) ジョブは、資源が割り当てられた後、資源が使える状態になるのを待っている状態です。
CG (COMPLETING) ジョブは、終了手続きの過程にあります。
F (FAILED) ジョブは、ゼロ以外の終了コードまたはその他の障害状態で終了しました。
NF (NODE_FAIL) ジョブは、割り当てられたノードのいずれかの故障のために終了しました。
PD (PENDING) ジョブは、資源の割り当てを待っています。保留中です。
PR (PREEMPTED) ジョブが中断のために終了しました。
R (RUNNING) ジョブは、現在実行中です。
S (SUSPENDED) ジョブは、資源の割り当てを持っています(実行が中断されています)。
TO (TIMEOUT) ジョブは、その制限時間に達して終了しました。

▲このページの先頭へ

4.2.3.ジョブのキャンセルマンド(scancel)

ジョブをキャンセルするにはscancelコマンドを用います。squeueコマンドなどで確認したジョブIDを指定します。scancelの後に、ジョブIDをスペース区切りで指定すると、複数のジョブを一度にキャンセルすることができます。

scancel ジョブID ジョブID ジョブID

▲このページの先頭へ

4.2.4.ジョブステータス情報表示コマンド(sstat)

ジョブの各種情報(メモリ使用量やディスクI/O量など)を表示するときは、sstatコマンドを実行します。ジョブを実行中に実行する必要があります。

sstat –j ジョブID[.ステップID] [-o 項目[,項目]]

注)他の利用者の情報は表示されません。

ジョブが使用中のメモリ量につきましては、下記のコマンドで確認いただけます。

sstat –j ジョブID[.ステップID] -o JobID,MaxVMSize,MaxRSS

注)他の利用者の情報は表示されません。

  • ステップID は squeue -s コマンドで確認することができます。
  • ステップID は省略可能ですが、逐次処理の場合はステップID として「batch」を指定します。
  • 仮想メモリサイズは MaxVMSize、物理メモリ消費サイズは MaxRSS を指定します。

ジョブステータス情報表示コマンド(sstat)について、以下に主なオプションを示します。

表 4.2.4 sstatオプション

オプション 概要
-j ジョブID[.ステップID] ジョブIDを指定します。必須のオプションです。ステップIDは省略可能です。
ステップIDはsqueue -sコマンドで確認することができます。
※逐次処理の場合はステップIDとして「batch」を指定します。
–o 項目[,項目]... 出力する項目をカンマ区切りで指定します。指定しない場合、全ての項目が表示されます。
一部、FOCUS環境では取得できない項目もあります。

出力項目例
JobID             ジョブに割り当てられたジョブIDが表示されます。
MaxVMSize   ジョブの全てのタスクでの仮想メモリサイズの最大値です。
MaxRSS        ジョブの全てのタスクでの物理メモリ消費サイズの最大値です。
-e -oオプションで指定できる項目を表示します。

sstatコマンド例1】

$ sstat -j 45643 -o JobID,MaxVMSize,MaxRSS,MaxPages,MaxDiskRead,MaxDiskWrite
JobID  MaxVMSize     MaxRSS MaxPages  MaxDiskRead MaxDiskWrite
------------ ---------- ---------- -------- ------------ ------------
45643.0        1332496K     39276K     293K           1M        0.29M

sstatコマンド例2】

$ sstat -j 45638.0
JobID  MaxVMSize  MaxVMSizeNode  MaxVMSizeTask  AveVMSize     MaxRSS MaxRSSNode MaxRSSTask     AveRSS MaxPages MaxPagesNode   MaxPagesTask   AvePages     MinCPU MinCPUNode MinCPUTask     AveCPU   NTasks AveCPUFreq ReqCPUFreq ConsumedEnergy  MaxDiskRead MaxDiskReadNode MaxDiskReadTask  AveDiskRead MaxDiskWrite MaxDiskWriteNode MaxDiskWriteTask AveDiskWrite
------------ ---------- -------------- -------------- ---------- ---------- ---------- ---------- ---------- -------- ------------ -------------- ---------- ---------- ---------- ---------- ---------- -------- ---------- ---------- -------------- ------------ --------------- --------------- ------------ ------------ ---------------- ---------------- ------------
45638.0        1579688K           g002              1    912640K     38696K       g002          1     26118K     279K         g002              1       214K  00:00.000       g001          0  00:00.000        2      2.50G                         0        0.96M            g002               1        0.68M        0.02M             g002                1        0.02M

<出力説明>

カラム 説明
JOBID ジョブに割り当てられたジョブIDが表示されます。
MaxVMSize ジョブの全てのタスクでの仮想メモリサイズの最大値です。
MaxVMSizeNode MaxVMSizeが発生しているノードです。
MaxVMSizeTask MaxVMSizeが発生しているタスクのIDです。
AveVMSize ジョブの全てのタスクでの仮想メモリサイズの平均値です。
MaxRSS ジョブの全てのタスクでの物理メモリ消費サイズの最大値です。
MaxRSSNode MaxRSSが発生しているノードです。
MaxRSSTask MaxRSSが発生しているタスクのIDです。
AveRSS ジョブの全てのタスクの物理メモリ消費サイズの平均値です。
MaxPages ジョブの全てのタスクでのページフォールト数の最大値です。
MaxPagesNode MaxPagesが発生しているノードです。
MaxPagesTask MaxPagesが発生しているタスクのIDです。
AvePages ジョブの全てのタスクでのページフォールト数の平均値です。
MinCPU ジョブの全てのタスクでのCPU時間の最小値です。
MinCPUNode MinCPUが発生しているノードです。
MinCPUTask MinCPUが発生しているタスクのIDです。
AveCPU ジョブの全てのタスクでのCPU時間の平均値です。
NTasks ジョブまたはステップの中でのタスクの合計数です。
AveCPUFreq ジョブの全てのタスクでの重み付けをしたCPU周波数の平均値(kHz)です。
ReqCPUFreq ステップに要求されたCPU周波数(kHz)です。
ConsumedEnergy ジョブの全てのタスクでの消費エネルギー(ジュール)です。
MaxDiskRead ジョブの全てのタスクでの読み込み量の最大値(bytes)です。
MaxDiskReadNode MaxDiskReadが発生しているノードです。
MaxDiskReadTask MaxDiskReadが発生しているタスクのIDです。
AveDiskRead ジョブの全てのタスクでの読み込み量の平均値(bytes)です。
MaxDiskWrite ジョブの全てのタスクでの書き込み量の最大値(bytes)です。
MaxDiskWriteNode MaxDiskWriteが発生しているノードです。
MaxDiskWriteTask MaxDiskWriteが発生しているタスクのIDです。
AveDiskWrite ジョブの全てのタスクでの書き込み量の平均値(bytes)です。

▲このページの先頭へ

4.2.5.実行ジョブ情報表示コマンド(sacct)

実行が完了したジョブの情報を表示するにはsacct コマンドを用います。

sacct -j ジョブID -o 項目[,項目,...] –X

注)他の利用者の情報は表示されません。

実行が完了したジョブのメモリ量につきましては、下記のコマンドで確認いただけます。

sacct -j ジョブID -o JobID,MaxVMSize,MaxRSS

注)他の利用者の情報は表示されません。

sacctコマンドについて、以下に主なオプションを示します。

表 4.2.5 sacctオプション

オプション 概要
-j ジョブID ジョブIDを指定します。
–o 項目[,項目]... 出力する項目をカンマ区切りで指定します。指定しない場合、
-o 'JobID,JobName,Partition,Account,AllocCPUS,State,ExitCode'
を指定した場合と同様の結果となります。
一部、FOCUS環境では取得できない項目もあります。
-e -oオプションで指定できる項目を表示します。
-X ジョブ情報のみ表示し、ステップ毎の情報は表示しません。
-S, --starttime 指定の日時以降の情報を表示します。指定しない場合当日の0:00 が設定されます。
-E, --endtime 指定の日時以前の情報を表示します。
sacctコマンド例1】

$ sacct -j xxxxxx -o User,JobID,Partition,NNodes,Submit,Start,End,Elapsed,State -X
User JobID Partition NNodes Submit Start End Elapsed
State
--------- ------------ ---------- -------- ------------------- ------------------- ------------------- ---------- ----------
uxxx000X xxxxxx c006m 1 2015-11-10T09:24:27 2015-11-10T09:24:31 2015-11-10T09:24:35 00:00:04 COMPLETED

<出力説明>

カラム 説明
User ジョブ投入リクエスト(ジョブ)の実行者が表示されます。
JobID ジョブに割り当てられたジョブID が表示されます。
Partition ジョブを投入したキューの名前が表示されます。
NNodes ジョブのノード数が表示されます。
Submit ジョブを投入した日時が表示されます。
Start ジョブの実行が開始した日時が表示されます。
End ジョブの実行が完了した日時が表示されます。
Elapsed ジョブの実行時間(形式:days-hh:mm:ss)
State ジョブの状態を表示します。

▲このページの先頭へ