Todo trabajo va a consistir en:
- Un script shell que sabe qué hay que hacer
- Una posible cabecera en ese script con modificadores de SBATCH
- Una orden de lanzamiento del trabajo.
Un trabajo trivial
El siguiente puede ser el contenido de un script llamado "trivual.sh"
#!/bin/bash
#SBATCH -o "outFile"%j".txt"
#SBATCH -e "errFile"%j".txt"
hostname
exit 0
Básicamente va a mostrar el nombre del host donde se va a ejecutar. Los trabajos se ejecutan donde dice el planificador de Slurm.
Una somera explicación de la cabecera del script es que se determinan ahí en vez de en línea de comandos hacia donde irán la salida estándar y los posibles errores.
Ejecución
Si creamos "trivial.sh" con el contenido indicado, se puede lanzar con el comando sbatch
[jhidalgo@atlas-login-j0caf9l4-001 ~]$ sbatch trivial.sh
Submitted batch job 659
(pasa espera para que se asigne un nodo de ejecución)
[jhidalgo@atlas-login-j0caf9l4-001 ~]$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
659 cola01 trivial. jhidalgo CF 0:07 1 atlas-cola01-c01g01-0
Tras la ejecución aparecerán los ficheros con el resultado. Nótese que el nombre incluye el JOBID. Esta es una de las ventajas de la cabecera SBATCH y es que puede acceder a variables de entorno que se conocen durante la ejecución.
-rw-rw-r-- 1 jhidalgo jhidalgo 0 dic 18 13:26 errFile660.txt
-rw-rw-r-- 1 jhidalgo jhidalgo 22 dic 18 13:26 outFile660.txt
-rw-rw-r-- 1 jhidalgo jhidalgo 90 dic 18 13:26 trivial.sh
[jhidalgo@atlas-login-j0caf9l4-001 ~]$ cat outFile660.txt
atlas-cola01-c01g01-0
Otra de las ventajas de las cabeceras SBATCH es que convierte el trabajo en autodescrito y se lanzaría siempre igual y a prueba de despistes en la linea de comandos.
Otros ejemplos más avanzados
Los puede encontrar listos para ser ejecutados en la carpeta /misc/software/examples de ATLAS.