Mpi 带SLURM的非对称混合映射

Mpi 带SLURM的非对称混合映射,mpi,openmp,hpc,hybrid,slurm,Mpi,Openmp,Hpc,Hybrid,Slurm,我想用slurm做一个非对称混合映射 我的代码需要有3个mpi任务。但是,只有任务1和2需要多个cpu。mpi任务0只需要一个cpu 我目前使用此slurm配置: #SBATCH --nodes 3 #SBATCH --ntasks 3 #SBATCH --cpus-per-task 32 在这个配置中,我为每个mpi任务分配了32个cpu。但是节点0中的31个CPU未被使用,因为mpi任务0仅使用一个 您知道如何配置slurm作业来执行非对称分配吗 一个cpu用于mpi任务0,31个cpu用

我想用
slurm
做一个非对称混合映射

我的代码需要有3个mpi任务。但是,只有
任务1
2
需要多个cpu。
mpi任务0
只需要一个cpu

我目前使用此
slurm
配置:

#SBATCH --nodes 3
#SBATCH --ntasks 3
#SBATCH --cpus-per-task 32
在这个配置中,我为每个
mpi任务
分配了32个cpu。但是节点0中的31个CPU未被使用,因为
mpi任务0
仅使用一个

您知道如何配置
slurm
作业来执行非对称分配吗

一个cpu用于mpi任务0,31个cpu用于mpi任务1,31个cpu用于mpi任务2。通过这种方式,我可以最大限度地利用2个节点,而不必为一个cpu使用第3个节点


我在
slurm
文档中找不到

引入了17.11版本,因此您可以指定如下内容:

#SBATCH --nodes 1 --ntasks 1 --cpus-per-task 1
#SBATCH packjob
#SBATCH --nodes 2 --ntasks 2 --cpus-per-task 32

一个MPI列组有一个CPU,两个列组有32个CPU。

不幸的是,slurm的版本低于17.11。。但是,我通过使用cpu掩码选项来优化一个节点上的运行:“SBATCH--nodes 1`` SBATCH--exclusive`
srun--ntasks=3--cpu_bind=mask_cpu:0x1,0xFFFE,0b1FFFC000./mybinary
当我想对两个节点使用相同的解决方案时,我得到了最差的计算时间!它可能来自CPU的随机选择。。。您知道为一个任务选择同一节点上的CPU的解决方案吗?非常感谢damienfrancois