sacct:我怎样才能将{CPUTimeRAW和CPUTime}转换为实时秒?

时间:2017-04-09 14:17:26

标签: slurm

我的目标是根据用户分配CPU的时间(以秒为单位)向用户收费。测量它的最佳参数是什么?

我跑步的方式:

示例1:

switch (true)
sbatch  -N1 run.sh
Submitted batch job 20
scontrol update jobid=20 TimeLimit=0-00:01

我把时间限制为1分钟,但似乎超过了29秒的时间限制。这是正常的吗?

示例2:

sacct -o totalcpu,cputime,cputimeraw,Elapsed,SystemCPU,time -j 20
  TotalCPU    CPUTime CPUTimeRAW    Elapsed  SystemCPU  Timelimit
---------- ---------- ---------- ---------- ---------- ----------
  00:00:00   00:11:52        712   00:01:29              00:01:00
  00:00:00   00:11:52        712   00:01:29
sbatch  -N1 run.sh
Submitted batch job 21
scontrol update jobid=21 TimeLimit=0-00:02

我把时间限制为2分钟,但似乎超过了22秒的时间限制。这是正常的吗?

如何将{sacct -o totalcpu,cputime,cputimeraw,Elapsed,SystemCPU,time -j 21 TotalCPU CPUTime CPUTimeRAW Elapsed SystemCPU Timelimit ---------- ---------- ---------- ---------- ---------- ---------- 00:00:00 00:18:56 1136 00:02:22 00:02:00 CPUTimeRAW}转换为CPUTime秒?根据我展示的例子,我无法找到它们之间的关系。

  

CPUTimeRaw =单位是cpu-seconds。

1 个答案:

答案 0 :(得分:1)

时间限制的小超限是正常的,这取决于KillWait中的slurm.conf标记:

  

给予作业之间的过程的间隔(以秒为单位)   SIGTERM和SIGKILL在达到其时间限制时发出信号。如果工作   无法在指定的时间间隔内正常终止,它将是   强行终止。默认值为30秒。

为用户收费:

CPUTime = (Elapsed time) x (the number of CPUs allocated)

所以CPUTime(或CPUTimeRaw,以秒表示的相同用法)是他们实际使用的内容以及可以收费的内容。