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

通过Slurm REST API提交OpenMPI作业失败,sbatch提交可正常运行

问题原因
  1. 报错信息中auth_g_unpack: remote plugin_id 101 not found的plugin_id 101对应Slurm的auth/munge身份认证插件,报错本质是多节点运行srun时,不同节点的Slurm进程无法完成身份校验,核心诱因是作业运行环境缺少必要的Slurm认证相关环境变量。
  2. sbatch提交和REST API提交存在关键配置差异:本地sbatch提交时使用了#SBATCH --export=ALL参数,会将当前会话所有环境变量(包括Slurm认证、MUNGE相关变量)全部传递到作业运行环境;但REST API提交的请求体中没有配置环境变量传递规则,仅靠get_user_environment=1只能拉取用户默认shell环境,不会包含Slurm API会话的认证相关变量。
  3. 部分集群采用模块方式管理Slurm、MPI依赖,作业脚本未显式加载对应模块时,可能出现srun调用版本和集群默认版本不匹配,进而触发认证插件不识别的问题。
解决方案
  • 在REST API的job配置字段中新增environment参数,显式开启环境变量全量传递,v0.0.37版本的配置示例为添加"environment": ["SLURM_EXPORT_ENV=ALL"]。
  • 补充作业脚本的依赖初始化逻辑,在执行srun前先加载集群对应的Slurm、PMI2、MPI模块,避免运行环境二进制版本不匹配,示例脚本如下:
    #!/bin/bash
    # 模块名根据集群实际配置调整
    module load slurm pmi2 openmpi
    srun --mpi=pmi2 -n 3 hostname
    
  • 调整后的完整POST请求体参考如下:
    {
        "job":  {
        "name":"demo",
        "partition":"compute",
        "standard_output":"%j.out",
        "standard_error":"%j.err",
        "nodes":3,
        "tasks":3,
        "tasks_per_node":1,
        "get_user_environment":1,
        "current_working_directory":"/SHARED_NFS_STORAGE",
        "environment": ["SLURM_EXPORT_ENV=ALL"]
        },
        "script":"#!/bin/bash\nmodule load slurm pmi2 openmpi\nsrun --mpi=pmi2 -n 3 hostname"
    }
    
  • 若上述配置仍无法解决问题,可检查slurmrestd服务的AuthType配置,确认其与所有计算节点的AuthType一致(均为auth/munge),同时验证所有节点的munge key完全相同、权限配置正确(权限为600,属主为munge用户)。
  • 可先通过REST API提交单节点srun hostname作业验证基础运行环境正常后,再排查多节点MPI场景的问题,缩小故障范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:36:03