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

单节点指定任务数时Slurm无法运行MPI作业

问题分析与解决方案

问题描述

我在HPC集群上运行单进程需大内存的计算任务,使用一台配备512GB内存、28核的节点。由于单个进程所需内存超过512/28≈18.29GB,我特意不饱和使用节点:运行2个或12个进程时无异常,但运行6个或7个进程时出现以下错误:

srun: error: node058: tasks 3-5: Exited with exit code 255

我的Slurm脚本相关部分如下:

#!/bin/bash -l
#SBATCH --nodes=1
#SBATCH --tasks-per-node=6
#SBATCH --hint=nomultithread
#SBATCH --partition=mem512
#SBATCH --time=1008:00:00
#SBATCH --mail-type=NONE
#SBATCH --job-name=$NAME
#SBATCH --exclusive
#SBATCH --export=NONE

export SLURM_EXPORT_ENV=ALL
export I_MPI_DEBUG=5
export I_MPI_PMI_LIBRARY=/usr/lib64/libpmi.so.0


#set period as decimal point
export LC_NUMERIC=C

ulimit -s unlimited
ulimit -l hard


export TMPDIR=/scratch/$SLURM_JOB_USER/$SLURM_JOBID


srun --cpu-bind=cores  some_program  < input 1> $SLURM_SUBMIT_DIR/output 2>error

可能原因及解决方法

1. 内存分配不均

虽然用了--exclusive独占节点,但Slurm默认可能按核心比例分配内存。6/7个进程的数量刚好触发节点内存分片的边界,导致部分进程拿到的内存低于单进程需求,触发退出。

解决方法:

  • 显式指定单任务内存配额,假设单进程需要24GB,添加SBATCH参数:
    #SBATCH --mem-per-cpu=24G
    
  • 或者结合单任务单核心配置,直接锁定节点全部内存:
    #SBATCH --cpus-per-task=1
    #SBATCH --mem=512G
    

2. NUMA节点内存局部性问题

28核节点通常分为2个NUMA节点(各14核),运行2/12个进程时能均匀分布在NUMA节点,内存分配充足;但6/7个进程可能打破这种平衡,导致部分进程跨NUMA节点绑定,触发内存分配失败。

解决方法:

  • 修改srun的CPU绑定策略为NUMA节点级:
    srun --cpu-bind=numa some_program < input 1> $SLURM_SUBMIT_DIR/output 2>error
    
  • 添加SBATCH参数强制任务按NUMA节点分片分配:
    #SBATCH --distribution=block:block
    

3. 临时目录空间耗尽

6/7个进程同时写入/scratch下的临时目录,可能导致该分区空间不足,触发进程异常退出(exit code255常与资源不足相关)。

解决方法:

  • 检查/scratch分区可用空间,确保容量足够;
  • 若程序允许,将临时目录切换到内存文件系统(注意不要超过节点内存):
    export TMPDIR=/dev/shm/$SLURM_JOBID
    

4. MPI通信或资源获取失败

Intel MPI的I_MPI_DEBUG=5已开启调试,建议查看error文件中的MPI日志,确认是否是进程间通信失败或资源获取超时导致的退出。

额外排查步骤:

  • 给srun添加--verbose参数,获取更详细的Slurm调度日志:
    srun --verbose --cpu-bind=cores some_program < input 1> $SLURM_SUBMIT_DIR/output 2>error
    
  • 用numactl --hardware查看节点NUMA拓扑,确认内存分布后调整任务分配策略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:01:05