эффективный способ дождаться завершения задания: python и drmaa

Я хотел спросить о функции ожидания в drmaa API, которую я использую через Python. Выполняет ли он постоянный qstat (если мы запускаем его на SGE), чтобы проверить, завершилось ли выполнение программы.

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

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

Спасибо! -Абхи


person Abhi    schedule 07.06.2012    source источник
comment
вы можете проверить статус задания в цикле с некоторой задержкой.   -  person World    schedule 11.06.2012


Ответы (1)


С точки зрения API DRMAA лучшего пути нет. API просто отражает то, что вы можете делать в сценарии оболочки с помощью инструментов командной строки по умолчанию.

Проблема заключается в стратегии реализации вашей конкретной библиотеки DRMAA, поскольку SGE предлагает лучшие способы, чем постоянный опрос, для получения обновлений статуса задания. Таким образом, у вас есть следующие варианты:

  • Исправьте используемую вами реализацию DRMAA, чтобы полагаться на прямое взаимодействие с планировщиком. Одним из источников информации для проводного протокола может быть проект Open Grid Scheduler.
  • Подождите, пока Univa (или другие) не представят реализацию DRMAAv2 для своего продукта Grid Engine. Эта версия API поддерживает библиотечные обратные вызовы при изменении статуса задания (http://ogf.org/documents/GFD.198.pdf), что кажется именно тем, что вам нужно.
person Peter Tröger    schedule 09.01.2013