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