LSF=Load Sharing Facility


基本コマンド

bsubジョブを投入するbsub < batch_file.shmanual
bjobsジョブの状態を表示する-u all, -u usernamemanual
bhist終了したジョブの状態を表示するmanual
bhostsホストの情報を表示するmanual
bqueuesキューの情報を表示するmanual
bkillジョブをキャンセルするbkill job_idmanual
lsloadホストの負荷情報を表示するmanual

LSFを使ってのジョブの投入方法

% bsub -q short -o out ./a.out 
-q:キュー名 
-o:出力ファイル 
a.out:実行ファイル

LSFを使って投入したジョブの状態を確認

% lsload (負荷に関する情報) 
% bhosts (ホストの情報 (ホスト名、ホスト状態、ジョブスロット制限、およびジョブ状態統計)の表示) 
% bjobs -u all (送信されたバッチ・ジョブに関する情報)
  • lsloadの出力結果の意味は以下のとおりです。
    • status:ホストの負荷ステータスを示す。
    • r15s:15秒間内で CPU を使用しようとしている平均プロセス数。
    • r1m:1分間内で CPU を使用しようとしている平均プロセス数。
    • r15m:15分間内で CPU を使用しようとしている平均プロセス数。
    • ut:CPU 利用率。
    • pg:ページング率(ページ/秒)。
    • ls:ログインしたユーザの数。
    • it:アイドル時間(最後の対話ユーザアクティビティからの経過時間)(分)。
    • tmp:/tmp 容量(MB)
    • swp:ページング・スペース(MB)
    • mem:メモリー(MB)

全ホスト(ノード)のステータス状態を確認

% bhosts

投入したジョブを取り消したい

% bkill "JOBID" (JOBIDは、$bjobsコマンド等で確認できます) (例:bkill 1240)

特定のノードを指定してjobを実行することは可能か

以下のようにbsubコマンドでjobを実行する際に、-mオプションを付与して特定のノードを指定

% bsub -q short -o out -m hpc2 ./a.out 
-q:キュー名(指定なしの場合、default queueで実行されます) 
-o:出力ファイル -m:ノード名(実行したいノードがhpc2の場合) 
a.out:実行ファイル 

ジョブの履歴情報を確認したい

% bhist 

queueの設定内容と現在の状態を確認したい

% bqueues 

ジョブを投入したのですが、一瞬にして終了したようですが、結果が得られませんでした。うまくジョブが実行されたかどうかはどこを見れば確認できるのでしょうか。

bsubコマンドでjobを実行する際、-oオプションで出力ファイルを指定していれば、そのファイルの中身を見てみると実行できたかどうか、実行できていなければその原因がわかると思います。

JOBを中断したいのですが。そののちJOBを再開したいのですが。

% bstop $JOBID (中断) 
% bresum $JOBID (再開)

#BSUBディレクティブ or bsubオプション

manual

オプション機能
-q queue_nameキュー名を指定。
-J job_nameジョブ名の指定
-n proc並列ジョブの実行に必要なプロセッサ数。並列ジョブを実行する場合には動作の可否にかかわらず、必ず指定。
-m 'host01 host2'host01,host02で実行
-R "span[ptile=2]"一つのホストで2プロセッサ使用
-R "span[hosts=1]"一つのホストで実行
-M mem_limitジョブののメモリ制限値(KB単位)。
-c [hour:]minuteジョブの CPU時間の合計への制限値。例: 3時間半なら 3:30 あるいは 210 として指定。
-b begin_timeジョブを指定日時またはその後で実行するようにディスパッチ。 日時は [[month:]day:]hour:minute という形式。少なくとも2つのフィールドを指定する必要がある。 2月1日午前0時31分では 2:1:0:31 。
-I , -Ip , -Is対話型バッチジョブ(※)の投入
-k "checkpoint_dir[checkpoint_period]ジョブをチェックポイント可能にして、チェックポイントディレクトリを指定。チェックポイント期間(単位:分)を指定するには、角括弧と引用符が必要。システムへの負荷を軽減するために、1時間以上長いチェックポイント期間を指定。

ジョブレポートおよび出力ファイルに関するオプション

ジョブからの出力は、通常は、ジョブレポートやジョブエラーとともに電子メールで ユーザに送られますが、 以下のオプションでファイルに出力することができる。

オプション機能
-Bディスパッチされて実行を開始すると、メールで通知。
-o out_file標準出力などの出力ファイル名を指定。
-e out_file標準エラー出力の出力ファイル名を指定。
-Nジョブが完成後、メールによってジョブレポートが送信される。
-u mail_address指定した電子メールアドレスにメールを送信。

オプションの組合せによる実際の振舞

オプション振舞
-o のみ指定標準出力、標準エラー出力、ジョブレポートを、指定した出力ファイルに格納
-o および -e の指定標準エラー出力は -e で指定されたファイルに、それ以外は -o で 指定されたファイルに格納
-N および -o の指定標準出力、標準エラー出力は -o で指定されたファイルに、ジョブレポートは メールで通知

例1 (OpenMP, command)

origin% f90 -O2 -mips4 -apo openmp.f90
origin% setenv OMP_NUM_THREADS 8
origin% bsub -q LARGE -n 8 -Is "./a.out"
Job <1234> is submitted to queue <LARGE>.

このサンプルでは、コマンド行から環境変数 OMP_NUM_THREADS を用いてCPU数を指定しています。 また、LSFのバッチスクリプトは記述せず、直接 bsub コマンドのオプションでキューや CPU 数を指定しています。 さらに、このプログラムでは、端末を介した入出力が必要なため、 対話型バッチジョブでかつシェルモードをサポートした疑似端末を利用するための -Is オプションを使用しています。

例2 (OpenMP, バッチ)

#BSUB -q m                     ← 実行キューの指定
#BSUB -J md-test               ← ジョブに名前を付ける
#BSUB -o md-outfile.txt        ← 標準出力用のファイル
#BSUB -e md-errfile.txt        ← 標準エラー用のファイル
#BSUB -n 8                     ← 使用するprocessors数
#BSUB -u hoge@cc.affrc.go.jp   ← ジョブ通知用のメールアドレス指定
#BSUB -N                       ← ジョブ終了時に通知メールを送る
cd /calc/hoge/omptest          ← 実行するディレクトリへ移動
export OMP_NUM_THREADS=8       ← OpenMPの並列度環境変数の指定
./md.omp > md-omp.out          ← 実行プログラム
ジョブ投入例

bsub < job-script.sh

例3 (MPI, バッチ)

#!/bin/bash
#BSUB -q normal
#BSUB -J test
#BSUB -o test.log
#BSUB -m 'hpcs03 hpcs04 hpcs05'
#BSUB -n 6
#BSUB -R span[ptile=2]
cd /PATH/bin
time mpijob mpirun mpi_program

Reference

添付ファイル: fileLSF.gif 732件 [詳細]