El scheduler se encarga, dentro de un cluster, de organizar los trabajos de los usuarios. El scheduler del cluster es Sun Grid Engine (SGE).
Mantiene la información de los recursos y sus disponibilidades para actualizar las colas.
Recibe las peticiones de los usuarios (job) y las ordena por prioridad.
Determina cual job puede correr en donde cuando los recursos están disponibles.
Se encarga de revisar los estados de estos trabajos.
El cluster cuenta con 3 colas pricinpales.
Cola all.q : Trabajos de menos de 24 horas reales.
Cola express.q : Trabajos interactivos . No mas de 2 horas reales.
Cola lenta.q : Trabajos de mas de 24 horas reales.
La cola all.q tiene mas prioridad que la lenta.q. Ademas, cuenta generalmente con mas cores disponibles. Revise el parafo Opciones usuales para ver como pedir cores en la cola lenta.q.
La cola express.q es dedicada para pruebas de corta duración. En ella pueden correr unicamente jobs interactivos, como se muestra en el parafo Job interractivo.
Como vimos, el master del cluster es para administrar los datos, enviar los jobs, revisar sus estados y los resultados.
Son los nodos que realmente realizan las tareas fuertes. Asi que:
No se debe de usar el máster del cluster para trabajos pesados.
No se debe conectarse directamente a un nodo para realizar sus tareas: usan un job interactivo.
No esperen a que unos recursos sean disponible para mandar sus jobs!
Se hace un chequeo cotidiano y se arreglan las colas según los jobs en espera.
Los usuarios que no respetan esta regla veran sus trabajos indebidos suprimidos al inicio, y se podra bloquear la cuenta en caso de seguir mal usando los recursos.
El comando para ver el estado de las colas es qstat -g c :
$ qstat -g c CLUSTER QUEUE CQLOAD USED RES AVAIL TOTAL aoACDS cdsuE -------------------------------------------------------------------------------- all.q 0.03 0 0 0 320 0 0 lenta.q 0.03 0 0 0 20 0 20 |
En este caso hay 320 cores disponibles para la cola normal, y 0 (de 20 en total) para la cola lenta. Y el cluster no esta usado para nada (0 jobs en total corriendo).
$ qstat -g c CLUSTER QUEUE CQLOAD USED RES AVAIL TOTAL aoACDS cdsuE -------------------------------------------------------------------------------- all.q 0.98 320 0 0 320 0 0 lenta.q 0.98 0 0 0 20 0 20 |
En este caso los 320 cores estan todos utilizados por la cola normal. Notamos que la carga es casi 1, es decir, todos los cores del cluster estan trabajando.
Se determino una política de prioridad (especifica para el cluster del IBt). a prioridad se calcula en cada ciclo ( 30 segundos), y se determina así:
El que mas lo usa, menos prioridad tiene.
La cola normal tiene mas prioridad que la cola lenta.
Cada job en espera tendrá un valor de prioridad entre [0,1]. Un valor de 1 es mas prioritario que un valor de 0.
Revisen el capitulo siguiente Escribir jobs para tener mas detalle sobre el contenido de un job.