我正在尝试将python作业提交给PBS,并获得打印的内容作为输出。一个简单的例子是:
python文件test.py:
import time
print(time.time())
pbs提交文件job_test.pbs:
#!/bin/bash
#PBS -l nodes=2:ppn=8,walltime=8:00:00
#PBS -N test
#PBS -q gpu
module load anaconda/3 torque cuda80 cudnn
cd /path-to-the-test.py-program
python test.py
最后是qsub命令:
qsub job_test.pbs
由于这项工作非常容易,我将立即使用qstat看到状态从Q变为E并变为C。然后问题来了,我看不到应该在/path-to-the-test.py-program中的输出文件。我尝试在PBS脚本中设置#PBS -o /path-to-the-test.py-program/output.txt并将命令用作qsub -o / path-to-the- test.py-program / output.txt job_test.pbs,但它们都不起作用。那我该怎么做呢?
我之前遇到过。
我不太确定您是如何解决此问题的,但是在这里,我的情况是我在节点之间没有免密码登录。
您可以这样检查:
[ssh
到您的计算节点,如果您需要密码,那么造成问题的原因很可能与我的相同。
通常在root
处检查系统日志(作为/var/log/messages
,并找到类似的内容
Apr 10 14:52:19 node1 pbs_mom: LOG_ERROR::sys_copy, command '/usr/bin/scp -rpB /var/spool/torque/spool/242.master.OU user@master:/home/user/path/to/sample.pbs.o242' failed with status=1, giving up after 4 attempts
关键是scp
的失败。
/var/spool/torque/spool/
---输出文件应该在那里。因此,如果您的情况与我的情况完全一样,则可以ssh-copy-id
到您的计算节点。在我的情况下,因为我们的NFS驱动程序已安装/home
目录,所以所有节点都共享相同的/home
,我只需要
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa localhost
希望我的回答帮助。