Diseño del software de adquisición de datos para ANAIS
Un Clúster con SLURM, uso y configuración
1. Un Clúster con SLURM
Uso y configuración
Miguel Oliván
ANAIS GIFNA
Universidad de Zaragoza
2. 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
3. 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
4. SLURM
SLURM →Sistema gestor de recursos
Clusters heterogéneos
Tolerante a fallos
Configurable (gestión de nodos, trabajos, tareas
reservas, grupos, ...)
Extensible
5. 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
6. 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
7. 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
8. 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
10. 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)
12. 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)
13. 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