我想用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 tasks
和task 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
文档中找不到...
答案 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有两个等级。