View
2.160
Download
2
Category
Preview:
Citation preview
Un Clúster con SLURMUso y configuración
Miguel OlivánANAIS GIFNA
Universidad de Zaragoza
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
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→
SLURM
SLURM Sistema gestor de recursos→ Clusters heterogéneos Tolerante a fallos Configurable (gestión de nodos, trabajos, tareas
reservas, grupos, ...) Extensible
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
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
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
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
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 "$@"
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)
Supervisión
sview (visualización, cancelación, gestió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)
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
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
Enlaces
Slurm
Quick Start Administrator Guide Generador de configuración Configuración de expulsión de tareas
NIS
Guía rápida para Ubuntu Cfengine
Recommended