結果ファイルのエラーメッセージについて

バッチジョブスケジューラに投入後のログに出力される以下のようなメッセージに対する確認方法をご説明します。

/var/spool/uge/hostname/job_scripts/JOB-ID: line XX: Process-ID Killed  Program_Name

qacct コマンドによる確認を行います。

$ qacct -j JOB-ID


ユーザGSICUSER00がq_nodeに投入したジョブを確認したコマンド結果の例(一部抜粋)
下記項目の詳細についてはmanコマンドで確認下さい。
==============================================================


1.メモリ資源を超過した場合の例

$ qacct -j 4500000
qname        all.q               
hostname     r0i0n0              
group        GSIC          
owner        GSICUSER00            
project      NONE                
department   defaultdepartment   
jobname      SAMPLE.sh
jobnumber    4500000             
taskid       undefined
account      0 0 1 0 0 0 3600 0 0 0 0 0 0
priority     0      
cwd          /path-to-current
submit_host  login0 or login1    
submit_cmd   qsub -A GSICGROUP SAMPLE.sh
qsub_time    %M/%D/%Y %H:%M:%S.%3N
start_time   %M/%D/%Y %H:%M:%S.%3N
end_time     %M/%D/%Y %H:%M:%S.%3N
granted_pe   mpi_f_node          
slots        7                   
failed       0    
deleted_by   NONE
exit_status  137                              
maxvmem      120.000G
maxrss       0.000
maxpss       0.000
arid         undefined
jc_name      NONE

この例では、exit_statusとaccountおよびmaxvmemに注目します。
exit_statusを確認することで、何が原因でジョブが停止したかを確認できます。
例のexit_status  137 は128+9を示しますが、これだけだと多岐にわたるため、切り分けはできません。
そこでaccountおよびmaxvmemを確認します。

(2018/12/7修正 :granted_peのみでは資源タイプが不明となったため修正)
accountの「0 0 1 0 0 0」はどの資源タイプをどのくらいの量、利用したかを示します。
スペース区切りでそれぞれf_node,h_node,q_node,s_core,q_core,s_gpuの資源タイプを示し、数字は資源量を示します。この例ではq_nodeを1つ利用しています。

maxvmemは最大メモリ使用量を示します。
資源タイプq_nodeは利用手引きを確認すると60GB利用できますが、例では120GB利用しようとしたことがわかります。
TSUBAMEでは、資源割り当て以上に利用した場合はシステム側でKILLされる仕組みとなっているので、それが原因であると推察できます。


2.確保した時間を超過した場合の例

$ qacct -j 50000000
qname        all.q               
hostname     r0i0n0              
group        GSIC          
owner        GSICUSER00            
project      NONE                
department   defaultdepartment   
jobname      SAMPLE.sh
jobnumber    50000000             
taskid       undefined
account      0 0 1 0 0 0 600 0 0 0 0 0 0
priority     0      
cwd          /path-to-current
submit_host  login0 or login1    
submit_cmd   qsub -A GSICGROUP SAMPLE.sh
granted_pe   mpi_f_node          
slots        7                   
failed       0    
deleted_by   NONE
exit_status  137
wallclock    614.711                               
maxvmem      12.000G
maxrss       0.000
maxpss       0.000
arid         undefined
jc_name      NONE

この例では、exit_statusとaccount、wallclockに注目します。
exit_statusを確認することで、何が原因でジョブが停止したかを確認できます。
例のexit_status  137 は128+9を示しますが、これだけだと多岐にわたるため、切り分けはできません。

そこでaccount、wallclockに注目します。
accountのスペース区切りで7つめの数字は資源を確保した時間(秒)を示します。
この例では600秒です。

wallclockは経過時間を示し、この例では614秒で終了しております。
資源確保時間内に計算が終了しなかったため、システム側でKILLされたと推察できます。


関連FAQ:Linuxのよくあるエラーについて