SGEグリッドジョブのシーケンスを合理化するというジレンマがありますが、その中には依存関係がありますが、正しい方法は-hold_jid
です。SGEグリッドジョブ依存
job1: qsub -N job1 ...
job2: qsub -N job2 -hold_jid job1
job3: qsub -N job3 -hold_jid job2
、実行の順序はjob1-> job2-> JOB3であることが保証されています
は、我々のような仕事をしていると仮定します。しかし
、job2aを言って、複雑なJOB2の中に、埋め込まれたSGEジョブがあるとします。この場合は
job2a: qsub -N job2a.${timestamp_of_submission}
job2aが完了した後、私は確かJOB3の実行を作るための方法を考え出したていません。
attempt1:
qsub -N job3 -hold_jid job2 ...
その後JOB2が終了するまで確実にJOB3待機は、しかし、JOB3は私が望んでjob2a、後に実行されるという保証はありません。
attempt2:
qsub -N job3 -hold_jid job2a* ...
その後、JOB3はJOB2の実行を開始するまでjob2aは、ジョブ配列に示されていないので、すぐに実行しているようです。注意投稿のタイムスタンプはあらかじめ推測するのが難しいので、上記の*
を使用してjob2aの正確な名前を指定しないようにしました。
誰かがjob1-> job2-> job2a-> job3のように依存関係のチェーンを達成する方法を知っていますか? ありがとう!また、動作するはずですジョブIDを取得する、あるいは、
qsub -N job2
qsub -N job2a
qsub -N job3 -hold_jid job2,job2a.${timestamp_of_submission}
:
感謝しかし、これは私のために動作しませんでした。確かにjob2aための複数のサブジョブがあるので、私の場合、私は* job2a、-hold_jid JOB2を試してみましたすべて同じ接頭辞「job2a」を持ちます。実行時に、job3はjob2が完了するのを待っていましたが、job2a *ジョブが完了するのを待っていませんでした。 – galactica
明確にするために、すべてのjob2aジョブIDを '-hold_jid'オプションに追加しましたか、ワイルドカード(' * ')を使用しましたか? – Vince
私はワイルドカードを使用しました。これは、オンザフライでジョブ名のすべてを列挙することはできません。つまり、送信のタイムスタンプのリスト – galactica