0

我想在我们的 HTCondor 池上运行不同批次的作业。假设 10 个 Type1 的工作,20 个 Type2 的工作,依此类推。当前作业完成后,这些作业类型中的每一个都应获得新作业。

如果所有作业都已完成,或者整个作业批次的时间限制是否已通过,我只使用一种类型进行简单查询。如果满足其中一个要求,则将 x 个作业的下一次迭代提交给集群。

这是由一个小函数完成的(用 Lua 编写,这对这个问题并不重要):

function WaitForSims(CheckupDelay)
    while io.popen([[condor_q -format "%d\n" clusterid]]):read('*all'):len()~=0 do
        os.execute("echo Checkup timestamp: "..os.date("%x %X"))
        os.execute(string.format("timeout %d 1>nul",CheckupDelay))
    end
end

有没有可能将Type1、Type2和Type3的工作分开并独立检查?目前它以我当前用户的身份检查所有工作。

为作业添加标签或其他东西是理想的,因为我可以简单地更改检查调用。在文档中我找不到任何易于添加的内容,我可以记住 JobID-s,但是我将不得不存储那些增加更多复杂性的内容。

4

1 回答 1

0

链接答案

解决方案可以在另一个答案中找到,但我没有找到文档中描述的位置。

job.sub文件中添加:

+YourCustomVarName = 1
+YourCustomStringName = "String"

为了检查它使用:

condor_q -constraint 'YourCustomVarName == 1' -f "%s" JobStatus

或者

condor_q -constraint "YourCustomStringName == \"String\"" -f "%s" JobStatus

(报价处理可能会有所不同)

于 2017-09-06T12:51:30.883 回答