我在超级计算机上有一个用户帐户,可以用口水处理工作。
我想知道我在这台超级计算机上消耗的CPU总时间。我认为这是一个可以理解的问题,因为每个项目只能使用有限的CPU时间。我很惊讶找不到答案。
我知道有像sacct,sreport,sshare等所有这些命令...但似乎没有简单的命令,它显示使用的CPU小时。
有人可以帮我吗?
答案 0 :(得分:2)
正如其他人所评论的那样,sacct应该为您提供该信息。您将需要查看手册页以获得过去工作的信息。您可以指定--starttime和--endtime来限制查询,使其在结束/更新时与您的分配相匹配。 -l选项应该为您提供比所需更多的信息,因此可以通过--format指定所需的选项,从而获得较少的选项集。
在您的情况下,正确的答案是询问管理员。您已获得分配的时间。他们可能有一个系统,可以显示您的余额,您可以将余额与sacct的输出进行对帐。另外,如果您使用的系统具有不同的节点类型,例如高内存,GPU,MIC或旧的,则它们可能会对这些资源收取不同的费用。
答案 1 :(得分:1)
您可以通过以下信息获得CPU使用时间的概述:
sacct -SYYYY-mm-dd -u username -ojobid,start,end,alloccpu,cputime | column -t
您将可以计算出SBU的总乘以AllocCPU的CPUTime,这意味着将总(sysem + user)CPU时间乘以所用的CPU数量。
一个例子:
JobID NodeList State Start End AllocCPUS CPUTime
------------ --------------- ---------- ------------------- ------------------- ---------- ----------
6328552 tcn[595-604] CANCELLED+ 2019-05-21T14:07:57 2019-05-23T16:48:15 240 506-17:12:00
6328552.bat+ tcn595 CANCELLED 2019-05-21T14:07:57 2019-05-23T16:48:16 24 50-16:07:36
6328552.0 tcn[595-604] FAILED 2019-05-21T14:10:37 2019-05-23T16:48:18 240 506-06:44:00
6332520 tcn[384,386,45+ COMPLETED 2019-05-23T16:06:04 2019-05-24T00:26:36 72 25-00:38:24
6332520.bat+ tcn384 COMPLETED 2019-05-23T16:06:04 2019-05-24T00:26:36 24 8-08:12:48
6332520.0 tcn[384,386,45+ COMPLETED 2019-05-23T16:06:09 2019-05-24T00:26:33 60 20-20:24:00
6332530 tcn[37,41,44,4+ FAILED 2019-05-23T17:11:31 2019-05-25T09:13:34 240 400-08:12:00
6332530.bat+ tcn37 FAILED 2019-05-23T17:11:31 2019-05-25T09:13:34 24 40-00:49:12
6332530.0 tcn[37,41,44,4+ CANCELLED+ 2019-05-23T17:11:35 2019-05-25T09:13:34 240 400-07:56:00
这些字段显示在manpage中。可以将它们显示为-oOPTION(以小写形式或以正确的POSIX表示法--format ='Option,AnotherOption ...'(列表在该手册中)。
到目前为止,一切都很好。但是这里有一个很大的警告:
您在这里看到的东西非常适合让您了解运行的内容或期望的CPU /小时数。但这并不一定反映您的真实预算状态,因为在许多情况下,每个节点/分区可能都有一个额外的参数,即权重,权重是出于会计目的而设置的参数,而不是SLURM的一部分。例如,GPU节点的权重值为x3,这意味着出于预算目的,每个GPU /小时的度量单位为3 SBU,而不是1。我的意思是说,您可以使用sacct来了解CPU时间,但这并不一定反映您仍然拥有多少SBU积分。