1

我尝试使用命令通过 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 返回空输出(队列中没有作业)。命令

qsub --version

给出输出:版本:2.5.13

命令

which qsub

输出:/usr/bin/qsub

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

 qsub a.sh

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

如果我使用命令

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

然后输出我可以在文件夹中找到的文件

/var/spool/pbs/undelivered

在 node36 上(在 ssh 登录后)。输出文件包含字符串“node36”,错误文件为空。为什么我的文件“未送达”?

4

2 回答 2

2

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

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

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

这份清单绝不是完整的。已经在 Stack Overflow 上可以找到许多处理此类故障的问题。尝试检查上述任何一项是否适用于您的情况。

于 2017-10-16T03:04:04.613 回答
0

您(或任何其他找到此线程的人)还应该查看此处给出的解决方案: PBS,刷新标准输出

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

$spool_as_final_name true

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

于 2018-07-03T13:20:07.083 回答