使用SLURM进行非对称混合映射

时间:2017-12-06 14:11:52

标签: mpi openmp hpc hybrid slurm

我想用var gen1 = { 'gps': { 'Route_1': { 'Id': 1, 'Title': 'Route 1', 'Exits': { 'North': 0, 'South': 2 }, }, 'Pallet_Town': { 'Id': 2, 'Title': 'Pallet Town', 'Exits': { 'North': 1, 'South': 0 } } } }; function getRoute (id) { for (var i = 0; i < gen1.gps.size(); i++) { if (gen1.gps[i].id == id) return gen1.gps[i]; } return false; } Object.size = function (obj) { var size = 0, key; for (key in obj) if (obj.hasOwnProperty (key)) size++; return size; }; 进行非对称混合映射。

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

我目前使用此mpi task 0配置:

slurm

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

您知道如何配置mpi task 0作业进行非对称分配吗?

slurm有一个cpu,mpi task 0有31个cpu,mpi task 1有31个cpus。通过这种方式,我可以最大限度地使用2个节点,而不需要为第一个cpu使用第3个节点。

我在mpi task 2文档中找不到...

1 个答案:

答案 0 :(得分:1)

17.11版本引入了Packed jobs,因此您可以指定类似的内容:

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

一个CPU有一个MPI等级,32个CPU有两个等级。