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.