【发布时间】:2014-08-06 13:49:16
【问题描述】:
我有已完成作业的 ID。如何查看其详细信息,例如执行时间、分配的节点等?我记得 SGE 有一个命令(qacct?)。但我在 PBS 或 Torque 上找不到它。谢谢。
【问题讨论】:
-
如果 PBS 与 Moab 集成,我可以使用 'checkjob' 命令获取作业信息。如果没有集成摩押,我仍然想知道该怎么做。
我有已完成作业的 ID。如何查看其详细信息,例如执行时间、分配的节点等?我记得 SGE 有一个命令(qacct?)。但我在 PBS 或 Torque 上找不到它。谢谢。
【问题讨论】:
由于作业统计需要 root 访问权限才能查看已完成的作业,或者集群管理员已安装 pbstools(均不受用户控制),我发现最简单的做法是放置一个
tracejob $PBS_JOBID
在提交脚本的最后一行。如果调度程序是 MAUI,那么checkjob -vv $PBS_JOBID 是另一种选择。这些命令可以重定向到单独的输出文件:
tracejob $PBS_JOBID > $PBS_O_WORKDIR/$PBS_JOBID.tracejob
还应该可以将此作为用户结语脚本运行,以使其在作业之间更易于重用。
【讨论】:
我正在查看此线程,以搜索如何在运行 PBSPro 19.2.3 的 HPC 中执行此操作,从 PBSPro 18 开始,该解决方案类似于 John Damm Sørensen 的 reply,但使用 -w 标志而不是 @ 987654324@ 以单行显示每个字段的输出,您需要添加-x 标志以查看已完成作业的详细信息,因此您无需在作业中运行它脚本。 (第 203 页,Reference Guide 的第 2.59.2.2 节)
qstat -fxw $PBS_JOBID
然后你可以grep从中取出请求的信息,比如使用的资源、退出状态等:
qstat -fxw $PBS_JOBID | grep -E "resources_used|Exit_status|array_index"
【讨论】:
对于 Torque,您可以使用“tracejob”命令检查至少部分信息。
官方文档:
您应该注意到的一件事是,此工具可以方便地解析日志。默认情况下,它只会检查最后一天。请务必阅读“-n”选项的文档。
【讨论】:
tracejob 命令的明确示例来改进此答案,并显示典型输出示例。
在基于扭矩的系统上。我发现从作业中获取统计信息的最佳方法是将其添加到提交的作业脚本的末尾。输出将被添加到 STDOUT 文件中。
qstat -f -1 $PBS_JOBID
【讨论】:
目前,在 TORQUE 中获取此信息的唯一方法是查看会计日志。您可以使用 grep 获取职位 ID 并查看该职位的会计记录,如下所示:
04/30/2014 15:20:18;Q;5000.bob;queue=batch
04/30/2014 15:33:00;S;5000.bob;user=dbeer group=dbeer jobname=STDIN queue=batch ctime=1398892818 qtime=1398892818 etime=1398892818 start=1398893580 owner=dbeer@bob exec_host=bob/0
04/30/2014 15:36:20;E;5000.bob;user=dbeer group=dbeer jobname=STDIN queue=batch ctime=1398892818 qtime=1398892818 etime=1398892818 start=1398893580 owner=dbeer@bob exec_host=bob/0 session=22933 end=1398893780 Exit_status=0 resources_used.cput=00:00:00 resources_used.mem=2580kb resources_used.vmem=37072kb resources_used.walltime=00:03:20
不幸的是,要直接执行此操作,您必须具有 root 访问权限。为了解决这个问题,有诸如pbsacct 之类的工具可以帮助更好地浏览这个问题。 pbsacct 是 pbstools 包的一部分,该链接将带您进入。
【讨论】: