我有已完成工作的 ID。如何查看其详细信息,例如执行时间、分配的节点等?我记得 SGE 有一个命令(qacct?)。但我在 PBS 或 Torque 上找不到它。谢谢。
5 回答
由于作业记帐需要 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 的回复,但-w
使用该标志而不是-1
在单个中显示每个字段的输出行,您还需要添加-x
标志以查看已完成作业的详细信息,因此您无需在作业脚本中运行它。(第 203 页,参考指南第 2.59.2.2 节)
qstat -fxw $PBS_JOBID
然后您可以从中grep
取出请求的信息,例如使用的资源、退出状态等:
qstat -fxw $PBS_JOBID | grep -E "resources_used|Exit_status|array_index"
现在,在 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 软件包的一部分,该链接将带您前往该软件包。
对于 Torque,您可以使用“tracejob”命令检查至少部分信息。
官方文档:
您应该注意的一件事是,此工具可以方便地解析日志。默认情况下,它只会检查最后一天。请务必阅读“-n”选项的文档。
在基于扭矩的系统上。我发现从作业中获取统计信息的最佳方法是将其添加到提交的作业脚本的末尾。输出将被添加到 STDOUT 文件中。
qstat -f -1 $PBS_JOBID