繁体   English   中英

如何在Slurm集群管理器中知道一项作业的每个过程的状态?

[英]How to know the status of each process of one job in the slurm cluster manager?

使用Slurm集群管理器将一个作业分批处理多个流程后,是否有办法知道每个流程的状态(运行或完成)? 可以在python脚本中实现吗?

如果您提到的过程是不同的步骤,那么sacct可以为您提供信息,如@Christopher Bottoms所述。

但是,如果这些过程在单个步骤中是不同的任务,则可以使用此脚本该脚本使用并行SSH在计算节点上运行“ ps”命令并提供汇总视图,如@Tom de Geus所建议。

只需使用sacct随附的命令sacct。

鉴于此代码( my.sh ):

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks=2

srun -n1 sleep 10 &
srun -n1 sleep 3

wait

我运行它:

sbatch my.sh

然后用sacct检查它:

sacct

这给了我每步信息:

     JobID    JobName  Partition    Account  AllocCPUS      State ExitCode
---------- ---------- ---------- ---------- ---------- ---------- --------
8021        my.sbatch    CLUSTER        me          2     RUNNING      0:0
8021.0          sleep                   me          1     RUNNING      0:0
8021.1          sleep                   me          1   COMPLETED      0:0

sacct有很多选项可以自定义其输出。 例如,

sacct --format='JobID%6,State'

只会提供您的ID(最多6个字符)和作业的当前状态:

 JobID      State
------ ----------
  8021    RUNNING
8021.0    RUNNING
8021.1  COMPLETED

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM