Получение кода выхода из процесса, представленного с помощью QSub на Sun Grid Engine
-
29-09-2019 - |
Вопрос
Я хотел бы представить работу через QSUB на Sun Grid Engine (сейчас: oracle Grid Engine?). Я не хочу использовать опцию issync yes или qrsh, потому что я хочу, чтобы моя программа контролирования должна быть однопоточной и способной запустить много рабочих заданий одновременно. Эти параметры блокируют мою нить программы контролирующей программы.
Однако я хотел бы получить статусы выхода процессов, которые я запускаю. С страницы человека, кажется, нет способа получить этот код, не блокируя мою нить. Короткое изменение рабочих мест, которые я запускаю, чтобы распечатать их коды выхода в STDOUT, есть ли способ получить этот статус?
Решение
Ответ -«QACCT -J». Краткое изложение истории работы напечатано в Stdout, который затем может быть проанализирован для статуса выхода, времени начала и окончания и множества другой информации.
SGE необходимо правильно настроить для этой команды для работы.
Другие советы
Если вы отправляете свои задания в рамках своей заявки, самым простым и быстрой (быстрее (быстрее, чем отправка с QSub) (и получение статуса выхода позже) является использование API DRMAA. Этот простой API доступен в C и в Java в Sun Grid Engine в течение очень долгого времени. Engine Univa Grid (коммерческий преемник двигателя сетки) и Forks Sun Grid Forks также отправляют необходимую библиотеку. Поскольку это открытый стандарт, вы можете отправить даже на другие DRM, такие как Condor/Slurm и т. Д., Не изменяя свою программу. Языковые привязки для GO, Python или TCL (и других) доступны.
Видеть:http://www.gridengine.eu/mangridengine/htmlman3/drmaa_wait.html.
Некоторая дополнительная информация и примеры языка DRMAA GO (#Golang) с примерами, которые вы можете найти здесь:http://www.gridengine.eu/programming-apis
Ваше здоровье
Даниэль
www.gridengine.eu