Python Qsub作业使用群集上工作节点的子进程

Python Qsub作业使用群集上工作节点的子进程,python,bash,qsub,Python,Bash,Qsub,我试图用qsub提交一个python作业,它反过来使用subprocess和qsub提交几个其他作业 我使用下面显示的2个bash脚本提交这些作业。run_测试是第一个提交的测试,run_脚本是通过子流程提交的 $ cat run_test #$ -cwd #$ -V #$ -pe openmpi 1 mpirun -n 1 python test_multiple_submit.py $ cat run_script #$ -cwd #$ -V #$ -pe openmpi 1 mpirun

我试图用qsub提交一个python作业,它反过来使用subprocess和qsub提交几个其他作业

我使用下面显示的2个bash脚本提交这些作业。run_测试是第一个提交的测试,run_脚本是通过子流程提交的

$ cat run_test
#$ -cwd
#$ -V
#$ -pe openmpi 1
mpirun -n 1 python test_multiple_submit.py

$ cat run_script
#$ -cwd
#$ -V
#$ -pe openmpi 1
mpirun -n 1 python $1
我对第二个脚本有一个问题,它似乎在mpirun调用时挂起。我以前从bash那里得到一个关于“module”未找到的错误,但最近已经消失了

python脚本的简化版本如下所示

import subprocess

subprocess.Popen(cmd)

subprocess.Popen('qsub run_script '+input)

<Some checks to see if jobs are still running>
导入子流程
子进程Popen(cmd)
subprocess.Popen('qsub run_script'+输入)
第一个子流程在当前节点上运行一个案例,第二个子流程应该将作业外包给另一个节点,然后进行一些检查以查看作业是否仍在运行。还有一些其他的东西可以让其他的工作提交,但是我很确定这不是脚本的问题


有人能解释第二个脚本失败的原因吗?

我发现集群上的计算节点不是提交主机,因此我得到了一个错误。唯一的提交主机是head节点

qconf -ss
上面列出了提交主机。要将节点作为管理员添加到峰会列表中,如下所示:

qconf -as < host name>
qconf-as