Sistema de colas instalado en Herakles y Aquiles



Portable Batch System

Un gestor de colas gestiona trabajos lanzados en una máquina por diferentes usuarios. Por simplicidad el gestor de colas instalado en Herkles y Aquiles solo dispone de una cola de trabajo definida para procesos sin paralelizar. El nombre de la cola es "long" y cada usuario puede lanzar hasta 10 procesos en Herakles y 4 en Aquiles. El número máximo de procesos que serán ejecutados simultaneamente es de 16 en Herakles y de 4 en Aquiles.

Para lanzar un trabajo es necesario utilizar un script donde se especifican los parámetros del trabajo (ver más adelante script de lanzamiento de colas).

Supongamos que disponemos de un trabajo llamado: myjob.pbs

Para lanzarlo en el sistema de colas podemos hacer:
qsub -q long myjob1.pbs
Para ver si efectivamente el script funciona o se está ejecutando:
qstat
Ejemplo:

rha@b012730:~> qstat
Job id              Name             User            Time Use S Queue
------------------- ---------------- --------------- -------- - -----
67.b012730          myjob1.pbs       rha                    0 R long           
68.b012730          myjob2.pbs       rha                    0 R long           
69.b012730          myjob3.pbs       rha                    0 R long            
70.b012730          myjob4.pbs       rha                    0 R long          
71.b012730          myjob5.pbs       rha                    0 R long          
72.b012730          myjob6.pbs       rha                    0 R long          
73.b012730          myjob7.pbs       rha                    0 R long          
74.b012730          myjob8.pbs       rha                    0 R long          
75.b012730          myjob9.pbs       rha                    0 R long          
76.b012730          myjobA.pbs       rha                    0 R long
Las siguientes variantes de qstat son interesantes:

qstat -q

Debería devolver un mensaje como el siguiente:

server: b012730
Queue            Memory CPU Time Walltime Node  Run Que Lm  State
---------------- ------ -------- -------- ----  --- --- --  -----
long               --      --       --      --    10   0 --   E R
                                               ----- -----
                                                  10     0

Indica el nombre y tipo de colas definidas, sus límites de memoria, tiempo de ejecución, número de procesadores, cuantas colas están corriendo (Run, en este caso 10 procesos) y cuantas están esperando (que, en este caso 0).



El siguiente bloque de texto ejemplifica un script para lanzar un trabajo al sistema de colas:
#!/bin/sh
# PBS -l nodes=1:ppn=1
# PBS -q long
# PBS -N myjob1

# Here begins the script with commands (Example is for a storm simulation but EPIC could also run like this)
cd /home/rha/WATER1/bin
./3DHigh_Resolution

Explicación:

1. - La primera línea indica el shell que se utilizará (puede indicarse también un lenguaje de intérprete de comandos)
2. - A continuación indicamos cuantos nodos y procesadores se necesitan.
3. - El nombre de la cola a utilizar (opcional).
4. - El nombre del trabajo en el sistema de colas.
5. - A partir de aquí empieza el script de los comandos que se ejecutarán. Puede ser una línea de definición del directorio de trabajo y la ejecución de un programa en particular (en este caso una simulación de tormentas 3D).

Nota importante:

El script debe tener permisos de ejecución. Una vez creado basta con introducir el comando de linux:

chmod +x myjob1.pbs