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

标签 python queue subprocess wait slurm

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

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

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

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

感谢您的任何想法!

最佳答案

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

关于python - 使用 Python 子进程运行 SLURM 脚本将多个长作业提交到队列并等待作业完成,然后再继续 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43669432/

相关文章:

python - 解决 Safari 中 Webdriver 缺乏交互 API 的问题

java - 什么是 C++ deque 的 Java 等价物?

c# - 使用队列创建 BackgroundWorker

用于特殊滚动、循环队列的 Java Collection

python - 如何包装用于自动化的 windows 交互式控制台程序

Windows 上的 Python : path as subprocess argument gets modified and generating error

python - 命名空间可以启用多个域吗?

python - Matplotlib-cpp : ImportError: No module named site

python - Pygame 玩家 Sprite 没有出现

python - subprocess.Popen 不是线程安全的?