使用qsub将数组作业放入集群时,全局变量SGE_TASK_ID将设置为数组作业ID。我在我在集群上运行的shell脚本中使用它,其中每个阵列作业需要根据SGE_TASK_ID执行不同的操作。这是集群调度程序执行此操作的常用方法,还是它们都采用不同的方法?
答案 0 :(得分:0)
大多数调度程序都有办法执行此操作,但在不同的设置中可能略有不同。在TORQUE中,变量称为$ PBS_ARRAYID,但它的工作原理相同。
答案 1 :(得分:0)
所有群集计划程序都采用阵列作业
没有。许多人都这样做,但不是全部。
如果他们这样做,他们是否设置了SGE_TASK_ID数组ID?
只有Grid Engine会设置SGE_TASK_ID,因为这只是在Grid Engine中调用变量的内容。其他集群中间件具有不同的名称,具有不同的语义。
目前还不清楚你的问题在哪里,但如果你想编写一个在许多不同的集群中间件/负载均衡器/调度程序上运行的程序/系统,你应该研究DRMAA。这将抽象变量,如SGE_TASK_ID。