【发布时间】:2019-08-19 14:46:51
【问题描述】:
我在具有两个阶段的计算集群(slurm)上运行 python 脚本,它们是顺序的。我写了两个 Python 脚本,一个用于 Stage 1,另一个用于 Stage 2。每天早上我都会检查是否所有的 Stage 1 作业都在视觉上完成了。只有这样,我才开始第二阶段。
有没有更优雅/自动化的方式将所有阶段和作业管理组合在一个 Python 脚本中?如何判断作业是否已完成?
工作流程类似于以下内容:
while not job_list.all_complete():
for job in job_list:
if job.empty():
job.submit_stage1()
if job.complete_stage1():
job.submit_stage2()
sleep(60)
【问题讨论】:
-
这些阶段的输出是什么?你怎么知道一个阶段何时完成?
-
我尽量让它通用。有没有办法跳过“结束文件”?
-
我的意思是,您可以让您的工作在完成后返回一个值。但这在分布式系统中很难。
-
我想还需要让 python 在后台运行以监控作业,直到所有作业都完成。所以也许伪代码是一个很好的方向。但是如果工作出错了怎么办?我怎么能表示重播?
标签: python cluster-computing slurm