0

私は大学のコンピューティング クラスタでコンドルを使用して、多数のジョブを管理しています。私のプログラムは、2 つの大きな (~1Gb) 入力ファイルを読み取り、小さな (~100kb) 出力ファイルを生成します。すべての入力ファイルは、すべてのコンドル ノード (約 150 個あります) から読み取り可能な同じネットワーク ディスク上にあります。多数のジョブを送信した後、実行速度が大幅に低下することに気付きました。多くのファイルを同時に読み取るには、ディスク ヘッドがより多く移動する必要があるため、これは IO レイテンシが原因であると思われます。ジョブを実行する前にファイルをノードにコピーして、これを最適化したいと考えています。より正確には、ディスクがより順次読み取られるように、一度に 1 つのファイルのみをコピーしたいと考えています。使ってみた

should_transfer_files = YES
when_to_transfer_output = ON_EXIT
transfer_input_files = file1, file2

ただし、これにより、後続のジョブが前のジョブがファイルのコピーを完了するのを待つ必要がないようです。

4

1 に答える 1

0

ジョブ B がジョブ A の完了を待つようにするには、それらを関連付ける必要があります。これは、DAG を使用して実行できます (DAGman を参照)。

JOB FIRST a.submit
JOB SECOND b.submit
PARENT FIRST CHILD SECOND

上記の例では、b.submit で定義されたジョブは、ジョブ a.submit が正常に終了した場合にのみ実行されます。

于 2015-06-08T14:14:02.277 に答える