web-dev-qa-db-ja.com

1つまたはすべてのLSFジョブが完了するのを待ちます

Platform LSF の場合、特定のジョブまたは送信されたすべてのジョブが終了するのを待ってから戻るコマンドはありますか?言い換えれば、bashのwait組み込みコマンドに相当するLSFを探しています。

8
Vebjorn Ljosa

-Kオプションをbsubに指定すると、ジョブが完了するのを待ってから戻ります。次に、シェルでいくつかのbsubコマンドをバックグラウンドで実行し、シェルのwaitコマンドを使用してそれらを待つことができます。例:

#!/bin/bash
bsub -K -o out.1 sleep 10 &
bsub -K -o out.2 sleep 5 &
wait
7
Vebjorn Ljosa

bwait

例:

_bsub -J 'myjobname' -o bsub.log bash -c 'date && sleep 10'
bwait -w 'ended(myjobname)'
_

bwaitは、対応するbsubが終了するまで待機します。

同じ方法は、_-K_がサポートされていないジョブ配列でも機能します。

_bsub -J 'myjobname[1-40]' -o 'bsub%I.log" 'sleep $JOBINDEX && echo $JOBINDEX'
bwait -w 'ended(myjobname)'
_

ended()の他にdone()exit()もあり、終了ステータスが_0_であるかどうかにかかわらず、bwaitは正常に終了します。それぞれ_0_、それ以外の場合は次のように失敗します:

_Wait condition is never satisfied
_

lSFは、どちらの場合もジョブの状態が異なるためです。

関連ドキュメント: