为什么 Torque qsub 不创建输出文件?

Why Torque qsub don't create output file?

我尝试使用命令

通过 Torque PBS 在集群上启动任务
qsub -o a.txt a.sh

文件 a.sh 包含单个字符串:

hostname

在命令 qsub 之后我做了 qstat 命令,给出了下一个输出:

Job ID                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
302937.voms               a.sh             user            00:00:00 E long

5 秒后命令 qstat return 空输出(队列中没有作业)。 命令

qsub --version

给出输出:版本:2.5.13

命令

which qsub

输出:/usr/bin/qsub

问题是文件a.txt(来自命令qsub -o a.txt a.sh)没有创建!在终端 returned 中只有作业 ID,没有任何错误。命令

 qsub a.sh

具有相同的行为。我该如何解决?有错误的 qsub 日志文件在哪里?

如果我使用命令

qsub -l nodes=node36:ppn=1 -o a.txt a.sh

然后输出我可以在文件夹

中找到的文件
/var/spool/pbs/undelivered

在 node36 上(ssh 登录后)。 输出文件包含字符串 "node36",错误文件为空。 为什么我的文件是 "undelivered"?

输出日志和错误日志文件保存在执行节点的假脱机目录中,并在作业完成后复制回头节点。假脱机目录的位置可能会有所不同。但你应该寻找它 在下面 /var/torque/spool 在节点列表的第一个节点上分配了作业。

有多种原因可能导致扭矩无法传送输出文件。

  1. 节点上可能不存在提交作业的用户,或者他们的主目录可能无法访问,或者集群节点之间的用户 ID 不匹配。
  2. Torque 正在使用 ssh 将文件复制到头节点,但尚未在所有节点上一致地设置用户跨集群 ssh 的无密码 public 密钥身份验证。
  3. 一个节点在作业执行过程中失败。

这个列表并不完整。在 Stack Overflow 上已经可以找到许多处理此类故障的问题。尝试检查以上是否适用于您的情况。

您(或任何其他找到此主题的人)也应该查看此处给出的解决方案: PBS, refresh stdout

如果您有管理员权限,您可以设置

$spool_as_final_name true

这会导致输出直接写入最终目的地。