1

当使用qsub将数组作业放在集群上时,全局变量 SGE_TASK_ID 被设置为数组作业 ID。我在集群上运行的 shell 脚本中使用它,其中每个阵列作业需要根据 SGE_TASK_ID 执行不同的操作。这是集群调度程序执行此操作的常用方法,还是它们都有不同的方法?

4

2 回答 2

0

大多数调度程序都有办法做到这一点,尽管在不同的设置中可能会略有不同。在 TORQUE 中,该变量称为 $PBS_ARRAYID,但它的工作原理相同。

于 2012-07-20T22:34:17.243 回答
0

是否所有集群调度程序都接受阵列作业

不,很多人都这样做,但不是全部。

如果他们这样做了,他们是否设置了 SGE_TASK_ID 数组 ID?

只有 Grid Engine 会设置 SGE_TASK_ID,因为这只是在 Grid Engine 中调用的变量。其他集群中间件有不同的名称,具有不同的语义。

您的问题的目标有点不清楚,但是如果您想编写一个在许多不同的集群中间件/负载均衡器/调度程序上运行的程序/系统,您应该查看 DRMAA。这将抽象变量如 SGE_TASK_ID。

于 2012-11-27T08:44:22.483 回答