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

Resetting $(Process) to be 0 after each queue command Condor

我正在尝试通过使用多个队列命令,使用一个提交脚本向 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 脚本提交所有脚本,但如果可能的话我宁愿不去那里。

在一个 HTCondor 作业集群中,无法将进程更改回零,因为这是作业集群中单个作业的索引。较新版本的 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。