【日付】 06/10/12
【ホスト名】 hop
【相談内容】
スパコンでバッチジョブを実行したとき,実行終了までに要した
CPU時間を調べる方法はありますか.
【指導内容】
スパコン・バッチ領域での実行時間のチェック法について,
下記に示す3つの方法がありますので,ご参照のうえお試しください.
(1) スパコンTSS領域で,コマンドactlist を実行すると
次のように表示されます.
この中で,左から2行目に示されるのがバッチ領域の利用を
示しています.batch-infoにおいて,e-timeが経過時間
(実行時間:秒),total-timeが合計時間で,(e-time×
ノード数)に一致します.したがって,プログラム実行時間は
e-timeとなります.このとき,利用負担金はtotal-timeに
一致します.バルクユーザの場合,バルク管理者(先生)のID
(bu番号でないID)でログインして,チェックすることができます.
このほかに,actshow, actdispなどのコマンドが利用できます.
user=bu3001 date:200610 batch-info |
no syu ac date Q qname node * e-time total-time|
(中途まで省略)
032 batch
2006-10-11|B 0 1 38970 38970|
033 batch
2006-10-11|B 0 1 42742 42742|
(2) メールによるチェック
バッチ領域でジョブが実行されると,ジョブ終了時にユーザあて
システムからメールが送られてきます.その中で,下記の3つの行に
注目してください.
Submitted at: Wed Oct 4 15:26:32 2006 <ジョブ投入時間
Started at: Wed Oct 4 16:17:37 2006 <ジョブ開始時間
Exited at: Wed Oct 4 23:59:45 2006 <ジョブ終了時間
プログラムの実行時間は,ジョブ終了時間からジョブ開始時間を差し引いた
時間となります.上記の場合,7時間42分となります.
(3) プログラム中に経過時間計測ルーチンxclock()を使用する.
ソースコードが
FORTRANの場合,次のように記述します.詳細については
日立最適化
FORTRANコンパイラマニュアルをご参照ください.
REAL*8 times, timee
...(ユーザプログラム)
CALL xclock( times, 7 )
CALL xclock( times, 8 )
....(ユーザプログラム)
CALL xclock( timee, 8 )
PRINT *, timee - times, '(sec)', ( timee - times )
/ 3600.0 '(hours)'
...(ユーザプログラム)