我正在尝试向PBS提交python作业并将打印内容作为输出。一个简单的例子如下:
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
由于工作非常简单,我会立即看到状态从Q到E再到C,使用qstat。然后问题是我没有看到输出文件应该在/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 但它们都不起作用。那我怎么能这样做呢?
答案 0 :(得分:0)
我之前遇到过这个问题。
我不太确定您是如何解决此问题的,但是在这里,我的情况是节点之间没有免密码登录。
您可以这样检查:
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
进入计算节点。就我而言,由于我们的目录/home
装有NFS驱动程序,因此所有节点共享相同的/home
,我只需要
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa localhost
希望我的回答有帮助。