2

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

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

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

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

谢谢你。

4

1 回答 1

1

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

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

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

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

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

于 2015-05-21T07:02:44.717 回答