Получение кода выхода из процесса, переданного с помощью qsub в Sun Grid Engine - PullRequest
8 голосов
/ 22 июня 2010

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

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

Ответы [ 2 ]

11 голосов
/ 23 июня 2010

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

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

2 голосов
/ 28 декабря 2012

Если вы отправляете свои работы в приложении, самый простой и быстрый (быстрее, чем отправка с помощью 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

...