首页 文章

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

提问于
浏览
1

我正在尝试使用qsub提交python作业,然后使用subprocess和qsub提交其他几个作业 .

我使用下面显示的2个bash脚本提交这些作业 . run_test是第一个提交的,run_script是通过子进程提交的 .

$ 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那里得到了一个错误,但最近消失了 .

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

import subprocess

subprocess.Popen(cmd)

subprocess.Popen('qsub run_script '+input)

<Some checks to see if jobs are still running>

第一个子进程在当前节点上运行一个案例,第二个子进程应该将作业外包到另一个节点,然后进行一些检查以查看作业是否仍在运行 . 还有一些其他位可以提交其他作业,但我很确定这不是脚本的问题 .

任何人都可以解释为什么第二个脚本失败了吗?

1 回答

  • 2

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

    qconf -ss
    

    以上列出了提交主机 . 要将管理节点添加到峰会列表,请执行以下操作:

    qconf -as < host name>
    

相关问题