我想在 64 节点 Sun Grid Engine 集群的所有活动节点上运行作业,使用 qsub 计划。我目前正在使用数组作业变量,但有时程序会在同一个节点上多次调度。
qsub -t 1-64:1 -S /home/user/.local/bin/bash program.sh
是否可以在所有节点上并行地为每个节点安排一个作业?
我想在 64 节点 Sun Grid Engine 集群的所有活动节点上运行作业,使用 qsub 计划。我目前正在使用数组作业变量,但有时程序会在同一个节点上多次调度。
qsub -t 1-64:1 -S /home/user/.local/bin/bash program.sh
是否可以在所有节点上并行地为每个节点安排一个作业?
您可以使用并行环境。创建一个并行环境:
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 machine和softpanorama上有副本)。
我有一个 bash 终端,你可以运行
for host in $(qhost | tail -n +4 | cut -d " " -f 1); do qsub -l hostname=$host program.sh; done