Envío de trabajos al Cluster

Envío de trabajos al Cluster

Explicación de la forma de trabajo Cada usuario ingresará a mazinger.ing.puc.cl vía SSH, el cual procesará todas las peticiones que le sean enviadas. Este servidor es...

Explicación de la forma de trabajo

Cada usuario ingresará a mazinger.ing.puc.cl vía SSH, el cual procesará todas las peticiones que le sean enviadas. Este servidor es para que los usuarios prueben su código y luego envíen sus trabajos a los nodos de computo,  no es para ejecutar trabajos.

Al enviar un trabajo, este es recibido por un servidor de cabecera, el cual se encarga de distribuir el trabajo en los nodos para que sea resuelto. Posteriormente se podrá ver los resultados dependiendo del tipo de salida que haya definido el usuario.

Colas de trabajo

Los trabajos deben ser enviados a una cierta cola de trabajo, esto hace que se pueda ordenar mejor la ejecución de los trabajos de los usuarios. Las listas habilitadas para el uso son:

Full: Esta cola de trabajo tiene acceso a todos los recursos del clúster y puede ser utilizada por todos los usuarios. Los usuarios deben tener la precaución de no acaparar todos los recursos.

Ver recursos disponibles

Antes de enviar un trabajo al cluster se deben verificar los recursos disponibles para configurar correctamente el archivo PBS, para eso se debe ejecutar:

squeue

Enviar un trabajo

El comando para enviar un trabajo es sbatch, el cual permite colocar un trabajo en una cola. Se recomienda crear un script que permita definir ciertos parámetros para el trabajo, hay ejemplos mas abajo. Posteriormente se podrá enviar el trabajo como:

sbatch submit.sh

Solicitud de CPU

#!/bin/bash

# Nombre del trabajo
#SBATCH --job-name=Prueba1
# Archivo de salida
#SBATCH --output=salida.txt
# Cola de trabajo
#SBATCH --partition=full
# Reporte por correo
#SBATCH --mail-type=ALL
#SBATCH --mail-user=usuario@ing.puc.cl
# Solicitud de cpus
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1


python calculo.py

Solicitud de nodos

#!/bin/bash

# Nombre del trabajo
#SBATCH --job-name=Prueba1
# Archivo de salida
#SBATCH --output=salida.txt
# Cola de trabajo)
#SBATCH --partition=full
# Reporte por correo
#SBATCH --mail-type=ALL
#SBATCH --mail-user=usuario@ing.puc.cl
# Solicitud de cpus
#SBATCH --nodes=2


python calculo.py

Monitoreo de trabajos

Para monitorear los trabajos se puede utilizar el comando squeue, sinfo y smap.

El comando squeue produce una salida similar a esta:

JOBID PARTITION  NAME     USER  ST TIME NODES NODELIST
23    full       Prueba1  user1 R  0:05 1     n11

El comando sinfo produce una salida similar a esta:

PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
full*        up   infinite      1  down* n10
full*        up   infinite      1    mix n11
full*        up   infinite     14   idle n[1-9,12-16]

El comando smap entrega una versión ncurses del comando squeue.

Eliminar trabajos

Si por algún motivo desea eliminar un trabajo, lo puede realizar con el comando scancel. Por ejemplo para eliminar el trabajo que aparece en el ejemplo anterior se debe ejecutar:

scancel 23

Salida de trabajo

Las salidas de los trabajos se almacenaran en el archivo que se indique con el parámetro “–output”, además en los ejemplos se indican los parámetros para que llegue información por correo.