是否所有集群调度程序都接受阵列作业,如果是,那么它们是否设置了SGE_TASK_ID数组ID?

时间:2012-06-13 13:44:32

标签: scheduled-tasks cluster-computing qsub

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

2 个答案:

答案 0 :(得分:0)

大多数调度程序都有办法执行此操作,但在不同的设置中可能略有不同。在TORQUE中,变量称为$ PBS_ARRAYID,但它的工作原理相同。

答案 1 :(得分:0)

  

所有群集计划程序都采用阵列作业

没有。许多人都这样做,但不是全部。

  

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

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

目前还不清楚你的问题在哪里,但如果你想编写一个在许多不同的集群中间件/负载均衡器/调度程序上运行的程序/系统,你应该研究DRMAA。这将抽象变量,如SGE_TASK_ID。