我想知道如何在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吗?)
谢谢。
答案 0 :(得分:1)
使用SGE实现该用例的正确方法是使用数组作业:
#$ -cwd
#$ -pe mpi 16
#$ -t 100
mpirun -np $NSLOTS ./program${SGE_TASK_ID}
-t 100
参数创建一个包含100个任务的数组作业,每个任务在SGE_TASK_ID
环境变量中从1
到100
接收不同的值。
分割主机文件是不可取的,因为这可能会干扰MPI库与SGE执行和作业监视机制之间的集成。