如何为Slurm各分区配置GPU使用上限?
解决Slurm分区GPU使用限制的最优方案
前提条件
确保Slurm节点已正确配置GPU资源,在slurm.conf的节点定义中添加Gres=gpu:<单节点GPU总数>,示例:
NodeName=node[01-10] Gres=gpu:4 CPUs=64 Mem=256000 ...
修改分区配置
在slurm.conf的分区配置中,通过MaxGres参数限制单作业GPU使用量,对应需求的配置如下:
- small分区:限制单作业最多使用1块GPU
PartitionName=small State=UP Nodes=ALL MaxTime=INFINITE MaxNodes=2 DefMemPerNode=32000 MaxMemPerNode=32000 MaxCPUsPerNode=16 Default=YES MaxGres=gpu:1 - medium分区:限制单作业最多使用1块GPU
PartitionName=medium State=UP Nodes=ALL MaxTime=INFINITE MaxNodes=2 DefMemPerNode=64000 MaxMemPerNode=64000 MaxCPUsPerNode=32 MaxGres=gpu:1 - large分区:限制单作业最多使用2块GPU
PartitionName=large State=UP Nodes=ALL MaxTime=INFINITE MaxNodes=3 DefMemPerNode=128000 MaxMemPerNode=128000 MaxCPUsPerNode=64 MaxGres=gpu:2 - entire分区:保持无限制,无需添加GPU相关参数
PartitionName=entire State=UP Nodes=ALL MaxTime=INFINITE MaxNodes=INFINITE MaxMemPerNode=INFINITE MaxCPUsPerNode=INFINITE
配置说明
MaxGres=gpu:N:限制单个作业最多可申请N块GPU,不受作业使用节点数影响- 若需限制单节点最多使用N块GPU,替换为
MaxGresPerNode=gpu:N - 可选添加
DefGres=gpu:1,设置该分区作业默认申请1块GPU,避免用户未指定时浪费资源
使配置生效
修改slurm.conf后,执行命令重载配置(无需重启服务):
scontrol reconfigure
验证限制
提交测试作业验证规则是否生效:
# 在small分区提交申请2块GPU的作业,应被拒绝 sbatch -p small --gres=gpu:2 --wrap="nvidia-smi"
内容的提问来源于stack exchange,提问作者proshir
相关产品推荐
相关产品推荐

