Información general
Para enviar un trabajo, debemos diferenciar dos partes:
- Solicitud de recursos: consisten en reservar una cantidad de CPU, calcular la duración esperada, reserva de RAM o espacio en disco, etc
- Tareas a ejecutar: describen las acciones que se deben realizar.
Lo usual para enviar un trabajo, es crear un script que contenga las dos partes anteriores. Si el script contiene comentarios con el prefijo SBATCH, el sistema SLURM los interpreta como parámetros para las solicitudes de recursos y otras opciones de envío. Estas directivas deben aparecer en la parte superior, antes de cualquier otra línea, excepto la primera línea del script que debe ser #!/bin/bash. Puede obtener la lista completa de parámetros en la página de manual de sbatch man sbatch.
También es posible enviar un trabajo directamente desde la línea de comandos indicando los recursos a utilizar y el script de ejecución.
Enviar trabajo desde línea de comandos
Para enviar un trabajo a una de las particiones hay que utilizar el comando sbatch
sbatch [opciones] [script para mandar a particion]
- [opciones] parámetros para solicitar los recursos, se pueden indicar explicitamente o incluirlos en el script de ejecución.
- [script para mandar a particion] es un fichero en el que se deben poner todos los comandos que necesite el usuario a la hora de ejecutar su aplicación.
Una vez enviado el trabajo, este es controlado por el sistema de particiones y los recursos van siendo asignados al usuario dependiendo de la particion a la que haya enviado el trabajo.
SBATCH: opciones útiles
Estas son algunas opciones útiles, si necesita un listado detallado puede consultar en el siguiente enlace: man sbatch
- –job-name [job_name] Nombre del trabajo
- –nodes [nodes] Número de nodos a utilizar
- –mem [nodes] Indica la memoria real requerida por nodo
- –partition [partition] Partición donde se enviará el trabajo
- –time [hh:mm:ss] Establece un tiempo límite para la ejecución del trabajo
- –output [[/path/]file] Fichero de salida del trabajo
- –error [[/path/]file] Fichero donde se escribe la salida de error estándar del trabajo
- –chdir [/path/] Establece el directorio de trabajo antes de ejecutar el script
- –mail-user [email] Dirección de e-mail a la que se enviarán emails ante cambios de estado del trabajo.
- –mail-type [ALL|BEGIN|END|FAIL] Estados para los que se enviará un email:
- ALL – email en cualquier estado
- BEGIN – email cuando comienza el trabajo
- END – email cuando finaliza el trabajo
- FAIL – email cuando se suspende el trabajo
SRUN: opciones útiles
Con el comando srun, podemos enviar trabajos en tiempo real a una partición o ejecutar un trabajo interactivo. Para información más detallada puede acceder al siguiente enlace: man srun
srun [opciones] [comando]
Script de ejemplo para lanzar desde línea de comandos
El siguiente ejemplo es un script para mandar trabajos, donde se usan algunas de las opciones indicadas en el apartado anterior:
#!/bin/bash
#SBATCH --nodes=5
#SBATCH --partition albaicin-fat
#SBATCH --job-name=nombre_trabajo
#SBATCH --error=error%j.err
#SBATCH --output=salida%j.out
#SBATCH --time=48:00:00
/SCRATCH/grupo/user/mi_script.sh
Generador de trabajos para SLURM
En el portal de acceso para investigadores, en el apartado ‘Trabajos/Enviar trabajo’, puede utilizar una herramienta llamada ‘Generador de trabajos para SLURM’ que le facilitará el proceso de interacción con el superordenador y el envío de scripts.
Básicamente es un módulo diferenciado en tres partes:
- Comandos: podrá incluir los comandos que desea enviar al superodenador para su procesamiento. Si ya dispone de una secuencia de comandos previamente creada, puede indicar aquí la ruta de ejecución de su script (normalmente ubicada en su directorio SCRATCH), o si lo prefiere, puede pegar directamente el contenido de su script de ejecución teniendo en cuenta lo siguiente:
- No debe incluir ningún argumento relacionado con SLURM ni debe utilizar el parámetro !#bin/bash, ya que el propio sistema se encargará de añadirlo en pasos posteriores.
- SLURM: debe indicar la partición donde se ejecutará su trabajo y las opciones de configuración de SLURM como por ejemplo el nombre del trabajo, nodos a usar, tiempo de procesamiento máximo, …
- Enviar: genera un script final con toda la información relativa a comandos y configuración de SLURM, que puede descargar a su equipo local o enviar directamente al superordenador.