Uso de Torque/MAUI

Uso del manejador de recursos del cluster del CNCA

Ricardo Román Brenes

rroman@cenat.ac.cr

Primeramente se inicia una conexion remota  con el cluster. Existe muchos programas que puede hacer esto, usando el protocolo SSH: openSSH, puTTy, connectBot, MobaXTerm, etc.

Con openSSH, en particular:

  • ssh USUARIO@cluster.cenat.ac.cr

Si es la primera vez que se conecta, el cluster le generará un par de llaves personales. El sistema le hará 4 preguntas, a las cuales, si no tiene cambios o no sabe que cambiarles, basta con presionar ENTER a las 4.

El cluster del CNCA cuenta con software para manejar los recursos de cómputo. Este manejador se divide en 2:

  1. Manejador de colas Torque
  2. Calendarizador Maui

Torque

Torque es un software hecho por Adaptative Computing[1] para manejar procesos en sistemas compartidos. En el CNCA se utiliza solamente la característica de manejador de colas de Torque.

El cluster cuenta con 2 colas de trabajos:

  • n4h24: abarca los todos los nodos cadejos, pero tiene un tiempo limite de 24 horas y un máximo de 4 nodos.
  • n3h72: abarca los todos los nodos cadejos, pero tiene un tiempo limite de 72 horas y un máximo de 3 nodos.

Nota: Los nodos cadejos-0 cadejos-1 y cadejos-2 tiene 2 tarjetas NVIDIA Tesla C1060.

 

Así dependiendo del proceso que se quiera realizar en el cluster, se deberá enviar un trabajo a una cola particular.

Algunos comandos y programas importantes de Torque:

  • qsub: envia un trabajo a alguna cola.
  • qdel: elimina un trabajo de alguna cola.
  • qrun: ejecuta un trabajo en alguna cola (lo fuerza).
  • qstat: información sobre la colas.
  • showq: información sobre las colas.
  • qmgr: configurador de las colas.
  • pbsnodes: lista el estado de los nodos.
  • pbs_mom: servicio cliente del manejador de recursos.
  • pbs_server: servidor del manejador de recursos.

Más información sobre como ejecutar estos comandos se puede encontrar en: http://www.clusterresources.com/torquedocs21/a.acommands.shtml

Maui

Maui es un software también hecho por Adaptative Computing. Maui es un calendarizador para colas que se puede integrar con Torque. Maui es quién escoge en qué momento y que proceso debe ser ejecutado dados ciertas políticas de uso.

Maui no se utiliza explícitamente, sino que sus servicios se prestan automáticamente a través de Torque.

Ejecución de trabajos en el cluster

Para comodidad de los usuarios del cluster, se han creado 3 archivos para usar Torque/Maui más fácilmente. En el directorio torque-scripts que se genera automáticamente cuando se crea un usuario hay 4 archivos:

  • c: código fuente de ejemplo para MPI.
  • sh: script para Torque que compilar cpi.c.
  • sh: script para Torque que ejecutar el binario de cpi.c.
  • sh: script para BASH que envía un trabajo interactivo a Torque.

Estos archivos se pueden dividir en 2 tipos de trabajos: por lotes e interactivo.

Trabajos por lote

Un trabajo por lotes son una serie de comandos que se ejecutan en orden. compilar.sh y ejecutar.sh son trabajos por lotes.

Para enviar un trabajo por lotes se utiliza qsub:

      qsub -V -q COLA -l REQUERIMIENTOS SCRIPT.TORQUE

Donde:

  • COLAes el nombre de la cola a la que se enviara el trabajo, xeon, tesla o ps3
  • REQUERIMIENTOSson varias especificaciones que definen el trabajo, entre otros:
    • walltime=12:00:00: el tiempo que tardará el trabajo como máximo.
    • nodes=cadejos-3.cnca: se solicita específicamente un nodo, en este caso, cadejos-3.cnca. Si se quiere solicita más de un nodo se puede añadir al final usando el operador + los otros nodos: «cadejos-2.cnca+cadejos-3.cnca+cadejos-4.cnca».
    • nodes=3: se solicitan 3 nodos, sin importar cuales.
  • TORQUEhace referencia al archivo por lotes que se desea ejecutar.

 

 

El archivo compilar.sh envía un trabajo que compila el archivo fuente cpi.c. Se puede utilizar de la siguiente forma:

  1. Se debe editar el archivo y cambiar la variable DIR para que apunte al directorio donde está el archivo a compilar, en este caso sería:
    • /home/NOMBRE_DE_USUARIO/torque-scripts
  2. Se envia el trabajo con qsub a alguna cola, con alguna de las siguientes opciones (son solamente una guía):
    • qsub -q n3h72 -l nodes=cadejos-0.cnca compilar.sh
    • qsub -q n3h72 -l nodes=1 compilar.sh
    • qsub -q n3h72 compilar.sh
  3. Se puede verificar que le trabajo este corriendo con:
    • qstat -a
  4. Torque genera 2 archivos por cada trabajo cuando este ha finalizado, un archivo de salida y uno de error, en este caso estos archivos se llaman o###compilar.e### respectivamente. Estos archivos contienen la salida estándar (stdout) y la salida de error (stderr) del script ejecutado; ### es el número trabajo asignado por Torque.

 

El archivo ejecutar.sh envía a ejecutar el binario compilado de cpi.c. y su funcionamiento es muy similiar al compilar.sh.

Trabajos interactivos

Se le llama trabajo interactivo cuando la ejecución de comandos no sigue un orden establecido. En Torque, para trabajo interactivo, se autentica en el nodo solicitado y este queda reservado para el usuario hasta que este termine o que el walltime se cumpla.

El archivo interactivo.sh es un script de BASH que envía un trabajo interactivo a alguna cola y su funcionamiento es:

  • ./interactivo.sh COLA NODOS TIEMPO
    • COLA: es el nombre de la cola a la que se enviara el trabajo, n4h24 o n3h72
    • NODOS: define donde se ejecutara el trabajo. La reservación puede ser de varios nodos. Se utiliza aquí ya sea un numero o una lista de nodos separadas por +.
    • TIEMPO: duración máxima del trabajo.

 

Por ejemplo:

  • ./interactivo.sh n4h24 1 1:00:00

Este comando enviara un trabajo interactivo a la cola n4h24, solicitando 1 nodo, de duración máxima de 1 hora.

 

 

Ejemplos de archivos de torque:


 

[1] http://www.adaptivecomputing.com/products/open-source/torque/

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *