我想知道Torque是否足够智能,可根据您请求的mpi核心数分配正确数量的节点。对于我们的集群,我们有异构节点,只需要放置所需的节点数和每个节点的处理器就太浪费了。所以我想知道你是否可以做这样的事情
qsub -I -l procs:1000
mpiexec -n 1000 mympijob
但是,扭矩仅使用此命令分配一个节点(因为我没有指定节点数)。有没有一种方法可以根据我的proc数量确定正确数量的节点,以便最大限度地提高效率?
补充工具栏 - 我们很快就会转而使用SLURM,这是否在功能范围内?
答案 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个核心。