用途:指导在 SLURM 集群上提交 Megatron-LM 分布式训练作业,提供最小 sbatch 脚本与多节点启动约定。
主要能力与必要配置:需从所有节点可见的共享工作树路径提交,并在脚本中先 cd 到该路径;每节点一个 srun 任务,用 uv run python -m torch.distributed.run 启动(不要用裸 torchrun)。MASTER_ADDR 由 scontrol show hostnames "$SLURM_JOB_NODELIST" | head -n1 取得,并设置 MASTER_PORT、NNODES=${SLURM_NNODES}、GPUS_PER_NODE=<GPUS_PER_NODE>、WORLD_SIZE=$((NNODES * GPUS_PER_NODE));向 torch.distributed.run 传 --nnodes、--nproc-per-node、--node-rank、--master-addr、--master-port。提交前在共享文件系统上执行一次 uv sync --extra training --extra dev(或 --extra lts),使 .venv 对所有节点可见。
CUDA_DEVICE_MAX_CONNECTIONS 取值因硬件与并行模式而异,不要无条件导出:Blackwell/GB200 不需要且设置无效;Blackwell 之前(Hopper/Ampere)在 TP>1 或 CP>1 且非 FSDP 时为 1(否则触发断言);Torch-FSDP2 或 Megatron-FSDP 不得设为 1;启用 overlap_moe_expert_parallel_comm 时为 32。
监控与诊断:可用 squeue -j "$JOB_ID" -o "%.10i %.8T %.10M %.6D %R"、sacct、scancel;建议轮询产物而非只等 squeue 状态。故障时扫描所有 rank 的 stderr,最早的非 NCCL Python traceback 通常是根因。常见错误:OOM 需记录 rank、阶段、batch、序列长度与并行度;形状/整除错误检查 WORLD_SIZE=TP×DP×CP×PP 与 num_attention_heads % TP == 0;导入错误多为工作树、uv sync 或 PYTHONPATH 问题;无 Python traceback 的 NCCL 失败检查分配、端口与 MASTER_ADDR。日志和检查点须写入共享存储。
限制:需具备向 GPU 分区提交作业的权限,且代码、数据、检查点、输出路径在所有节点一致可达;其他细节暂未提供。