Python: управление кластерными заданиями - PullRequest
1 голос
/ 28 марта 2019

Я запускаю скрипты Python на вычислительном кластере (slurm) в два этапа, и они последовательны.Я написал два сценария 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 голосов
/ 29 марта 2019

У вас есть несколько вариантов действий:

0 голосов
/ 28 марта 2019

Вы не дали много, чтобы узнать, как определить, завершена ли работа, но общий способ решения этой проблемы - заставить рабочие места создавать файл дозорного, который вы можете искать, что-то вроде COMPLETE.

Для этого вы просто добавляете что-то вроде

# At the end of stage 1,
job_num = 1234
open('/shared/file/system/or/server/JOB_{job_num}/COMPLETE', 'x').close()

А затем вы просто время от времени проводите опрос, чтобы убедиться, что у вас есть файл COMPLETE для всех заданий перед началом этапа 2.

...