HTCondor 作业提交标签

HTCondor job submission tags

我想 运行 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,但我必须存储那些增加更多复杂性的东西。

Linked Answer

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

job.sub 文件中添加:

+YourCustomVarName = 1
+YourCustomStringName = "String"

要检查它,请使用:

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

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

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