1

我想在 64 节点 Sun Grid Engine 集群的所有活动节点上运行作业,使用 qsub 计划。我目前正在使用数组作业变量,但有时程序会在同一个节点上多次调度。

qsub -t 1-64:1 -S /home/user/.local/bin/bash program.sh

是否可以在所有节点上并行地为每个节点安排一个作业?

4

2 回答 2

2

您可以使用并行环境。创建一个并行环境:

qconf -ap "parallel_environment_name"

并将“allocation_rule”设置为 1,这意味着所有进程都必须驻留在不同的主机上。然后在提交阵列作业时,指定要与并行环境一起使用的节点数。在你的情况下:

qsub -t 1-64:1 -pe "parallel_environment_name" 64 -S /home/user/.local/bin/bash program.sh

有关更多信息,请查看以下链接:http ://linux.die.net/man/5/sge_pe和在DanT 的 Grid 博客上配置新的并行环境(链接不再有效;在wayback machinesoftpanorama上有副本)。

于 2013-10-30T10:31:26.150 回答
0

我有一个 bash 终端,你可以运行

for host in $(qhost | tail -n +4 | cut -d " " -f 1); do qsub -l hostname=$host program.sh; done
  • "-l hostname=" 指定在哪个主机上运行作业。
  • for 循环遍历 qstat 返回的结果以获取每个节点并调用指定要使用的主机的命令。
于 2013-10-28T19:01:03.407 回答