在slurm工作中逐项记录/时间使用

时间:2015-07-03 06:34:55

标签: memory time hpc slurm

我有一个像这样的邋work工作:

#!/bin/bash

#SBATCH -o %A.%N.out
#SBATCH -e %A.%N.err
#SBATCH --partition=compute
#SBATCH --nodes=1
#SBATCH -n 16
#SBATCH --export=ALL
#SBATCH -t 1:00:00

cmd1 input1 > o1
cmd2 o1 > o2
cmd3 o2 > o3

使用sacct,可以获得整个作业的时间和CPU使用率。我也有兴趣专门为cmd1cmd3获取这些信息。你怎么能这样做?工作步骤和srun会帮助做到这一点吗?

2 个答案:

答案 0 :(得分:2)

每步可以在sacct上单独输入一个条目。

如果您使用srun运行命令,它们将生成一个步骤,每个步骤都将受到监控并拥有自己的条目。

在此之后,您将在sacct输出中看到整个作业的一行,一个用于批处理步骤,一个用于脚本的每个步骤(srun / mpirun命令)

答案 1 :(得分:1)

您可以使用time -v获取有关所用时间和资源的高级信息。并非这指的是二进制/usr/bin/time,而不是内置time的shell:

$ /usr/bin/time -v ls /
bin   dev  home  lib64       media  opt   root  sbin  sys  usr
boot  etc  lib   lost+found  mnt    proc  run   srv   tmp  var
    Command being timed: "ls /"
    User time (seconds): 0.00
    System time (seconds): 0.00
    Percent of CPU this job got: 94%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 2136
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 126
    Voluntary context switches: 1
    Involuntary context switches: 1
    Swaps: 0
    File system inputs: 0
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

您可以将其添加到批处理脚本中的任何命令。