ジョブの状況確認(jobinfo)

(最終更新日: 2024/12/3 jobinfo -s の sncore 説明追加)

投入したジョブの状況は jobinfo コマンドで確認できます。

ジョブの状況を表示する(jobinfo -c と jobinfo)

-c オプションを指定すると、ジョブの最新の状態を確認できます。(以前と同様に -l を指定しても問題ありません)

$ jobinfo -c

--------------------------------------------------------------------------------
Queue   Job ID Name            Status CPUs User/Grp       Elaps Node/(Reason)
--------------------------------------------------------------------------------
H       9999900 job0.csh       Run      16  zzz/---    24:06:10 ccc047
H       9999901 job1.csh       Run      16  zzz/---    24:03:50 ccc003
H       9999902 job2.sh        Run       6  zzz/---     0:00:36 ccc091
H       9999903 job3.sh        Run       6  zzz/---     0:00:36 ccc091
H       9999904 job4.sh        Run       6  zzz/---     0:00:36 ccc090
...
H       9999989 job89.sh       Run       1  zzz/---     0:00:11 ccg013
H       9999990 job90.sh       Run       1  zzz/---     0:00:12 ccg010
--------------------------------------------------------------------------------

-c を指定しない場合は、数分ほど古い情報になる場合がありますが、GPU 数(1+1 の右側の 1 が GPU 数です)やグループ名が表示されます。また、行頭のキュー名のところに jobtype の情報も追加されます( (c): core, (v): vnode, (l): largemem, (g): gpu )。

$ jobinfo
--------------------------------------------------------------------------------
Queue   Job ID Name            Status CPUs User/Grp       Elaps Node/(Reason)
--------------------------------------------------------------------------------
H(c)    9999900 job0.csh       Run      16  zzz/zz9    24:06:10 ccc047
H(c)    9999901 job1.csh       Run      16  zzz/zz9    24:03:50 ccc003
H(c)    9999902 job2.sh        Run       6  zzz/zz9     0:00:36 ccc091
H(c)    9999903 job3.sh        Run       6  zzz/zz9     0:00:36 ccc091
H(c)    9999904 job4.sh        Run       6  zzz/zz9     0:00:36 ccc090
...
H(g)    9999989 job89.sh       Run     1+1  zzz/zz9     0:00:11 ccg013
H(g)    9999990 job90.sh       Run     1+1  zzz/zz9     0:00:12 ccg010
--------------------------------------------------------------------------------

ジョブのステータス

ジョブのステータスには Run, Queue, Hold, Array, Exit があります。

  • Run : 現在実行中
  • Queue : キュー待ち、まだ実行されていません
  • Hold : 依存関係などの理由で保留中
  • Array : array job で、サブジョブが一つ以上残っている状態
  • Exit : 終了処理中

キュー待ち時の理由

キュー待ち時には右端のカラムに以下のような理由が表示されます。

  • (cpu) : 利用可能な CPU 数が足りません。
  • (gpu) : 利用可能な GPU 数が足りません。
  • (cpu/gpu) : CPU や GPU を含めたなんらかのリソースが不足しています。
  • (long) : 次回の定期メンテナンスまでに終了しないため実行できません。
    • 定期メンテナンス前にジョブを投入し、この status のままにしておけば、定期メンテナンス明けに実行されるようにできます。(長い walltime を指定する場合は良く確認の上で設定してください。)
  • (group) : グループのリソース制限(CPU, GPU, ジョブ数など)のために実行できません。
  • (user) : ユーザー単位で設定されたリソース制限(CPU, GPU, ジョブ数など)のために実行できません。
  • (other) : そのほかの理由。ジョブの投入直後でまだ実行できるか検証されていない状態もこの表記になります。
  • (njob) : ジョブ数の制限のために実行できません。
  • (never) : 決して実行できない条件のジョブです。何か不明な点がありましたら、お手数ではありますがお問い合わせください。
  • (error), (close) : システム側でエラーが起こっている可能性があります。少し待っても解消しないようであればお問い合わせください。

キューの空き状況や使用状況を確認する(jobinfo -s)

利用中/キュー待ち中/ホールド中ジョブの数やCPU数、GPU数を表示します。制限値についても表示されます。また、各 jobtype の混雑状況(week jobs は 1 週間以内のジョブで long jobs はそれ以上の長さのジョブです)も表示されます。

$ jobinfo -s

User/Group Stat:
--------------------------------------------------------------------------------
 queue: H                       | user(***)             | group(***)           
--------------------------------------------------------------------------------
   NJob (Run/Queue/Hold/RunLim) |    1/    0/    0/-    |    1/    0/    0/5000
   CPUs (Run/Queue/Hold/RunLim) |    4/    0/    0/-    |    4/    0/    0/6400
   GPUs (Run/Queue/Hold/RunLim) |    0/    0/    0/-    |    0/    0/    0/48
   core (Run/Queue/Hold/RunLim) |    4/    0/    0/1200 |    4/    0/    0/1200
   lmem (Run/Queue/Hold/RunLim) |    0/    0/    0/-    |    0/    0/    0/896
 sncore (Run/Queue/Hold/RunLim) |    0/    0/    0/-    |    0/    0/    0/6400
--------------------------------------------------------------------------------
note: "core" limit is for per-core assignment jobs (jobtype=core/gpu*)
note: "lmem" limit is for jobtype=largemem
note: "sncore" limit is for 64 or 128 cores jobs

Queue Status (H):
----------------------------------------------------------------------
      job         | free   |     free     | # jobs  |  requested  
      type        | nodes  | cores (gpus) | waiting | cores (gpus)
----------------------------------------------------------------------
week jobs
----------------------------------------------------------------------
1-4 vnodes        |    705 |  90240       |       0 |      0      
5+  vnodes        |    505 |  64640       |       0 |      0      
largemem          |      0 |      0       |       0 |      0      
core              |    179 |  23036       |       0 |      0      
gpu               |      0 |      0 (0)   |       0 |      0 (0)  
----------------------------------------------------------------------
long jobs
----------------------------------------------------------------------
1-4 vnodes        |    325 |  41600       |       0 |      0      
5+  vnodes        |    225 |  28800       |       0 |      0      
largemem          |      0 |      0       |       0 |      0      
core              |     50 |   6400       |       0 |      0      
gpu               |      0 |      0 (0)   |       0 |      0 (0)  
----------------------------------------------------------------------
Job Status at 2023-01-29 17:40:12

出力上部が制限値で、ジョブ数(NJob), CPU コア数(CPUs), GPU 数(GPUs) の順で表示されています。各行では(実行中/キュー待ち中/保留中/実行制限数)という形で記述されます。

上記出力の場合、グループ全体で 6,400 CPU コアと 48 GPU が利用できます。

core (Run/Queue/Hold/RunLim) の行はコア単位ジョブ(jobtype=core, gpu)に関する利用制限で、上記出力の場合は最大 1200 コアまで利用できます。lmem (Run/Queue/Hold/RunLim) の行は jobtype=largemem についての制限です。上記の出力の場合 1 グループで最大 896 コア(7ノード)まで利用できます。sncore (Run/Queue/Hold/RunLim) の行は ncpus=64 もしくは ncpus=128 のジョブについての制限です。ノードに空きがある時は CPUs の制限値に一致しますが、混雑時には値が小さくなります。ncpus=64,128 のジョブを制限値一杯まで実行する場合以外には影響しません。また、小規模利用(CPUs 制限が 768 の場合)のグループについても制限値が常に CPUs の制限値に一致するため影響ありません。

出力下部は各ジョブタイプの空き状況です。

作業ディレクトリを表示する(jobinfo -w)

-w オプションを追加するとジョブ投入時の作業ディレクトリ($PBS_O_WORKDIR)を表示することができます。名前や ID だけでは探しているジョブがわからなくなった場合等に有用です。

$ jobinfo -w
--------------------------------------------------------------------------------
Queue   Job ID Name            Status Workdir
--------------------------------------------------------------------------------
H      9999920 H_12345.sh      Run    /home/users/zzz/gaussian/mol23
H      9999921 H_23456.sh      Run    /home/users/zzz/gaussian/mol74
...

-c とは併用できませんので、投入直後のジョブの場合は数分程度待たないと表示できない場合があります。

メモリ使用量の表示 (jobinfo -m)

-m オプションを追加するとジョブの使用したメモリ量を表示することができます。Used.Mem/MB の列がジョブがメモリを一番使っていた時の消費量になります(MB 単位で表示)。Lim.Mem/MB の列はジョブが消費可能なメモリ量の値を示しています(システムプロセスが使うメモリについては別途あらかじめ確保されています)。

$ jobinfo -m
--------------------------------------------------------------------------------
Queue   Job ID Name            Status CPUs User/Grp   Used.Mem/MB    Lim.Mem/MB
--------------------------------------------------------------------------------
H(v)    6245590 sample.sh      Run     128  ***/???         66520        245760
H(v)    6245593 sample.sh      Run     128  ***/???         78918        245760

-c とは併用できませんので、投入直後のジョブの場合は数分程度待たないと表示できない場合があります。すでに終了したジョブが消費したメモリ量については joblog コマンドで確認できます。

jobinfo のオプション

オプション説明
--helpヘルプを表示します
-c最新の情報を表示。-m, -w, -s とは同時に指定できません。
-sキューの空き状況、自身の利用状況を表示します。他のオプションとは併用できません。
-wジョブ投入時の作業ディレクトリを表示。-c とは併用できません。
-mメモリ使用量の表示。-c とは併用できません。
-l過去との互換性のためのオプションです。現在は特に何もしません。
-L実行中ホストの全リストを表示
-n各計算ノードの状況を表示します
-g所属グループのユーザーのジョブも表示します
-g [グループ名]SCCMS 枠などで複数グループに所属する場合、表示するグループを指定します
-q [キュー名]キュー名を指定します。通常は指定不要です。
-a全ユーザーの情報を表示します。ユーザー名やジョブ名などは隠蔽されます。
[ジョブID]-c と同時に使うと、指定したジョブだけを表示することができます。