我想在使用qsub安排的64节点Sun Grid Engine群集的所有活动节点上运行作业。我目前正在使用array-job变量,但有时程序会在同一节点上多次调度。
qsub -t 1-64:1 -S /home/user/.local/bin/bash program.sh
是否可以并行地在所有节点上为每个节点安排一个作业?
答案 0 :(得分: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和Configuring a new parallel environment DanT's Grid Blog(链接不再有效; the wayback machine和softpanorama上有副本)
答案 1 :(得分:0)
我有一个bash终端,你可以运行
for host in $(qhost | tail -n +4 | cut -d " " -f 1); do qsub -l hostname=$host program.sh; done