在每个队列命令Condor之后将$(Process)重置为0

时间:2018-08-08 15:24:16

标签: condor

我正在尝试通过利用多个队列命令使用一个提交脚本向秃鹰进行多次提交。在明显误解了该命令与$(Process)的关系后,我将代码设置如下:

executable = exe.sh
arguments = $(Process) arglist1
queue 5
executable = exe.sh
arguments = $(Process) arglist1
queue 17

我原本以为,在每个队列命令之后,$(Process)都将重置为0,而我的脚本所采用的参数依赖于此。但是,在尝试提交这些内容之后,我发现事实并非如此,$(Process)一直在上升。 (为清楚起见,我本以为在queue 5完成5个作业的排队之后,当我们来到$(Process)的下一个实例时,它将求值为0而不是5)

我的问题是,是否可以在每个队列语句后将$(Process)重置为0?在我的实际代码中,为了将正确的参数传递给可执行文件,我有28个队列实例发生了不同数量的迭代。

我想的解决方法是制作28个单独的提交脚本,并使用一个shell脚本提交所有脚本,但我宁愿不去那里。

1 个答案:

答案 0 :(得分:2)

在一个HTCondor作业集群中,无法将Process更改回零,因为这是该作业集群中单个作业的索引。较新版本的HTCondor为此提供了一个STEP提交变量:

executable = some_executable
arguments = $(STEP) foo bar
queue 5
arguments = $(STEP) foo bar
queue 17

使用这种语法,所有作业都将在一个作业群集中,可以一次全部将condor_rm或condor_hold保留。群集中前五个作业的第一个参数的参数为​​0到4,然后下一个17的参数为0到16。