1/6/2015 SLURM - usuarios.nlhpc.cl SLURM De usuarios.nlhpc.cl SLURM es el gestor de colas instalado en muchos de los súper computadores del TOP500 (//www.top500.org), y también en Leftraru. Si Ud. quiere lanzar tareas dentro de Leftaru, debe hacerlo a través de Slurm. Este es un pequeño tutorial que esperamos sirva a los usuarios para entender el funcionamiento básico de Slurm. Contenido 1 Login y Transferencia de Archivos 2 Introducción a los comandos slurm 3 Enviar un script 3.1 Particiones SLURM Leftraru 3.2 Script Básico, test.sh 3.3 Ejemplo de ejecución de un programa compilado con Intel MPI 3.3.1 squeue: Comprobar estado del trabajo 3.3.2 scancel: Cancelar un trabajo 3.4 sinfo Mostrar el estado de los nodos 4 Prioridad de tarea 4.1 Factores que determinan prioridad de tarea 4.2 Mostrar Fairshare 5 Job Arrays 5.1 Ejemplo de un Script Job Array 5.2 Otras opciones para jobs arrays 6 Bibliografía Login y Transferencia de Archivos Descripción de cómo iniciar la sesión utilizando la shell y transferencia segura de archivos hacia y desde el clúster. Sólo los inicios de sesión mediante Secure Shell (ssh) (http://usuarios.nlhpc.cl/index.php/Tutorial_ssh_con_putty) están permitidos. La transferencia de archivos debe utilizar un protocolo seguro, como sftp. Al clúster se puede acceder desde el dominio de red leftraru.nlhpc.cl en el puerto 2222. Introducción a los comandos slurm http://usuarios.nlhpc.cl/index.php/SLURM 1/5 1/6/2015 SLURM - usuarios.nlhpc.cl srun - ejecutar un comando en nodos de cómputo asignados sbatch - presentar un script de trabajo squeue - Mostrar estado de los trabajos en la cola scancel - eliminar un trabajo sinfo - Muestra el estado de los nodos de cómputo Enviar un script Particiones SLURM Leftraru slims: 128 nodos livianos fats: 4 nodos gruesos + mics en modo offload mics: partición que contiene las 12 Xeon Phi all: Todos los nodos slims+fats Script Básico, test.sh #!/bin/bash #SBATCH --job-name="TEST" #SBATCH --partition=slims #SBATCH --nodes=20 #SBATCH --output=test-srun.out #SBATCH --output=test-srun.out #SBATCH [email protected] #SBATCH --mail-type=ALL #SBATCH --requeue #Si un nodo falla, el trabajo que estaba ejecutándose se vuelve a encolar #Esto último especifica que la tarea será reencolada si es que falla. #La opción por defecto es no reencolar. #Variables, rutas y módulos echo $SLURM_ARRAY_TASK_ID; echo "SLURM_JOBID="$SLURM_JOBID echo "SLURM_JOB_NODELIST"=$SLURM_JOB_NODELIST echo "SLURM_NNODES"=$SLURM_NNODES echo "SLURMTMPDIR="$SLURMTMPDIR echo "working directory="$SLURM_SUBMIT_DIR module load intel/15.0.0 srun ./holamundo echo "Trabajo terminado"; Una vez terminado el script, podemos ejecutar con sbatch: [prueba@leftraru1 ~]$ sbatch test.sh Submitted batch job 45594 [prueba@leftraru1 ~]$ Ejemplo de ejecución de un programa compilado con Intel MPI El siguiente ejemplo, es exclusivo para una ejecución de un programa compilado con MPI de Intel. #!/bin/bash #SBATCH --job-name="TEST" http://usuarios.nlhpc.cl/index.php/SLURM 2/5 1/6/2015 SLURM - usuarios.nlhpc.cl #SBATCH --partition="slims" #SBATCH -n 40 #SBATCH --output=test-srun.out #SBATCH --error=test-srun.err module load intel impi mpirun ./hello_world_impi squeue: Comprobar estado del trabajo Puede utilizar squeue para saber el estado de una o varias de sus tareas [prueba@leftraru1 ~]$ squeue -u prueba JOBID PARTITION NAME USER ST 45594 slims TEST prueba R TIME NODES NODELIST(REASON) 0:49 20 cn[001-020] [prueba@leftraru1 ~]$ squeue -j 45596 JOBID PARTITION NAME USER ST 45596 slims TEST prueba R TIME NODES NODELIST(REASON) 0:03 20 cn[001-020] scancel: Cancelar un trabajo Con scancel Ud. puede matar un proceso en ejecución [prueba@leftraru1 ~]$ squeue -u prueba JOBID PARTITION NAME USER ST 45594 slims TEST prueba R [prueba@leftraru1 ~]$ scancel 45594 [prueba@leftraru1 ~]$ squeue -u prueba JOBID PARTITION NAME [prueba@leftraru1 ~]$ USER ST TIME NODES NODELIST(REASON) 0:59 20 cn[001-020] TIME NODES NODELIST(REASON) sinfo Mostrar el estado de los nodos [prueba@leftraru1 ~]$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST slims* up infinite 128 idle cn[001-128] fats up infinite 4 idle cnf[001-004] mics up infinite 12 idle cnf001-mic[0-2],cnf002-mic[0-2],cnf003-mic[0-2],cnf004-mic[0-2] all up infinite 132 idle cn[001-128],cnf[001-004] debug up 5:00 4 idle leftraru[1-4] [prueba@leftraru1 ~]$ Otro Ejemplo, se muestra sólo una partición específica [prueba@leftraru1 ~]$ sinfo -p slims http://usuarios.nlhpc.cl/index.php/SLURM 3/5 1/6/2015 SLURM - usuarios.nlhpc.cl PARTITION AVAIL TIMELIMIT NODES STATE NODELIST slims* up infinite 128 idle cn[001-128] [prueba@leftraru1 ~]$ Prioridad de tarea Cómo ver la prioridad del trabajo. Los factores que determinan la prioridad del trabajo, incluyendo la fórmula y pesos. Factores que determinan prioridad de tarea Edad la cantidad de tiempo que el trabajo ha estado esperando en la cola Tamaño de la tarea número de nodos solicitados por el trabajo Partición prioridad para una partición determinada Mientras más tareas se ejecuten en el cluster, menor será la prioridad. Mientras menos tareas se ejecuten en el clúster, más alta es la prioridad. Mostrar Fairshare sshare <flag> accounts=group_name all accounts=group_name #Muestra FairShare para los miembros del grupo Job Arrays Un Job Array (matriz de trabajo) es una colección de trabajos similares. Una Job Array es un grupo de puestos de trabajo casi idénticas presentadas con 1 script SLURM. Ejemplo de un Script Job Array #!/bin/bash #SBATCH --job-name="TEST" #SBATCH --array=0-1424 #SBATCH --partition=slims #SBATCH --output="Test6f00-%A_%a.out" #SBATCH [email protected] #SBATCH --mail-type=ALL #SBATCH --share echo $SLURM_ARRAY_TASK_ID; sleep 100; echo "Done"; Enviar el script: [prueba@leftraru1 ~]$ sbatch job_array.sh http://usuarios.nlhpc.cl/index.php/SLURM 4/5 1/6/2015 SLURM - usuarios.nlhpc.cl Otras opciones para jobs arrays #Ejecutar un job array después de un job array específico #SBATCH --depend=after:123 tarea.sh #Esto hará que el proceso no se inicie hasta que el jobarray 123 haya terminado. #Esperar un elemento específico dentro de un job array: sbatch --depend=after:123_4 my.job #Esto esperará al jobid 4 del jobid 123 Bibliografía Manual Oficial de Slurm (http://slurm.schedmd.com/documentation.html) Obtenido de «http://usuarios.nlhpc.cl/index.php?title=SLURM&oldid=115» Esta página fue modificada por última vez el 26 nov 2014, a las 14:37. Esta página se ha visitado 174 veces. El contenido está disponible bajo Creative Commons Reconocimiento Compartir Igual no comercial a menos que se indique lo contrario. http://usuarios.nlhpc.cl/index.php/SLURM 5/5
© Copyright 2024