Torque / OpenMPI根据处理器数量动态分配节点

时间:2015-03-04 23:27:01

标签: mpi pbs torque slurm

我想知道Torque是否足够智能,可根据您请求的mpi核心数分配正确数量的节点。对于我们的集群,我们有异构节点,只需要放置所需的节点数和每个节点的处理器就太浪费了。所以我想知道你是否可以做这样的事情

qsub -I -l procs:1000
mpiexec -n 1000 mympijob

但是,扭矩仅使用此命令分配一个节点(因为我没有指定节点数)。有没有一种方法可以根据我的proc数量确定正确数量的节点,以便最大限度地提高效率?

补充工具栏 - 我们很快就会转而使用SLURM,这是否在功能范围内?

1 个答案:

答案 0 :(得分:1)

通常,在分配资源之后我们所做的事情不是调度程序可以控制的。

在这种情况下,

mpirun/mpiexec -n 1000

在schduler分配资源后执行。

最好的方法是使用调度程序设置的环境变量

$MPI_HOSTS

作为通过开关-n传递的值。

示例:

mpirun $MPI_HOSTS <your program of choice>

您可以通过向节点添加ppn参数来请求所需的核心数。

qsub -l nodes=2:ppn=16

这将在两个节点中分配32个核心。