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
(报价的处理可能有所不同)
我想 运行 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
(报价的处理可能有所不同)