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

使用Slurm REST API(解析器v0.0.40)无法提交GRES值的咨询

问题

通过Slurm REST API(版本0.0.40)提交作业时,尝试在请求的job对象中设置gres参数,但请求返回警告提示该字段被忽略。同时time_limit参数也触发了类型不匹配警告。

请求详情:

url: /slurm/0.0.40/job/submit
method: POST
data: {
   "script":"#!/bin/bash \n nvidia-smi",
   "job": {
       "environment": ["PATH=/bin/:/usr/bin/:/sbin/"],
       "gres":"gpu:2",
       "time_limit": 120,
       "name":"test-gpu",
       "standard_output":"output/slurmout-%j.out",
       "current_working_directory":".../slurmapis/5fcceebe-f538-40fa-99c4-66faa71945f7"
    }
}

返回的响应警告:

{..."warnings":[
      {
         "description":"Expected OpenAPI type=object (Slurm type=dictionary) but got OpenAPI type=integer (Slurm type=64 bit integer)",
         "source":"#/job/time_limit/"
      },
      {
         "description":"Ignoring unknown field ""gres"" of type string in DATA_PARSER_JOB_DESC_MSG",
         "source":"#/job/gres/"
      }
   ]...}

询问:该功能是否未开放?是否有可行替代方案?


解答

关于GRES功能的支持情况

Slurm REST API 0.0.40版本确实未开放在job对象中直接设置gres字段的功能,这个版本的API schema里没有定义该字段,所以解析器会直接忽略传入的gres参数,这是版本局限性导致的。

可行替代方案

  • 在提交脚本中嵌入SBATCH指令:
    直接在作业脚本开头添加#SBATCH --gres=gpu:2,Slurm会识别该指令并分配对应的GPU资源,无需在API请求中额外设置。修改后的脚本示例:

    #!/bin/bash
    #SBATCH --gres=gpu:2
    nvidia-smi
    
  • 升级Slurm REST API版本:
    从0.0.45版本开始,Slurm REST API已经支持在job对象中设置gres字段。升级后注意调整参数格式,比如time_limit需要改为对象格式("time_limit": {"seconds": 120}),可以同时消除之前的类型警告。

  • 通过sbatch命令提交作业:
    如果无法升级API,可以直接在服务器上调用sbatch命令提交作业。先生成包含SBATCH指令的脚本文件,再执行sbatch <脚本路径>,这种方式完全兼容所有Slurm参数,包括GRES设置。

额外提示:消除time_limit警告

0.0.40版本的API要求time_limit为对象类型,而非整数,正确的参数格式应为:

"time_limit": {"seconds": 120}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 20:55:06