2017-03-23 3 views
0

LSFジョブ配列を実行して、メークファイルにターゲットを作成しています。 しかし、配列が送信されると、makeはターゲットのコマンドが実行されたとみなし、ターゲットが存在しないためエラーをスローします。MakeファイルのLSFジョブ配列

他の依存ターゲットに移動する前に、LSFジョブアレイの完了まで待つようにするにはどうすればよいですか?

例:

all: final.txt 

first_%.txt: 
    bsub -J" "jarray[1-100]" < script.sh 

final.txt: first_%.txt 
    cat first_1.txt first_50.txt first_100.txt > final.txt 

残念なことに-Kフラグがジョブアレイはサポートされていません。

+0

メイクファイルである必要がありますか?潜在的にジョブの依存関係を 'cat ...> final.txt'とすることができます。あるいは、makefileを残して、最後のジョブに 'bsub -K'を使うこともできます。そうすれば、final.txtのルールは完了するまでブロックされます。 –

答えて

1

try bsub -Kこれは、ジョブが完了するまで、bsubがフォアグラウンドにとどまるようにする必要があります。

編集

オプションがアレイでサポートされていないので、私はあなたが別の仕事としてあなたのアレイを提出しなければならないと思う、のようなもの:あなたがする必要があります

for i in `seq 1 100`; do 
      export INDEX=$i 
      bsub -K < script.sh & 
done 
wait 

ジョブ配列インデックスを使用する代わりに、手動でインデックスをスクリプトに渡します。

+0

bsub -Kはジョブ配列に対して機能しません。 msgstr "ジョブ配列は-Kオプションをサポートしていません。 – par

+0

ああ、その場合は、私が追加する私の他のソリューションがあまり好きではないが、それは私が考えることができるすべてだ... – Squirrel

0

bsubコマンドを実行すると、ジョブが完了するまで待つ必要があります。私はそれを使用したことがありませんが、the man pageによれば、このために-Kオプションを追加することができます。

+0

bsub -Kはジョブ配列に対して機能しません。 msgstr "ジョブ配列は-Kオプションをサポートしていません。 – par

+0

それはあまりにも悪いです。まあ、すべてが完了するまでレシピを待つ方法を見つけなければなりません。ここで助けてくれるものは何もありません。レシピなどでスクリプトを使って解決する必要があります。 – MadScientist

関連する問題