0

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

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 回答