2010-06-22 11 views
8

Me gustaría enviar trabajos a través de qsub en Sun Grid Engine (ahora: Oracle Grid Engine?). No deseo utilizar la opción -sync yes o qrsh, porque quiero que mi programa de control tenga un único hilo y pueda iniciar muchos trabajos a la vez. Estas opciones bloquearían el hilo de mi programa de control.Obtener el código de salida de un proceso enviado con qsub en Sun Grid Engine

Sin embargo, me gustaría recibir los estados de salida de los procesos que ejecuto. De las páginas man, parece que no hay forma de obtener este código sin bloquear mi hilo. A menos que modifique los trabajos que estoy lanzando para imprimir sus códigos de salida a stdout, ¿hay alguna forma de obtener este estado?

Respuesta

10

La respuesta es 'qacct -j'. Se imprime un resumen del historial del trabajo en stdout, que luego se puede analizar para el estado de salida, las horas de inicio y finalización, y una variedad de otra información.

SGE debe estar configurado correctamente para que este comando funcione, sin embargo.

2

Si envía sus trabajos dentro de su aplicación, la forma más sencilla y rápida (más rápida que enviar con qsub) (y obtener el estado de salida más adelante) es usar la API de DRMAA. Esta API simple está disponible en C y en Java en Sun Grid Engine durante mucho tiempo. Univa Grid Engine (sucesor comercial de Grid Engine) y Sun Grid Engine también envían la biblioteca necesaria. Dado que es un estándar abierto, puede enviarlo incluso a otros DRMS ​​completamente distintos, como Condor/SLURM, etc., sin cambiar su programa. Los enlaces de idioma para GO, Python o TCL (y otros) están disponibles.

Ver: http://www.gridengine.eu/mangridengine/htmlman3/drmaa_wait.html

Algunos más información y el lenguaje Go (#golang) DRMAA vinculante con ejemplos que puede encontrar aquí: http://www.gridengine.eu/programming-apis

Saludos

Daniel

www .gridengine.eu

Cuestiones relacionadas