【发布时间】:2019-03-26 12:15:57
【问题描述】:
我使用slurm 在集群上运行作业。我想获得有关该工作的统计信息,例如已用内存、处理器数量和挂墙时间。我想在日志文件中获取此类信息。我认为 LSF 可以做到这一点(如果我没记错的话,我不会与其他平台混淆)。
【问题讨论】:
标签: cluster-computing hpc slurm
我使用slurm 在集群上运行作业。我想获得有关该工作的统计信息,例如已用内存、处理器数量和挂墙时间。我想在日志文件中获取此类信息。我认为 LSF 可以做到这一点(如果我没记错的话,我不会与其他平台混淆)。
【问题讨论】:
标签: cluster-computing hpc slurm
您可以从 Slurm 数据库中获取此信息,请参阅 https://slurm.schedmd.com/sacct.html 或 Find 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 的会计值不完全匹配。
【讨论】: