在群集上执行qsub作业后检查实时输出

时间:2015-04-17 14:12:21

标签: cluster-computing qsub torque

这是我的pbs文件:

#!/bin/bash 
#PBS -N myJob 
#PBS -j oe
#PBS -k o 
#PBS -V
#PBS -l nodes=hpg6-15:ppn=12
cd ${PBS_O_WORKDIR}

./mycommand

在qsub文档页面上,好像我放了一行 PBS -k o,我应该能够在我的家庭目录中检查名为myJob.oJOBID的文件中的实时输出。但是,当我在运行时通过tail -fcatmore检查输出时,它在文件中不显示任何内容。只有当我终止作业时,文件才会显示输出。有什么我应该检查以使流实时刷新到输出文件吗?

2 个答案:

答案 0 :(得分:1)

默认情况下,文件在节点上创建,并在作业完成时复制到主目录。群集管理员可以通过添加" $ spool_as_final_name true"来更改此行为。到每个节点上的mom_priv目录中的配置文件。

Torque MOM Configuration, parameters

答案 1 :(得分:0)

假设您被允许登录到运行您的进程的节点(在工作期间,集群的管理员允许这样做,不确定这是否常见),那么您可以实时输出由

  1. 获取流程的PID
  2. 浏览通过lsof -n -p <PID>打开的该文件,并找到名称“看起来像”日志文件的文件。在我们的集群中,文件是
/cm/local/apps/pbspro-ce/var/spool/spool/[JOBID][server].OU
/cm/local/apps/pbspro-ce/var/spool/spool/[JOBID][server].ER

.OU是stdout,而.ER是stderr。然后,您可以tail -f以获得实时输出。

尽管lsof的输出可能很长,所以您应该尝试grep键入您的JOBID,或者也许pbspro-ce/var/spool/这一点。

想知道是否可以在我们自己的集群以外的集群中复制它。