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

SLURM sbatch执行PyTorch分布式任务超时,交互式srun成功

问题诊断与解决方案

核心问题定位

你的SBATCH脚本存在关键参数错误:--node_rank 使用了 $SLURM_PROCID,但该变量是全局任务ID(多节点场景下取值为0、1),而torch.distributed.run要求--node_rank传入节点序号(从0开始),正确变量应为$SLURM_NODEID。

这个错误会导致节点无法识别自身集群角色,直接引发节点会合(rendezvous)阶段的Socket超时。

修正后的SBATCH脚本

#!/bin/bash
#SBATCH --job-name=rtx-distribution-test        # name
#SBATCH --nodes=2                               # nodes
#SBATCH --ntasks-per-node=1                     # crucial - only 1 task per dist per node!
#SBATCH --cpus-per-task=4                       # number of cores per tasks
#SBATCH --partition=clara       
#SBATCH --gres=gpu:rtx2080ti:1                  # number of gpus
#SBATCH --time 01:15:00                         # maximum execution time (HH:MM:SS)
#SBATCH --output=clara_rtx/%x-%j.out            # output file name
#SBATCH --mail-type=ALL

# 仅在主节点安装依赖,避免多节点重复执行
if [ "$SLURM_NODEID" -eq 0 ]; then
    module load Python
    pip install --user -r requirements.txt
fi
# 等待主节点依赖安装完成
srun wait

MASTER_PORT=12340
MASTER_ADDR=$(scontrol show hostnames "$SLURM_JOB_NODELIST" | head -n 1)
echo "MASTER_ADDR="$MASTER_ADDR

GPUS_PER_NODE=1

export NCCL_DEBUG=INFO
LOGLEVEL=INFO

# 关键修正:--node_rank 使用 SLURM_NODEID 而非 SLURM_PROCID
srun bash -c "NCCL_DEBUG=INFO python -m torch.distributed.run --nproc_per_node $GPUS_PER_NODE --nnodes $SLURM_NNODES --node_rank $SLURM_NODEID --master_addr $MASTER_ADDR --master_port $MASTER_PORT torch-distributed-gpu-test_no_flock.py"

额外优化点

  • 依赖安装优化:原脚本srun pip install会在所有节点重复执行,改为仅主节点执行后等待,减少冗余操作。
  • 环境一致性:将module load Python放在条件判断外,确保所有节点加载相同Python环境(若集群模块系统需要全局加载)。

验证逻辑补充

交互式执行成功是巧合:你手动指定了--master_addr clara06,且交互式srun的单任务场景下,$SLURM_PROCID恰好等于SLURM_NODEID(0和1),但这并非正确用法。SBATCH场景下若调度到不同节点,SLURM_PROCID取值可能与节点序号不匹配,直接导致集群连接失败。

已尝试方法的无效原因

  • torchrun与torch.distributed.run是同一工具的不同调用方式,核心参数错误未修正则仍会超时。
  • 引号替换不影响变量解析的核心问题,因此无效。
  • 更换GPU型号无法解决节点会合的配置错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:49:50