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