使用Python子进程运行SLURM脚本将多个长作业提交到队列并等待作业完成后再继续Python脚本

问题描述 投票:0回答:2

情况的基本情况是,我正在使用 Python 的

subprocess
模块来运行 SLURM 脚本,该脚本将许多作业提交到我使用的一些 HPC 资源上的队列。我希望 Python 脚本等待所有提交的作业完成。我尝试这样做:

proc = subprocess.Popen(['sbatch slurm.sh'],shell=True)
proc.wait()

但是,它只是等待作业提交,而不是等待所有作业完成。有人对如何进行这项工作有任何建议吗?

注意:我的一个想法是可能让子进程以某种方式与 SLURM 脚本生成的 .out 文件进行通信(也许要等待它完成编辑?),但我不确定这将如何工作。

感谢您的任何想法!

python queue subprocess wait slurm
2个回答
2
投票

我最近在做slurm,使用了sbatch的-W或--wait参数,让sbatch命令先完成执行,然后再执行python代码。像这样的东西 -W slurm.sh


1
投票

使用Python库与Slurm交互,例如

您将能够以非常简单的方式管理 slurm 工作。

© www.soinside.com 2019 - 2024. All rights reserved.