Procedimientos básicos en Cierzo
Información acerca de los procedimientos de gestión en Cierzo
Ingreso en el sistema
ssh idUsuario@cierzo.bifi.unizar.es
Trabajos
Enviar un trabajo :
Lanzamiento job normal (utilizando el binario xhpl como ejemplo) Ejemplo de script :
#!/bin/bash
#
#SBATCH -J linpack # job name
#SBATCH -o linpack.o%j # output and error file name (%j expands to jobID)
#SBATCH -N 12 # total number of nodes
#SBATCH --ntasks-per-node=24 # number of cores per node (maximum 24)
#SBATCH --exclusive
#SBATCH -p bifi # queue (partition)
#SBATCH --distribution=block # Para rellenar los nodos en modo fillup
module add shared
module load openmpi/intel/1.10.2
module load intel/compiler/64/15.0.6/2015.6.233
ulimit -s unlimited
mpirun -np $SLURM_NPROCS programa
Ejecución del script :
sbatch script.sh
Otro ejemplo de script incluyendo opciones de notificación y número de cores :
#!/bin/bash
#
#SBATCH -N 3
#SBATCH -c 6 # number of cores
#SBATCH --mem 100 # memory pool for all cores
#SBATCH -o slurm.%N.%j.out # STDOUT
#SBATCH -e slurm.%N.%j.err # STDERR
#SBATCH --mail-type=begin #Envía un correo cuando el trabajo inicia
#SBATCH --mail-type=end #Envía un correo cuando el trabajo finaliza
#SBATCH --mail-user=john.diaz@bifi.es #Dirección a la que se enví
for i in {1..300000}
do
echo $RANDOM >> SomeRandomNumbers.txt
done
sort SomeRandomNumbers.txt > SortedRandomNumbers.txt
Envío a GPU :
Lanzamiento de jobs con todas las GPUS Ejemplo de script. Importante, añadir la orden “module load cuda75”
#!/bin/bash
#Ejemplo para lanzar test linpack con las GPUs nodos81-84
#SBATCH -J linpackiGPU # job name
#SBATCH -o linpack.o%j # output and error file name (%j expands to jobID)
#SBATCH -N 4 # total number of nodes
#SBATCH --ntasks-per-node=2 # number of cores per node (maximum 24)
#SBATCH --exclusive
#SBATCH -p gpu # queue (partition)
#SBATCH --gres=gpu:2
#SBATCH -t 24:00:00 # run time (hh:mm:ss)
#SBATCH --distribution=block # Para rellenar los nodos en modo fillup
export LD_LIBRARY_PATH=../hpl-2.0_FERMI_v15/src/cuda/:$LD_LIBRARY_PATH
module add shared
module load cuda75
export MKL_NUM_THREADS=1
export OMP_NUM_THREADS=1
#Específico Linpack
export CUDA_DGEMM_SPLIT=.999
export CUDA_DTRSM_SPLIT=.999
export MKL_CBWR=AVX2
export I_MPI_PIN_DOMAIN=socket
mpirun -np 8 ./xhpl >& xhpl.log
Ejecución del script :
sbatch script.sh
Envío a Xeon Phi :
Ejemplo de script:
#!/bin/bash
#SBATCH -n 24 # total number of cores requested
#SBATCH --ntasks-per-node=24 # number of cores per node (maximum 24)
#SBATCH --exclusive
#SBATCH -p phi # queue (partition)
#SBATCH -t 12:00:00 # run time (hh:mm:ss)
module add shared
module load intel-cluster-runtime/intel64/3.7
ulimit -s unlimited
xhpl_offload_intel64
Ejecución del script :
sbatch script.sh
Cancelar un trabajo :
scancel job_id
Información sobre las colas :
sinfo
Ver los trabajos en cola:
squeue
Información detallada sobre las colas :
scontrol show partition
Ver información detallada de un trabajo:
scontrol show job identificadorJob
Estimación del tiempo de arranque de un proceso encolado :
squeue --start
Información de accounting de los trabajos :
sacct
Códigos de estado :
https://confluence.cscs.ch/display/KB/Meaning+of+Slurm+job+state+codes
Enlaces de interés :
Guía del usuario : https://slurm.schedmd.com/quickstart.html
Módulos
El paquete Modules es una herramienta que simplifica la inicialización de shells y permite a los usuarios moduficar fácilmente su entorno durante la sesión usando modulefiles.
Cada modulefile contiene la información que permite configurar el shell para una aplicación. Una vez que el paquete Modules se ha inicializado, el entorno puede ser modificado usando el comando module para interpretar dichos modulefiles
Listado de módulos disponibles:
module avail
Listado de módulos cargados:
module list
Cargar un módulo:
module load nombreModulo
Descargar un módulo:
module unload nombreModulo