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

StackOverflow https://stackoverflow.com/questions/3091156

Вопрос

Я хотел бы представить работу через 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top