slurm:在日志文件中生成统计信息作业

时间:2019-03-26 12:15:58

标签: cluster-computing hpc slurm

我使用slurm在集群上运行作业。我想获取有关该工作的统计信息,例如使用的内存,处理器数量和停工时间。我想在日志文件中获取此类信息。我认为使用LSF可以做到这一点(如果我没记错的话,并且不会与其他平台混淆)。

1 个答案:

答案 0 :(得分:1)

您可以从Slurm数据库中获取此信息,请参见https://slurm.schedmd.com/sacct.htmlFind out the CPU time and memory usage of a slurm job。例如。 sacct --jobs=12345 --format=NCPUS,MaxRSS,CPUTime

注意:您可以将其添加到Epilog脚本中。这是epilog.srun的示例:

#!/bin/sh
TMPDIR="/local"

# Append job usage info to job stdout
stdoutfname=`scontrol show job ${SLURM_JOB_ID} --details | grep "StdOut=" | sed -e 's/.*StdOut=\([^\s][^\s]*\)/\1/'`

if [ -w "${stdoutfname}" ] && [ "${QTMPDIR}" != "" ]; then
  sacct --format JobID,jobname,AveCPUFreq,AveDiskRead,AveRSS,cputime,MaxDiskWrite  -j ${SLURM_JOB_ID} >> ${stdoutfname}

或者,您可以在脚本内部使用/usr/bin/time -v <your command>(具有time的完整路径,请参见https://stackoverflow.com/a/774601/6352677)。这将在日志中,但与Slurm的会计值不完全匹配。