如何使用Slurm命令查询已完成任务运行的集群节点ID?
查询Slurm已完成任务的运行节点
以下几个Slurm命令可以帮你定位已完成任务的运行节点,验证是否和特定节点相关:
1. sacct(最推荐)
这是Slurm的核心账户查询工具,能直接拉取任务的节点运行信息。执行命令时指定任务ID和需要的字段:
sacct -j <你的任务ID> --format=JobID,NodeList,JobName
NodeList字段会明确显示任务运行的所有节点:单节点任务会显示单个节点ID,跨节点任务会列出所有涉及的节点(比如node001或node[001-003])- 要是记不清具体任务ID,可以用时间范围过滤:
sacct --starttime 2024-05-01 --endtime 2024-05-10 --format=JobID,NodeList,State
2. scontrol
如果任务刚结束没多久,用scontrol可以查看更详细的任务历史细节:
scontrol show job <你的任务ID>
在输出里找NodeList字段,就能看到任务运行的节点。如果是任务数组,要指定子任务ID,比如<任务ID>_5。
3. 直接看任务输出日志
默认情况下,Slurm会生成名为slurm-<任务ID>.out的日志文件,里面通常会记录任务运行的节点hostname或ID,直接查看日志就能快速确认。
验证是否始终在同一节点
- 如果
sacct返回的NodeList是单个节点,说明任务全程在该节点运行 - 如果显示多个节点,要么是任务本身跨节点调度,要么是中途被Slurm重新分配到其他节点,结合
Elapsed字段的运行时间可以辅助判断是否有节点切换
内容的提问来源于stack exchange,提问作者BlackPhoenix
相关产品推荐
相关产品推荐

