Python:集群作业管理

时间:2019-03-28 18:07:27

标签: python cluster-computing slurm

我在具有两个阶段的计算集群(slurm)上运行python脚本,它们是顺序的。我编写了两个python脚本,一个用于阶段1,另一个用于阶段2。每天早上,我检查所有第1阶段的工作是否都以视觉方式完成。只有这样,我才开始第2阶段。

通过在单个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)

2 个答案:

答案 0 :(得分:0)

关于如何确定一项工作是否完成,您还有很多事情要做,但是解决此问题的一种常见方法是让这些工作创建一个可以查找的哨兵文件,例如{ {1}}。

为此,您只需添加类似的内容

COMPLETE

然后您不时地轮询一次,以查看在开始第2阶段之前是否有# At the end of stage 1, job_num = 1234 open('/shared/file/system/or/server/JOB_{job_num}/COMPLETE', 'x').close() 文件用于所有作业。

答案 1 :(得分:0)

您有几种行动方案: