3

我正在尝试通过利用多个队列命令使用一个提交脚本向秃鹰进行多次提交。在明显误解了这个命令是如何工作的之后,$(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 脚本将它们全部提交,但如果可能的话,我宁愿不去那里。

4

1 回答 1

2

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

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

使用这种语法,所有作业都将位于一个作业集群中,可以同时使用 condor_rm 或 condor_hold'ed。集群中前五个作业的第一个参数将具有参数 0 到 4,然后接下来的 17 将得到 0 到 16。

于 2018-08-08T20:22:56.720 回答