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.