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

时间:2015-05-21 05:54:33

标签: openmpi sungridengine supercomputers

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

假设我编译了program1,program2,program3 .. program100 并希望同时运行它们,使每个使用16 cpus 在一个作业脚本中,没有制作100个作业脚本。

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

如何将节点分发到Sun Grid引擎中的每个程序? (我可以将SGE的主机文件拆分为100并将它们提供给每个mpirun吗?)

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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