Enviar tareas al cluster lamb

Tareas por lotes

Tareas por lotes o “Batch jobs” son tareas que no interactuan con el usuario durante su ejecución. Son enviadas una vez y son canalizadas a la cola de ejecución.

Las especificaciones de varios ajustes y las llamadas al software a ser ejecutado estan contenidas en el script de envío creado y editado por el usuario.

De forma general para enviar una tarea al manejador de colas es usar el comando de PBS Torque qsub.

$ qsub script_tarea.sh

Donde script_tarea.sh contiene información sobre la tarea.

Todos las tareas serán enviadas desde el nodo maestro lamb.

Tareas interactivas

Las tareas interactivas se especifican usando el parametro -I en el comando qsub. Permite la interaccion del usuario durante su ejecución. Entregan al usuario un nuevo shell desde donde se pueden llamar a las aplicaciones.

La forma general para enviar tareas interactivas es:

$ qsub -X -I -q default -l nodes=1 -d $PWD

Donde -I es requerido y especifica una tarea interactiva. El parametro -X reenvia el servidor gráfico del nodo que se nos asigno a nuestra sesión, permitiendo usar aplicaciones gráficas.

Si un nodo esta disponible, el comando nos devuelve un shell en el nodo que se nos asignó, en caso contrario el comando se quedara en espera.

Directivas basicas

Las siguientes opciones se pueden encotnra en un script para envio de tareas usando qsub. Pueden aparecer como lineas en el script que comienzan con #PBS o como parametros en linea al comando qsub.

Opción Descripción Ejemplo Notas
#PBS -q nombre-cola Asigna una cola de ejecución #PBS -q intel Asigna el job a la cola intel
#PBS -N nombreTarea Le da un nombre a la tarea #PBS -N MiTarea Por defecto usa el nombre del script de envio de la tarea
#PBS -l mem=<Tamaño> Maxima cantidad de memoria física que podra usar nuestra tarea (MB) #PBS -l mem=200MB Si se excede de esa cantidad la tarea es abortada
#PBS -l walltime=<tiempo> Tiempo maximo que la tarea puede permanecer en ejecución. #PBS -l walltime=12:00:00 12 horas en ejecución como maximo
#PBS -l nodes=N:ppn=T Numero de nodos y el numero de cores por nodo que solicitamos #PBS -l nodes=6:ppn=20 Se solicitan 6 nodos de los cuales se usan 20 cores en c/u
#PBS -M <email> Correo electronico para notificaciones de estado de tarea. #PBS -M hmedrano@cicese.mx Se envía un correo al usuario cuando finaliza la tarea
#PBS -o <ruta> Ruta para el archivo de salida de la consola. #PBS -o salida.out Salida estandar, se genera un archivo salida.out
#PBS -e <ruta> Ruta al archivo de errores. #PBS -e errores.err Mensajes de error estandar.
#PBS -j oe Opción para combinar la salida estandar y error en un solo archivo #PBS -j oe Combina el error estandar y salida estandar al mismo archivo definido en -o

Variables de ambiente PBS

Nombre variable Descripción
$PBS_NODEFILE Ruta del archivo que contiene la lista de los nodos asignados por PBS.
$PBS_O_WORKDIR Directorio desde donde qsub fue llamado.
$PBS_O_INITDIR Directorio de trabajo para la tarea (Especificado por la directiva -d de qsub
$PBS_JOBNAME Nombre de la tarea especificado por el usuario.
$PBS_O_LOGNAME Nombre del usuario que envía la tarea.
$PBS_NUM_PPN Numero de procesadores por nodo solicitados (ppn)
$PBS_JOBID Numero de identificación unico de la tarea.

El listado de variables completo esta disponible en la documentación oficial de Torque.