Получение кода выхода из процесса, отправленного с помощью qsub на Sun Grid Engine

Я хотел бы отправлять задания через qsub на Sun Grid Engine (сейчас: Oracle Grid Engine?). Я не хочу использовать опцию -sync yes или qrsh, потому что я хочу, чтобы моя управляющая программа была однопоточной и могла запускать множество заданий одновременно. Эти параметры заблокируют поток моей управляющей программы.

Однако я хотел бы получать статусы выхода процессов, которые я запускаю. Судя по справочным страницам, нет способа получить этот код, не блокируя мой поток. Если не считать изменения заданий, которые я запускаю, для вывода их кодов выхода на стандартный вывод, есть ли способ получить этот статус?


person Brian    schedule 22.06.2010    source источник


Ответы (2)


Ответ: «qacct -j». Сводка истории задания выводится на стандартный вывод, который затем может быть проанализирован на предмет состояния выхода, времени начала и окончания и множества другой информации.

Однако для работы этой команды необходимо правильно настроить SGE.

person Brian    schedule 22.06.2010

Если вы отправляете свои задания в своем приложении, самым простым и быстрым (быстрее, чем отправка с помощью qsub) способом (и получением статуса выхода позже) является использование API DRMAA. Этот простой API уже очень давно доступен на C и на Java в Sun Grid Engine. Univa Grid Engine (коммерческий преемник Grid Engine) и форки Sun Grid Engine, также поставляющие необходимую библиотеку. Поскольку это открытый стандарт, вы можете отправлять его даже в совершенно другие DRMS, такие как Condor/SLURM и т. д., без изменения вашей программы. Доступны языковые привязки для GO, Python или TCL (и других).

См.: http://www.gridengine.eu/mangridengine/htmlman3/drmaa_wait.html

Дополнительную информацию и привязку языка Go (#golang) DRMAA с примерами вы можете найти здесь: http://www.gridengine.eu/programming-apis

Ваше здоровье

Даниэль

www.gridengine.eu

person Daniel    schedule 28.12.2012