Uso de PBS

Anuncio
Laboratorio de Cómputo Avanzado
INSTRUCTIVO:
Uso de colas de trabajo con PBS
Revisión: 4
Modificado por: Enzo Medina
Fecha: 11/12/13
Introducción
Este documento presenta un breve instructivo para el correcto uso de los
recursos del cluster. Los trabajos de los usuarios deberán ejecutarse a través
del sistema de colas de procesos del servidor, implementado mediante el
software OpenPBS. Este sistema distribuye los procesos para que se ejecuten
en forma paralela (al mismo tiempo) en los nodos de procesamiento. Todos los
nodos tienen acceso vía NFS a los datos del usuario presentes en el servidor.
En la siguiente figura se observa un esquema de funcionamiento típico de los
procesos distribuidos en el cluster. En el ejemplo, hay 3 algoritmos que
procesan los datos del usuario al mismo tiempo. Estos datos se comparten por
la red automáticamente mediante el cluster.
Envío de trabajos
Para operar con el cluster se deben enviar procesos de trabajos a los nodos.
La primera parte de esta tarea es la creación de un archivo de texto que
contenga la información de los procesos a ejecutarse en el cluster. Todas estas
operaciones se deber realizar desde una conexión SSH al servidor.
La creación del archivo de texto se presenta con el siguiente ejemplo.
Suponga que se genera el archivo “experimento2.txt” con el siguiente
contenido:
/home/usuario/datos
matlab < algoritmo01.m > salida1.txt
2> error1.txt
matlab < algoritmo02.m > salida2.txt
2> error2.txt
matlab < algoritmo03.m > salida3.txt
2> error3.txt
La primera línea tiene el directorio de trabajo (donde están los scripts y los
datos), y las siguientes los procesos a mandar. La forma que tiene para
"salidaX.txt" y "errorX.txt" es para que guarde los mensajes de salida y error
respectivamente. Esto generalmente es útil si hay problemas.
Luego, se debe enviar el trabajo al servidor, para lo cual se utiliza el programa
encola:
encola -n 3 -d prueba1 -m [email protected] experimento1.txt
donde:
-n: indica cantidad de nodos (debe coincidir con lo esté en el archivo de
texto).
-d: (optativo) descripción del trabajo, corta, sin caracteres acentuados o
símbolos.
-m: (optativo) envía un mail al finalizar el trabajo.
Al enviar el trabajo se generan archivos temporales en el directorio de
trabajo, no deben ser borrados hasta que termine. Si se especificó una
descripción (por ejemplo: prueba1) se generan archivos como
"prueba1.neptuno.log" , de lo contrario los archivos se nombran "trabajo120823-.log". Estos tienen una descripción de lo enviado y finalizado. También
se genera un archivo "limpiar-NUMERO_DE_TRABAJO.sh" que permite
cancelar el trabajo antes de que termine. Los archivos temporales se borran si
el trabajo termina correctamente.
Administración de trabajos
Para ver el estado de los trabajos en el cluster se debe correr el comando
qstat:
qstat -as
La penúltima columna "S" (por State) indica si está corriendo (R, running), en
cola (Q, queued) o si se produjo un error (E). Si no hay nodos disponibles al
enviar el trabajo, el sistema lo ejecutará automáticamente cuando haya
suficiente nodos libres. Se pueden ver la cantidad de nodos libres con el
comando listar_libres.sh.
Si se requiere eliminar un trabajo encolado se deberá utilizar el script que se
genera al encolar el trabajo (limpiar-NUMERO_DE_TRABAJO.sh). Si se
trata de matar el proceso de forma manual se producirá una inconsistencia en
el sistema y se bloquearán procesos de otros usuarios.
Ante un comportamiento anormal o inesperado se deberá consultar al
administrador del cluster a la brevedad.
Descargar