un clúster con slurm, uso y configuración

15
Un Clúster con SLURM Uso y configuración Miguel Oliván ANAIS - GIFNA Universidad de Zaragoza

Upload: miguelolivan

Post on 26-Jul-2015

2.160 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Un Clúster con SLURM, uso y configuración

Un Clúster con SLURMUso y configuración

Miguel OlivánANAIS ­ GIFNA

Universidad de Zaragoza

Page 2: Un Clúster con SLURM, uso y configuración

Clúster

Agrupación coordinada de ordenadores que se comportan como uno solo

Tipos según servicio esperado: Alto rendimiento Alta disponibilidad Balanceo de carga

Page 3: Un Clúster con SLURM, uso y configuración

Componentes

SLURM   Distribuye el trabajo en los nodos→

NIS   Sincroniza los usuarios→

NFS/SMB   Sistema de ficheros en red→

NTP   Sincronización de relojes→

Cfengine   Gestiona configuraciones→

Page 4: Un Clúster con SLURM, uso y configuración

SLURM

SLURM  Sistema gestor de recursos→ Clusters heterogéneos Tolerante a fallos Configurable (gestión de nodos, trabajos, tareas 

reservas, grupos, ...) Extensible

Page 5: Un Clúster con SLURM, uso y configuración

Imagen única

NIS  Network Information Service→ Gestión centralizada de usuarios

NFS   Network File System→ Permite compartir el sistema de ficheros para dar una 

imagen común del arbol de directorios a todos los nodos

SMB/CIFS→Server Message Block/Common Internet File System

'Análogo' a NFS – típico en NAS

Page 6: Un Clúster con SLURM, uso y configuración

sultan

4 nodos 1 nodo acceso + cómputo (4 procesadores) 3 nodos cómputo 

dos monoprocesador Uno 4 procesadores

 → 10 procesadores

Red local Gigabit Ethernet Recusos de almacenamiento compartido

Page 7: Un Clúster con SLURM, uso y configuración

Sistema de ficheros

Compartidos por todos los nodos:

NFS (a Gigabit Ethernet ­ ext3) /scratch (~50 Gb)

SMB (a Gigabit Ethernet – NAS RAID 5) /media/hardstorage (2 Tb)

Ideales para fich. entrada/salida si el volumen no es grande

SMB (a 10Mb Ethernet) /media/next /media/tpc

/media/megas Replicado para todos los nodos /programas

Page 8: Un Clúster con SLURM, uso y configuración

Uso SLURM

Uso básico: sbatch script [parametros]

El script contiene:

Variables de entorno adecuadas (PATH, LD_LIBRARY_PATH, ROOTSYS, G4INSTALL,...)

Llama al programa: srun program Puede usar variables de entorno definidas por SLURM 

(SLURM_JOB_ID, SLURM_JOB_CPUS_PER_NODE,...)

Asumimos tareas secuenciales, no multithread, no MPI

Si no, reserva de CPUs: sbatch -n4 script

Page 9: Un Clúster con SLURM, uso y configuración

Uso SLURM - Ejemplo

#!/bin/sh#Available variables in sbatch scriptecho $SLURM_JOB_IDecho $SLURM_JOB_CPUS_PER_NODE #Environment variables###GEANT4G4SYSTEM=Linux-g++G4WORKDIR=/media/next/SimData/laura/GeantWork/#[...]

export PATH=$PATH:$G4WORKDIR/bin/$G4SYSTEM #call slurm srun next225 "$@"

Page 10: Un Clúster con SLURM, uso y configuración

Uso SLURM - prioridades

Encolar tarea con más prioridad:

sbatch -p prior script [parametros]

La partición prior es más prioritaria que la de defecto

Esto se salta la cola de menos prioritarias (si las hay)

Permite tener 'dos vías' (o más) con distintas prioridades (y usuarios/grupos)

Existe opciones de configuración para expulsar a las menos prioritarias: cancelarlas o reencolarlas (demasiado expeditivas), suspenderlas (cambia la planificación) crear y restaurar y puntos checkpoints (no trivial)

Page 11: Un Clúster con SLURM, uso y configuración

Supervisión

sview (visualización, cancelación, gestión, ...)

Page 12: Un Clúster con SLURM, uso y configuración

Configuración de SLURM

Configurado el gestor de recursos para pensando en aplicaciones secuenciales que demandan procesador

CPU recurso escaso + aplicación secuencial   →SchedulerType=sched/backfill

Especialmente indicado para SPMD (Un sólo programa, distintos datos)

Válido para simulación GEANT4

¿Válido para análisis de datos?

Planificación FIFO (First in, first out)

Page 13: Un Clúster con SLURM, uso y configuración

Configuración de SLURM Prioridades

Partición: conjunto de nodos

Asignación de prioridades por partición sin expulsión de menos prioritario:

PartitionName=debug Nodes=sultan,nodo01,nodo02,nodo03 Default=YES MaxTime=INFINITE State=UP

PartitionName=prior Nodes=sultan,nodo01,nodo02,nodo03 Priority=10 Default=NO MaxTime=INFINITE State=UPPreemptType=preempt/partition_prio

Existen también prioridades basadas en otras métricas)

Existen expulsiones de menos prioritarias   suspensión, →cancelación, reencolado

Page 14: Un Clúster con SLURM, uso y configuración

Configuración

Slurm → /etc/slurm-llnl/slurm.conf

NIS →

/etc/hosts.allow

/etc/default/portmap

/etc/default/nis

/etc/yp.conf NFS/SMB →

/etc/fstab

/etc/exports NTP → /etc/ntp.conf