HOME > 使い方と注意事項 > 計算サービス

計算サービスの使い方と注意事項

投入ジョブ・キュー情報の参照

投入ジョブの参照

PBSでは投入されたジョブの実行状況やキューの処理状況を確認するためのコマンドqstatが用意されています。ジョブの実行状況では、ユーザ自身のジョブのみが表示されます。

% qstat 
  Job id       Name             User              Time Use S Queue
  -----------  ---------------- ----------------  -------- - -----
  143.apfe3    testjob          fukumoto          01:03:11 R SMALL
  152.apfe3    JOB              fukumoto          23:15:26 R APC
  159.apfe3    fuku_JOB         fukumoto          23:02:26 R APC
  160.apfe3    fuku_JOB         fukumoto                 0 Q SDF
項目説明
Job idPBSによって割り振られるジョブ番号
Nameジョブ名
Userジョブを投入したユーザ名
Time Use経過時間(時:分:秒)
Sジョブの状態
Queue実行中・実行予定のキュー名

ジョブの状態は以下に分類されます。

状態
説明
B
ジョブアレイのみに表記される状態です。(ジョブアレイが起動)
E
ジョブは実行済みで終了処理中です。
H
ジョブは保留状態です。
Q
ジョブはキュー待機状態です。
R
ジョブは実行中です。
S
ジョブはサーバによって中断中です。
(他の優先度の高いジョブに計算リソースが必要になると、ジョブは中段状態に入ります。)
T
ジョブは移行中です。
U
ジョブはワークステーションがビジー状態になったため中断中です。
W
ジョブは要求された実行時間になるまで待機中であるか、
ジョブは何らかの理由で失敗したステージイン要求を指定しています。
X
サブジョブのみに表記される状態です。(時間切れにより、サブジョブが終了)

ジョブ情報に関するqstatコマンドの主なオプション

オプション
機能
-x
終了したジョブの情報も表示します。
-a
ユーザのすべてのジョブに対する情報を表示します。
要求されたメモリ量や要求された経過時間、ジョブの状態の経過時間などが表示されます。
-r
-a オプションと同じフォーマットですが、実行中のジョブのみを表示します。
-t
アレイジョブのサブジョブも表示します。
-f jobID
jobIDに対するもっとも詳細な情報を表示します。なお、f は full を意味します。
ジョブが既に終了している場合は、-x オプションを同時に指定して下さい。

実行ジョブおよびキューの状況確認 (qstatmyjobs)

実行ジョブが利用しているコア数やメモリサイズ等の状況確認、またどのキューが比較的空いているか、などを確認するためのコマンドqstatmyjobsが用意されています(当スパコンシステム独自のコマンドです)。

% qstatmyjobs
User: user
                      jobs                ncpus                          mem(gb)            walltime(h)
Queue  vacant(use%) sum/sum_max    avail max  sum/sum_max     avail   max  sum/sum_max   default max
-----  ------------ -------------- ------------------------  --------------------------- -----------------
QUICK    2798( 52%)   0/2              4   4    0/unlimited      72    72    0/unlimited       1 01
SMALL    2656( 50%)   0/unlimited     12  12    0/36            108   108    0/324             6 12
APC      2536( 51%)  10/unlimited     32  40  110/unlimited     360   720  640/unlimited    2880 unlimited
APG       356( 44%)   0/4             40  40    0/unlimited     720   720    0/unlimited    2880 unlimited
SDF        62( 87%)   1/8              - 144   20/288             -  6144 6000/8192         2880 unlimited
============================================================================================================
TOTAL                11/unlimited             130/500                     6640/12288
項目説明
Queueキュー名
vacantキューが利用可能な全コア数のうち、未使用(ジョブが実行されていない)のコア数
(use%)キューが利用可能な全コア数のうち、使用中(ジョブが実行中)のコア数の割合(%)
jobs sumユーザが実行中のジョブの総数
jobs sum_maxユーザが最大実行可能なジョブ数
avail ncpusジョブがすぐに実行開始できる最大コア数
max ncpusそのキューで指定可能な最大コア数
sum ncpusユーザが実行中のジョブの合計コア数
sum_max ncpusユーザあたり、実行可能なジョブの最大合計コア数
avail mem(gb)すぐに実行開始できる、ジョブの最大コア数指定時に、指定可能な最大メモリサイズ。 なお、もしジョブの最大コア数よりも少ないコア数を指定すると、より多くのメモリを指定しても、そのジョブがすぐに実行開始されることがあります。
max mem(gb)そのキューで指定可能な最大メモリサイズ
sum mem(gb)ユーザが実行中のジョブの合計メモリサイズ
sum_max mem(gb)ユーザあたり、実行可能なジョブの最大合計メモリサイズ
default walltime(h)何も指定しない場合に設定される経過時間
max walltime(h)指定可能な最大経過時間

TOTALの行では、キューごとの値の合計値を記載しています。

上記の例では、APCキューでは、コア数32、メモリ360gb の指定であれば、ジョブがすぐに実行開始される可能性があることがわかります。

これは、具体的には、最もコアが空いているノードを調べた結果、そのノードのコア数が32、そしてメモリが360gb空いている、ということになります。
なお、当然のことながら、キュー毎の最大合計コア数やTOTAL行にある実行可能な最大合計コア数、さらに他ユーザによるジョブの実行状況等、 他の制約も受けるため、必ずしもそのジョブがすぐに実行されることを保証しているわけではありません。

一方、最もメモリが空いているノードを探すためには、-m オプションを指定します。

% qstatmyjobs -m
User: user

                      jobs                ncpus                          mem(gb)            walltime(h)
Queue  vacant(use%) sum/sum_max    avail max  sum/sum_max     avail   max  sum/sum_max   default max
-----  ------------ -------------- ------------------------  --------------------------- -----------------
QUICK    2798( 52%)   0/2              4   4    0/unlimited      72    72    0/unlimited       1 01
SMALL    2656( 50%)   0/unlimited     12  12    0/36            108   108    0/324             6 12
APC      2536( 51%)  10/unlimited     20  40  110/unlimited     720   720  640/unlimited    2880 unlimited
APG       356( 44%)   0/4             40  40    0/unlimited     720   720    0/unlimited    2880 unlimited
SDF        62( 87%)   1/8              - 144   20/288             -  6144 6000/8192         2880 unlimited
============================================================================================================
TOTAL                11/unlimited             130/500                     6640/12288

上記の例では、APCキューでは、コア数20、メモリ720gb の指定であれば、ジョブがすぐに実行開始されることがわかります。
-m の有無で異なるのは、avail 列のみで他は全く変わりません。


キュー情報の参照

qstatコマンドは、キュー情報の参照にも使用できます。

% qstat -Q
Queue              Max   Tot Ena Str   Que   Run   Hld   Wat   Trn   Ext Type
---------------- ----- ----- --- --- ----- ----- ----- ----- ----- ----- ----
QUICK                0     0 yes yes     0     0     0     0     0     0 Exec
APG                  0     0 yes yes     0     0     0     0     0     0 Exec
SMALL                0     4 yes yes     0     4     0     0     0     0 Exec
SDF                  0     3 yes yes     1     2     0     0     0     0 Exec
APC                  0    25 yes yes     2    23     0     0     0     0 Exec
EMERG                0     0  no yes     0     0     0     0     0     0 Exec
項目説明
Queueキュー名
Max同時実行可能な最大ジョブ数
Totキューに投入されたすべてのジョブ数
Enaジョブが利用可能か否か
Strキューに投入されたジョブを実行させるか否か
Que同時実行数が何らかの制限値を超えたため、待機の状態にあるジョブ数
Run実行中のジョブ数
Hld何らかの理由により実行が保留された状態のジョブ数
Wat予約されたジョブなど、指定された時間となるまで待機の状態にあるジョブ数
Trn移行状態のジョブ数
Ext終了状態のジョブ数
Typeキューのタイプ

キューに関するqstatコマンドの主なオプション

オプション
機能
-Q
キューに設定された情報およびキューの状態を表示します。
-q
キューに設定された情報およびキューの状態を表示します。
(-Q とは表示される情報が一部異なります。)
-Qf Queue
指定したキューの最も詳細な情報を表示します。なお f は full を意味します。

qstatコマンド出力サンプル

qstat コマンドはジョブおよびキューの状況を確認するためのいくつかのオプションが用意されています。以下では、その利用例をご紹介します。

qstat -a

-a オプションを付加することで、qstat よりも詳しい情報を表示します。

% qstat -a

apfe3: 
                                                            Req'd  Req'd   Elap
Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time  S Time
--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----
110.apfe3       fukumoto SMALL    G16_job     18829   1   2    9gb 06:00 R 00:02
111.apfe3       fukumoto APC      test463      8121   1   4    9gb 2880: R 00:01
112.apfe3       fukumoto SDF      test        45502   1  16  768gb 2880: R 00:00

項目説明
apfe3 ジョブを管理しているサーバ名です。ジョブを投入した計算サーバとは異なります。
Job ID PBSによって割り振られるジョブ番号。番号の後に、ジョブを管理しているサーバ名(fe3)がつきます。
Username ジョブを投入したユーザ名
Queue 実行中・実行予定のキュー名
Jobname ジョブ名(#PBS -N で指定した名前)
SessID セッションID
NDSジョブが要求しているノード数(select= で指定した数)
TSKジョブが要求しているCPUの数
Req'd Memory ジョブが要求しているメモリサイズ
Req'd Time ジョブが要求している経過時間(時:分)
S ジョブの状態
Elap Time 実際の経過時間(時:分)

qstat -Qf

あるキューに対する詳細な情報を参照したい場合には、オプション -Qf を指定します。 以下は SMALLキューに対する詳細な情報を表示しています。

% qstat -Qf SMALL
Queue: SMALL
    queue_type = Execution
    Priority = 70
    total_jobs = 0
    state_count = Transit:0 Queued:0 Held:0 Waiting:0 Running:0 Exiting:0 Begun
	:0 
    resources_max.mem = 108gb
    resources_max.ncpus = 12
    resources_max.ngpus = 0
    resources_max.walltime = 12:00:00
    resources_default.mem = 9gb
    resources_default.ncpus = 1
    resources_default.vmem = 36gb
    resources_default.walltime = 06:00:00
    default_chunk.Qlist = SMALL
    max_run_res.mem = [u:PBS_GENERIC=576gb]
    max_run_res.ncpus = [u:PBS_GENERIC=64]
    enabled = True
    started = True
  

※上記は実際とは制限値が異なる場合があります。実際に上記コマンドを実行し、最新の値を確認してください。


ジョブの実行情報の確認 (tracejob)

終了したジョブの実行情報(ジョブの返り値、使用メモリ量、平均CPU使用率、実行時間、等)は tracejob コマンドで確認できます。

$ tracejob [-n 日数] (Job ID)
オプション
機能
-n (日数)
何日遡ってログファイルを確認するかを指定。デフォルトでは、
tracejob は当日に終了したジョブの情報しか取得できません。
ジョブが終了した日時は qstat -f -x (Job id) の mtime行 で確認できます。
例)
$ tracejob -n 2 191784.apfe3

Job: 191784.apfe3

04/19/2020 00:40:57  S    enqueuing into SMALL, state 1 hop 1
04/19/2020 00:40:57  S    Job Queued at request of ideas@133.103.201.23, owner = ideas@133.103.201.23, 
                          job name = kofamkoala, queue = SMALL
04/19/2020 00:40:58  L    Considering job to run
04/19/2020 00:40:58  S    Job Modified at request of Scheduler@apfe3
04/19/2020 00:40:58  S    Job Run at request of Scheduler@apfe3 on exec_vnode (ap124:ncpus=4:mem=62914560kb)
04/19/2020 00:40:58  L    Job run
04/19/2020 00:46:35  S    Obit received momhop:1 serverhop:1 state:4 substate:42
04/19/2020 00:46:35  S    Exit_status=0 resources_used.cpupercent=149 resources_used.cput=00:08:18
                          resources_used.mem=39432kb resources_used.ncpus=4 resources_used.vmem=416888kb
                          resources_used.walltime=00:05:38
主な項目
意味
Exit_status
ジョブスクリプトの返り値。Exit_status=0 でない場合はエラーが発生しています。
resources_used.cpupercent
ジョブの平均CPU使用率(%)。
resources_used.mem
ジョブの使用メモリ量。
resources_used.ncpus
ジョブスクリプトのqsub時に -l オプションの ncpus= で指定した使用コア数
resources_used.walltime
ジョブの実行時間

(アレイ)ジョブの実行情報の確認 (PbsExitStatus)

PbsExitStatusコマンドは終了したジョブの実行情報(ジョブの返り値、使用メモリ量、平均CPU使用率、実行時間、等)を出力します。 機能的には tracejob コマンドとほぼ同じですが、アレイジョブの確認が tracejob コマンドよりし易くなっています。 詳しくは こちら のページを参照下さい。