• Parámetros por defecto para un qsub:

  • Documentación scripts JSV:

http://linux.die.net/man/1/jsv (man jsv)
http://linux.die.net/man/3/jsv_script_interface (man jsv_script_interface)
 

  • Variables de entorno en un script de SGE

El tema de las variables de entorno dentro de un script que se lanza al sistema de colas, es un poco confuso. Por defecto, cuando se hace un qsub, éste no pasa sus actuales variables de entorno al script que se está mandando a la cola, pero si el script es un bash, las va a cargar de todas formas cuando el script lo ejecute el SGE (el script leerá del profile o de donde proceda). Pero si este script es de python, el tema cambia. Por ejemplo:

Para solucionar este problema, se pueden usar los parámetros -V o -v de qsub, que sirven para exportar las variables de entorno al contexto de ejecución del script. Con -V exportamos todas las variables, y con -v sólo las que digamos. Yo uso esta última opción, para exportar sólo las variables que necesito:

  • shell_start_mode

En una instalación reciente de pruebas de SGE, me encontré con que no podía hacer un qsub de un script de python:

Estaba claro que lo que pasaba es que no estaba pillando la primera línea del script (el shebang) y era bash el que interpretaba el script.
Hay que cambiar el parámetro shell_start_mode de la cola, que por defecto está en posix_compliant (y omite la primera línea del script) a unix_behavior. Lo cambiamos con qconf -mq queueName

 

 

  • export MALLOC_CHECK_=0

Es muy importante poner este export en /etc/profile por ejemplo. Hay un bug reportado que hace que el qsub, qstat o lo que sea, bajo ciertas condiciones falle con un «glib detected…». Me pasaba también que cuando un script de python hacía una llamada qstat, me cascaba, y con este export se solucionó:

el qsub hay que hacerlo así:

  • Prioridad de jobs: si tenemos la cola llena de jobs y tenemos a la espera unos cuantos y queremos insertar un job y que se ponga primero en la lista de espera, le podemos indicar prioridad máxima: qsub -p 1024 <job>

Autenticación SGE

Es interesante la característica de evitar que sge cree un usuario de sge cada vez que alguien hace un qsub (como hace por defecto) para restringir quién puede usar el cluster o no, o darle acceso a una determinada cola/recursos.

Con esto evitamos los qusb anónimos

Creamos una lista de acceso (ACL)

De esta forma conseguimos que los usuarios user1, user2 y user3 no puedan entrar ni en la cola queue1.q ni queue2.q, y que solo puedan entrar en forced.q, así podemos definir los recursos que queramos en la cola forced.q y que esos usuarios no puedan consumir más.

Para dar de alta un nuevo usuario:

Para añadirlo a la ACL:

Para borrarlo de la ACL:

Más comandos

  • Deshabilitar todas las colas de un nodo, por ejemplo para realizar tareas de mantenimiento: 

    Usar -e para volver a habilitar
Apuntes SGE
Etiquetado en:

Deja un comentario

Tu dirección de correo electrónico no será publicada.