【问题标题】:Torque/OpenMPI dynamically allocate nodes based on number of processorsTorque/OpenMPI 根据处理器数量动态分配节点
【发布时间】:2015-05-06 04:30:59
【问题描述】:

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

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

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

侧边栏 - 我们可能很快就会切换到 SLURM,这在能力范围内吗?

【问题讨论】:

  • 你使用什么调度器? Torque 可以做到这一点,但调度程序必须分配节点。
  • 这适用于 Torque,但您还需要使用调度程序,例如 Moab。

标签: mpi pbs torque slurm


【解决方案1】:

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

在这种情况下,

mpirun/mpiexec -n 1000

在调度器分配资源后执行。

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

$MPI_HOSTS

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

示例:

mpirun $MPI_HOSTS <your program of choice>

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

qsub -l nodes=2:ppn=16

这会在两个节点中分配 32 个内核。

【讨论】:

  • nodes 2:ppn=16 需要释放两个节点,每个节点有 16 个处理器。如果当前您有 3 个节点,每个节点只有 8 个处理器,但由于资源管理声明而无法使用,该怎么办?
猜你喜欢
  • 2011-10-18
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多