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

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

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

投入ジョブの参照

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

% qstat 
  Job id       Name             User              Time Use S Queue
  -----------  ---------------- ----------------  -------- - -----
  143.fe3-adm    testjob          fukumoto          01:03:11 R SMALL
  152.fe3-adm    JOB              fukumoto          23:15:26 R APC
  159.fe3-adm    fuku_JOB         fukumoto          23:02:26 R APC
  160.fe3-adm    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(当スパコンシステム独自のコマンドです)が用意されています。
なお、max列の UNLTD は unlimited という意味です。

% qstatmyjobs
User: appadm
                      JOBS             CPUS                  MEM(gb)                 GPUS         WALLTIME(h)
Queue  avail(use%) mysum/max   avail max mysum/max   avail   max mysum/max   avail max mysum/max  default max
------ ----------- ----------- --------------------- ----------------------- -------------------- -------------
SMALL   1193( 76%)     0/UNLTD    12  12     0/96       48    48     0/UNLTD     -   -     -/-          6 12
APC     1025( 78%)    19/UNLTD    36  56   450/UNLTD   780   980  1800/UNLTD     -   -     -/-       2880 UNLTD
APG       56( 89%)     0/UNLTD    24  64     0/UNLTD   765   980     0/UNLTD     2   2     0/UNLTD   2880 UNLTD
SDF       42( 92%)     0/8         - 144     0/288       - 12288     0/UNLTD     -   -     -/-       2880 UNLTD
===============================================================================================================
TOTAL:          JOBS) 19/UNLTD       CPUS) 450/1100          MEM) 1800/18432        GPUS)  0/4    

fe3-adm: 
                                                            Req'd  Req'd   Elap
Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time  S Time
--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----
14421.fe3-adm   appadm   APC      MS_FRJZR   15345*   1  30  120gb 2880: R 59:15 cl11-adm/0*30
14425.fe3-adm   appadm   APC      MS_FSI7Q   18073*   1  30  120gb 2880: R 59:13 cl12-adm/0*30
15084.fe3-adm   appadm   APC      MS_H5QR8   32758*   1  30  120gb 2880: R 46:13 cs10-adm/0*30
項目説明
Queueキュー名
availキューが利用可能な全コア数のうち、利用可能(ジョブが実行されていない)コア数
(use%)キューが利用可能な全コア数のうち、使用中(ジョブが実行中)のコア数の割合(%)
JOBS: mysumユーザが実行中のジョブの総数
JOBS: maxユーザが実行可能な最大ジョブ数
CPUS: availジョブがすぐに実行開始できる最大コア数
CPUS: maxそのキューで指定可能な最大コア数
CPUS: mysumユーザが実行中のジョブの合計コア数
CPUS: maxユーザあたり、実行可能なジョブの最大合計コア数
MEM(gb): availジョブの最大コア数指定時に、すぐに実行開始可能な最大メモリサイズ。 なお、もしジョブの最大コア数よりも少ないコア数を指定すると、より多くのメモリを指定しても、そのジョブがすぐに実行開始されることがあります。
MEM(gb): maxそのキューで指定可能な最大メモリサイズ
MEM(gb): mysumユーザが実行中のジョブの合計メモリサイズ
MEM(gb): maxユーザあたり、実行可能なジョブの最大合計メモリサイズ
GPUS: availジョブがすぐに実行開始できる最大GPU数
GPUS: maxそのキューで指定可能な最大GPU数
GPUS: mysumユーザが実行中のジョブの合計GPU数
GPUS: maxユーザあたり、実行可能なジョブの最大合計GPU数
WALLTIME(h): default何も指定しない場合に設定される経過時間
WALLTIME(h): max指定可能な最大経過時間
fe3-adm: 以下実行中のユーザジョブ情報(qstat -fnrt1)
左からジョブID、ユーザ名、バッチキュー、ジョブ名、セッションID、chunk数、コア数、メモリ、最大経過時間、ステータス、経過時間、実行ノード

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

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

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

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

% qstatmyjobs -m
User: appadm

                      JOBS             CPUS                  MEM(gb)                 GPUS         WALLTIME(h)
Queue  avail(use%) mysum/max   avail max mysum/max   avail   max mysum/max   avail max mysum/max  default max
------ ----------- ----------- --------------------- ----------------------- -------------------- -------------
SMALL   1193( 76%)     0/UNLTD    12  12     0/96       48    48     0/UNLTD     -   -     -/-          6 12
APC     1025( 78%)    19/UNLTD    12  56   450/UNLTD   880   980  1800/UNLTD     -   -     -/-       2880 UNLTD
APG       56( 89%)     0/UNLTD    24  64     0/UNLTD   765   980     0/UNLTD     2   2     0/UNLTD   2880 UNLTD
SDF       42( 92%)     0/8         - 144     0/288       - 12288     0/UNLTD     -   -     -/-       2880 UNLTD
===============================================================================================================
TOTAL:          JOBS) 19/UNLTD       CPUS) 450/1100          MEM) 1800/18432        GPUS)  0/4    

fe3-adm: 
                                                            Req'd  Req'd   Elap
Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time  S Time
--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----
14421.fe3-adm   appadm   APC      MS_FRJZR   15345*   1  30  120gb 2880: R 59:15 cl11-adm/0*30
14425.fe3-adm   appadm   APC      MS_FSI7Q   18073*   1  30  120gb 2880: R 59:13 cl12-adm/0*30
15084.fe3-adm   appadm   APC      MS_H5QR8   32758*   1  30  120gb 2880: R 46:13 cs10-adm/0*30

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


キュー情報の参照

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

% qstat -Q
Queue              Max   Tot Ena Str   Que   Run   Hld   Wat   Trn   Ext Type
---------------- ----- ----- --- --- ----- ----- ----- ----- ----- ----- ----
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

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

項目説明
fe3-adm ジョブを管理しているサーバ名です。ジョブを投入した計算サーバとは異なります。
Job ID PBSによって割り振られるジョブ番号。番号の後に、ジョブを管理しているサーバ名(fe3-adm)がつきます。
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.fe3-adm

Job: 191784.fe3-adm

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@fe3-adm
04/19/2020 00:40:58  S    Job Run at request of Scheduler@fe3-adm on exec_vnode (cl04: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 コマンドよりし易くなっています。 詳しくは こちら のページを参照下さい。