1

我附上了以下行

periodic_remove = CurrentTime-EnteredCurrentStatus > 1200

到一个 condor 子文件,并且工作在 20 分钟后中止,如我所愿。但是,此子文件是 DAG 文件的一部分,并且由于作业被中止,DAG 文件将不会移动到后续作业。

有没有办法让这个超时代码在 DAG 调度器眼中表现得像成功一样,以便调度器启动后续作业?

第一次编辑

我想我可能已经找到了答案的提示:

您可以使用这些表达式自动执行许多常见操作。例如,假设您知道您的作业永远不会运行超过一个小时,如果它运行超过一个小时,则可能有问题需要调查。Condor 可以让您的作业在集群上不必要地运行,而不是让您的作业暂停,并将以下内容添加到提交文件中:

periodic_hold = (ServerStartTime - JobStartDate) > 3600

或者假设你有一个偶尔会出现段错误的工作,但你知道如果你在相同的数据上再次运行它,它很可能会成功完成。您可以通过将此行添加到提交文件来获得此行为:

on_exit_remove = (ExitBySignal == True) && (ExitSignal != 11)

如果作业由信号退出并且该信号编号为 11(表示分段错误),则上述表达式不会让作业离开队列。在作业退出的任何其他情况下,它将离开队列。

此信息是此处整体 condor 教程的一部分:http: //etutorials.org/Linux+systems/cluster+computing+with+linux/Part+III+Managing+Clusters/Chapter+15+Condor+A+Distributed+Job +调度程序/15.2+使用+Condor/

谁能验证这是否是正确的轨道?

4

1 回答 1

2

使用 on_exit_remove,不是关键,我补充说

on_exit_remove =  (ExitCode == 1)

添加后到 *.sub 文件

periodic_hold = (ServerStartTime - JobStartDate) > 3600

因为我试图强制将已删除的作业视为 *.dag 文件的成功,但是对 *.sub 文件的添加导致我的作业继续在队列中回收,并且没有一个完成。

解决方案是在我删除作业后制作一个 POST 脚本。我想脚本可以是任何评估为成功的东西。我只是使用了一个带有简单 echo 命令的 bash 文件。

基本上,正如这里所说: http ://research.cs.wisc.edu/htcondor/manual/v8.0/2_10DAGMan_Applications.html

在第 2.10.2 节,项目符号点 SCRIPT 下,只要 POST 脚本的计算结果为 true,则输入作业本质上将具有退出代码 = 0。

于 2014-05-07T03:44:53.953 回答