自分のジョブの状況を確認したり, 中止したりすることが可能です.
ジョブの状況を見る
- 実行中あるいは待機中(つまりqueue)のジョブを見る: sq エスキュー
$ sq
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
172 B ---O));^ sugimoto R 0:01 1 ib2007-4
- 実行済みの(つまりlogにある)ジョブを見る: sl えすえる
$ sl -l -a
JobID User Part JobName Timelimit Elapsed Start End State MaxRSS MaxVMSize NodeList
------------ ------- ---- ---------- ---------- ---------- ------------------- ------------------- ---------- ---------
3200.batch batch COMPLETED 05:35:27 11-22T10:13:51 11-22T10:13:51 0.15G 0.13G as2020-3
3204 hibiki E 3052 COMPLETED 09:32:09 11-22T10:13:51 11-22T10:13:51 as2020-1
3204.batch batch COMPLETED 09:32:09 11-22T10:13:51 11-22T10:13:51 3.10G 0.13G as2020-1
3205 hibiki E 3053 RUNNING 10:34:30 11-22T10:13:51 11-22T10:13:51 as2020-2
3206.batch batch COMPLETED 00:26:25 11-22T10:13:51 11-22T10:13:51 0.36G 0.13G as2020-2
3207 hibiki E 3056 COMPLETED 07:34:33 11-22T10:13:51 11-22T10:13:51 as2020-3
3207.batch batch COMPLETED 07:34:33 11-22T10:13:51 11-22T10:13:51 24.36G 0.13G as2020-3
3208 yuto E YutoJo TIMEOUT 03:05:14 11-22T10:13:51 11-22T10:13:51 ib2007-1
3208.batch batch CANCELLED 03:05:17 11-22T10:13:51 11-22T10:13:51 0.00G 0.13G ib2007-1
なお,過去3日間の記録を表示する場合には sl -d3 のように日数を指定すれば良い. 詳細な情報が必要であれば sl -l とすれば良いし,他人の状況も見たければ sl -a とすれば良い.MaxRSSは,あなたのプログラムが利用したメモリーボードのサイズ,MaxVMは,あなたのプログラムが利用しようとしたメモリーのサイズ,NodeListは計算を実行したマシンの名前です.
ジョブの状況を無理やり見る
研究室の計算機クラスターは教育目的でもありますので,なんと,計算ノードにログインすることができます!sshで実行中のノードにアクセスし(もちろん計算速度に悪影響がありますが),top と入力すると
top - 13:32:48 up 4 days, 18:52, 1 user, load average: 46.35, 46.98, 47.24 Tasks: 752 total, 4 running, 748 sleeping, 0 stopped, 0 zombie %Cpu(s): 74.3 us, 0.1 sy, 0.0 ni, 25.0 id, 0.0 wa, 0.6 hi, 0.0 si, 0.0 st MiB Mem : 257811.7 total, 1562.1 free, 252634.8 used, 3614.8 buff/cache MiB Swap: 131072.0 total, 119431.4 free, 11640.6 used. 3049.5 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 104557 mori 20 0 239.7g 237.5g 9516 R 3179 94.3 139560:46 BGK 123469 hibiki 20 0 9682640 7.7g 41216 R 1582 3.1 3746:37 BGK 1056 root 20 0 51452 3512 3508 S 1.0 0.0 42:47.11 plymouthd 2275 root 20 0 642544 29908 27172 S 0.3 0.0 7:03.77 tuned
こんな感じで, ジョブ状況がわかります.
- ここをみると, mori君の計算はメモリーチップを238GB, hibiki君のは8GB使っていることがわかります.
- ここをみると, mori君の計算は本来240GB, hibiki君のは9GBほど準備していることがわかります.データを準備してぜーんぜん使わないと,RESとVIRTの差が大きくなります.
- OMP並列計算が正常に稼働していると.ここのCPU%が100%を超えて大きくなります.メモリー不足とか,プログラムの書き方が悪いと,ここが伸びてきません.
- このへんにkswapdとかk....というプロセスが出現すると,システム全体のメモリーが不足し,低速計算に陥っていることがわかります.
topの実行は,①そのターミナルを赤ボタンで吹っ飛ばす ② q と入力してtopを終了する ③CTRL+Cでtopを強制終了する,などで停止させることができます.桁がデカすぎて読みにくい場合, e と入力してみましょう.
ジョブをキャンセル
ジョブ番号4453のジョブの計算を強制終了するには,エスシーコマンドを使います.
$ sc 4453
気合を入れてキャンセルするには
$ sc -f 4453
シグナル番号と気合を入れてキャンセルするには
$ sc -f -s 15 4453
この15とかいうのはLinuxのシグナル番号です:
1 (SIGHUP) | 4 (SIGKILL) | 10 (SIGUSR1) | 12 (SIGUSR2) | 15 (SIGTERM) |
サポートされていれば一時中止. そうでなければ強制終了 | サポートされていれば指定動作. そうでなければ強制終了 | 拒否権なしの強制終了 |
*サポートってのは,あなたが自分のプログラムでシグナルをトラップするコードを書いた場合,です. 「なにそれ」と思うあなたは,サポートしていません.
ジョブを一時停止する
ジョブ番号4453のジョブをちょいとしばらく停止させておくには
$ smgr suspend 4453
気をつけないといけないのは,ちょいと停止させると,ジョブの待ち行列の次のジョブが実行開始してしまうことです.それを防ぐには,あらかじめ,該当するジョブクラス を一時停止しておいた方が良いです.例えばEクラスを活動休止させるには
$ smgr j down E
もちろん停止したジョブクラス は,作業後に再開しておかないとジョブの実行が不可能なままになってしまいます:
$ smgr j up E
一時停止したジョブを再開する
停止したジョブはS状態になります:
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
331 E 1265 shogo R 4-21:46:05 1 is2011-2
344 E 1385 shogo R 1-01:59:21 1 ig2016-1
345 E 1384 shogo R 1-01:52:01 1 ig2016-1
330 E 1322 shogo R 5-23:20:35 1 is2011-1
302 E 1315 shogo S 15-21:52:34 1 ig2014-1 一時停止
こやつを再開させるには
$ smgr resume 302
です
それでは,以下で長大計算に向けたジョブの説明を行います.