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



我正在尝试与qsub提交一个python作业,该作业反过来使用subprocess和qsub提交其他几个作业。

我使用下面所示的2个bash脚本提交这些作业。Run_test是第一个提交的,run_script是通过subprocess提交的。

$ 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>

第一个子进程在当前节点上运行一个case,第二个子进程应该将作业外包给另一个节点,然后进行一些检查以查看作业是否仍在运行。也有一些其他的比特得到其他工作提交,以及,但我很确定这不是一个问题与脚本。

有人能解释一下为什么第二个剧本失败了吗?

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

qconf -ss

上面列出了提交主机。以admin的身份向峰会列表添加一个节点,如下所示:

qconf -as < host name>

最新更新