You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:SLURM数组单GPU单任务并行仅两GPU运行的问题

SLURM任务数组仅启动2个GPU任务的问题排查与解决

可能的原因

从你提供的scontrol show job输出能看到,每个数组任务被分配了2个CPU核心(NumCPUs=2)。如果节点CPU核心总数有限,或者SLURM默认的CPU分配导致节点CPU资源被占满,剩下的任务就会进入PD(等待资源)状态。此外,也可能是SLURM分区或QOS配置限制了单个用户同时运行的任务数量。

解决方案

1. 减少每个任务的CPU分配

修改SLURM脚本,明确指定每个任务仅需1个CPU核心,降低CPU资源占用,让4个任务能同时启动:

#!/bin/bash

#SBATCH --job-name=train
#SBATCH --array=0-3
#SBATCH --nodes=1
#SBATCH --gpus-per-node=1
#SBATCH --cpus-per-task=1  # 添加该行限制CPU分配

srun python train.py --config=$SLURM_ARRAY_TASK_ID

2. 检查用户任务数限制

执行以下命令查看你的账号是否有同时运行任务数的限制:

sacctmgr show user $USER format=Name,MaxJobs

如果MaxJobs值为2,需联系集群管理员调整QOS或用户限制。

3. 确认节点GPU资源配置

检查节点是否正确配置了4个GPU:

sinfo -N -O NodeName,Gres

确保目标节点(chili)的Gres字段显示gpu:A6000:4。

4. 验证CPU资源空闲情况

提交任务前,用htop或nproc查看节点的CPU总数和当前占用情况,确保有足够空闲CPU核心供4个任务使用。

内容的提问来源于stack exchange,提问作者Vivek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:05:34