在sun grid engine中提交多个mpirun程序

Submit multiple mpirun programs in sun grid engine

我想知道如何在 Sun Grid Engine 的一个作业脚本文件中提交多个 mpi运行 程序。

假设我已经编译了program1, program2, program3 .. program100 并希望同时 运行 它们,以便每个使用 16 个 cpu 在一份工作脚本中,而无需制作 100 个工作脚本。

mpirun -np 16 program1 &
mpirun -np 16 program2 &
mpirun -np 16 program3 ....

如何将节点分配给Sun Grid 引擎中的每个程序? (我可以将SGE的hostfile分割成100份,分别提供给每个mpi运行吗?)

谢谢。

使用 SGE 实现该用例的正确方法是使用数组作业:

#$ -cwd
#$ -pe mpi 16
#$ -t 100

mpirun -np $NSLOTS ./program${SGE_TASK_ID}

-t 100 参数创建一个包含 100 个任务的数组作业,每个任务在 SGE_TASK_ID 环境变量中接收不同的值,范围从 1100

拆分主机文件是不可取的,因为这可能会干扰 MPI 库与 SGE 执行和作业监视机制之间的集成。