slurm: производить статистику заданий в лог-файлах - PullRequest
0 голосов
/ 26 марта 2019

Я использую slurm для запуска заданий в кластере.Я хотел бы получить статистику о работе, такую ​​как используемая память, количество процессоров и время простоя.Я хотел бы получить такую ​​информацию в файле журнала.Я думаю, что это было возможно с LSF (если я правильно помню, и я не путаюсь с какой-то другой платформой).

1 Ответ

1 голос
/ 27 марта 2019

Вы можете получить эту информацию из базы данных Slurm, см. https://slurm.schedmd.com/sacct.html или . Узнайте время ЦП и использование памяти для задания Slurm . Например. sacct --jobs=12345 --format=NCPUS,MaxRSS,CPUTime.

Примечание: вы можете добавить это к сценарию эпилога. Вот пример 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.

...