使下一个condor作业等到上一个完成复制输入文件

时间:2015-05-12 21:55:31

标签: condor

我在大学的计算集群上使用condor来管理大量工作。我的程序读入两个大的(~1Gb)输入文件并生成一个小的(~100kb)输出文件。我的所有输入文件都位于可从所有神鹰节点读取的同一网络磁盘上(我们大约有150个)。我注意到,在我提交大量作业后,它们开始运行速度慢得多,我怀疑这是由于IO延迟,因为磁盘头必须移动更多以同时读取多个文件。我想通过在运行作业之前将文件复制到节点来优化它。更准确地说,我希望一次只复制一个文件,以便更顺序地读取磁盘。我试着用

should_transfer_files = YES
when_to_transfer_output = ON_EXIT
transfer_input_files = file1, file2

但这似乎并不会迫使后续作业等待前面的作业完成复制文件。

1 个答案:

答案 0 :(得分:0)

如果你想要工作B等待工作A的完成,你需要将它们联系起来。这可以通过使用DAG(参见DAGman)

来执行
JOB FIRST a.submit
JOB SECOND b.submit
PARENT FIRST CHILD SECOND

在上面的示例中,仅当作业a.submit完成OK时,才会执行b.submit定义的le作业。