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

SageMaker中PyTorch DDP初始化超时的原因排查

SageMaker PyTorch DDP初始化超时问题排查

RuntimeError: Timed out initializing process group in store based barrier on rank: 0, for key: store_based_barrier_key:1 (world_size=2, worker_count=1, timeout=0:30:00)

这个报错的核心是主进程(rank0)无法与其他节点的进程建立通信,仅检测到1个工作进程,并非机器完全未联网。以下是常见排查方向:

  • 安全组配置错误:SageMaker训练实例的安全组必须允许同一安全组内的实例间内网通信。需确保入站规则中,放行同一安全组来源的所有端口(或至少DDP默认使用的29500-29509端口段)。如果安全组限制了内网访问,两台实例无法互通,rank0会一直等待其他节点响应。
  • 环境变量未正确传递:SageMaker会自动注入SM_HOSTS、SM_CURRENT_HOST等集群信息变量,启动脚本需基于这些变量正确设置master_addr(设为SM_HOSTS列表的第一个节点)、master_port、rank和world_size。若手动硬编码localhost作为master_addr,其他节点无法定位主节点,会导致连接失败。
  • DLC启动逻辑冲突:SageMaker PyTorch DLC已内置DDP集群启动逻辑,若手动调用torch.distributed.launch,可能与DLC的自动进程管理冲突,导致进程数不匹配或网络配置被覆盖。建议直接依赖DLC的默认启动流程,无需手动执行launch命令。
  • VPC子网配置问题:若训练实例部署在私有子网,需确保子网开启了实例间通信,且路由表配置正确(无需NAT网关,但需允许内网流量)。子网配置异常会导致实例无法通过内网互相访问。
  • 实例内部端口/防火墙限制:实例内部的防火墙(如iptables)可能限制了DDP端口,或目标端口被其他进程占用。可通过netstat -tulpn | grep 29500命令检查端口占用情况,或临时关闭防火墙测试。

针对你提到的“是否是机器未联网”:并非如此。若机器完全断网,训练任务会在初始化阶段就无法连接SageMaker控制平面,根本不会走到进程组初始化步骤。报错中worker_count=1说明至少rank0进程已正常启动并尝试建立连接,问题出在实例间的通信链路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:45:33