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

如何在Python中读取srun分配的任务ID 仅使用Slurm实现

结论

仅通过Slurm即可实现该需求,无需依赖MPI等额外并行框架。

实现逻辑

Slurm在通过srun启动每一个任务进程时,会自动为每个进程注入专属的环境变量,其中SLURM_PROCID的值就是当前任务在本次启动的所有任务中的排序编号,从0开始递增,正好匹配你需要的任务ID。

修改后的test.py代码

# test.py
import os

# 读取Slurm注入的环境变量获取任务ID
taskID = int(os.environ.get("SLURM_PROCID"))

print('task ID: ' + str(taskID))

效果验证

执行命令 srun -n2 python3 test.py 后,会直接输出你预期的结果:

task ID: 0
task ID: 1

可选优化:如果需要支持在非Slurm环境下本地运行脚本,可以给os.environ.get加默认值,例如int(os.environ.get("SLURM_PROCID", 0)),避免环境变量不存在时报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 10:45:10