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

标签 python bash qsub

我正在尝试使用 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>

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

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

最佳答案

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

qconf -ss

上面列出了提交主机。以管理员身份添加节点到峰会列表如下所示:

qconf -as < host name>

关于python - Qsub 作业使用集群上工作节点的子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24031821/

相关文章:

shell - .sh 脚本中的参数传递

Python:PBS 提交,如果我更改脚本会怎样?

python - 计数在一个字符串中运行

python - Pandas:通过多列查找另一个DataFrame中不存在的行

linux - shell getopts参数收集问题

linux - 在运行 Linux 的 Cray 系统上,如何在自动 BASH 脚本中使用 aprun 提交多个 qsub 请求?

python - 在python中从unicode(对于外语)段落中提取主题标签

OpenShift API 的 Python 客户端并进行 oc 登录

linux - awk 在 bash 脚本中使用引号和空格

linux - 以特定方式启动终端?