情况的基本情况是,我正在使用 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/