SlideShare a Scribd company logo
1 of 15
Download to read offline
Un Clúster con SLURM
 Uso y configuración

     Miguel Oliván
    ANAIS ­ 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 script
echo $SLURM_JOB_ID
echo $SLURM_JOB_CPUS_PER_NODE

#Environment variables
###GEANT4
G4SYSTEM=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

More Related Content

What's hot

Advanced c programming in Linux
Advanced c programming in Linux Advanced c programming in Linux
Advanced c programming in Linux Mohammad Golyani
 
Glibc内存管理ptmalloc源代码分析4
Glibc内存管理ptmalloc源代码分析4Glibc内存管理ptmalloc源代码分析4
Glibc内存管理ptmalloc源代码分析4hans511002
 
Linux Networking Commands
Linux Networking CommandsLinux Networking Commands
Linux Networking Commandstmavroidis
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF AbyssSasha Goldshtein
 
Link analysis : Comparative study of HITS and Page Rank Algorithm
Link analysis : Comparative study of HITS and Page Rank AlgorithmLink analysis : Comparative study of HITS and Page Rank Algorithm
Link analysis : Comparative study of HITS and Page Rank AlgorithmKavita Kushwah
 
Recommendation Systems
Recommendation SystemsRecommendation Systems
Recommendation SystemsRobin Reni
 
Linux Memory Management
Linux Memory ManagementLinux Memory Management
Linux Memory ManagementNi Zo-Ma
 
Exploiting the Linux Kernel via Intel's SYSRET Implementation
Exploiting the Linux Kernel via Intel's SYSRET ImplementationExploiting the Linux Kernel via Intel's SYSRET Implementation
Exploiting the Linux Kernel via Intel's SYSRET Implementationnkslides
 
Summary of “An Automated Approach to Auditing Disclosure of Third-Party Data ...
Summary of “An Automated Approach to Auditing Disclosure of Third-Party Data ...Summary of “An Automated Approach to Auditing Disclosure of Third-Party Data ...
Summary of “An Automated Approach to Auditing Disclosure of Third-Party Data ...FabioDalCol
 
Memory Compaction in Linux Kernel.pdf
Memory Compaction in Linux Kernel.pdfMemory Compaction in Linux Kernel.pdf
Memory Compaction in Linux Kernel.pdfAdrian Huang
 
Overlapping community detection in Large-Scale Networks using BigCLAM model b...
Overlapping community detection in Large-Scale Networks using BigCLAM model b...Overlapping community detection in Large-Scale Networks using BigCLAM model b...
Overlapping community detection in Large-Scale Networks using BigCLAM model b...Thang Nguyen
 
Introduction Linux Device Drivers
Introduction Linux Device DriversIntroduction Linux Device Drivers
Introduction Linux Device DriversNEEVEE Technologies
 
Distributed data processing
Distributed data processingDistributed data processing
Distributed data processingAyisha Kowsar
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Macpaul Lin
 
Tutorial: Cross-compiling Linux Kernels on x86_64
Tutorial: Cross-compiling Linux Kernels on x86_64Tutorial: Cross-compiling Linux Kernels on x86_64
Tutorial: Cross-compiling Linux Kernels on x86_64Samsung Open Source Group
 
Physical Memory Models.pdf
Physical Memory Models.pdfPhysical Memory Models.pdf
Physical Memory Models.pdfAdrian Huang
 
Physical Memory Management.pdf
Physical Memory Management.pdfPhysical Memory Management.pdf
Physical Memory Management.pdfAdrian Huang
 

What's hot (20)

Advanced c programming in Linux
Advanced c programming in Linux Advanced c programming in Linux
Advanced c programming in Linux
 
Glibc内存管理ptmalloc源代码分析4
Glibc内存管理ptmalloc源代码分析4Glibc内存管理ptmalloc源代码分析4
Glibc内存管理ptmalloc源代码分析4
 
Linux Networking Commands
Linux Networking CommandsLinux Networking Commands
Linux Networking Commands
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF Abyss
 
Link analysis : Comparative study of HITS and Page Rank Algorithm
Link analysis : Comparative study of HITS and Page Rank AlgorithmLink analysis : Comparative study of HITS and Page Rank Algorithm
Link analysis : Comparative study of HITS and Page Rank Algorithm
 
BusyBox for Embedded Linux
BusyBox for Embedded LinuxBusyBox for Embedded Linux
BusyBox for Embedded Linux
 
Recommendation Systems
Recommendation SystemsRecommendation Systems
Recommendation Systems
 
Neo4j
Neo4jNeo4j
Neo4j
 
Linux Memory Management
Linux Memory ManagementLinux Memory Management
Linux Memory Management
 
Exploiting the Linux Kernel via Intel's SYSRET Implementation
Exploiting the Linux Kernel via Intel's SYSRET ImplementationExploiting the Linux Kernel via Intel's SYSRET Implementation
Exploiting the Linux Kernel via Intel's SYSRET Implementation
 
Iptables the Linux Firewall
Iptables the Linux Firewall Iptables the Linux Firewall
Iptables the Linux Firewall
 
Summary of “An Automated Approach to Auditing Disclosure of Third-Party Data ...
Summary of “An Automated Approach to Auditing Disclosure of Third-Party Data ...Summary of “An Automated Approach to Auditing Disclosure of Third-Party Data ...
Summary of “An Automated Approach to Auditing Disclosure of Third-Party Data ...
 
Memory Compaction in Linux Kernel.pdf
Memory Compaction in Linux Kernel.pdfMemory Compaction in Linux Kernel.pdf
Memory Compaction in Linux Kernel.pdf
 
Overlapping community detection in Large-Scale Networks using BigCLAM model b...
Overlapping community detection in Large-Scale Networks using BigCLAM model b...Overlapping community detection in Large-Scale Networks using BigCLAM model b...
Overlapping community detection in Large-Scale Networks using BigCLAM model b...
 
Introduction Linux Device Drivers
Introduction Linux Device DriversIntroduction Linux Device Drivers
Introduction Linux Device Drivers
 
Distributed data processing
Distributed data processingDistributed data processing
Distributed data processing
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)
 
Tutorial: Cross-compiling Linux Kernels on x86_64
Tutorial: Cross-compiling Linux Kernels on x86_64Tutorial: Cross-compiling Linux Kernels on x86_64
Tutorial: Cross-compiling Linux Kernels on x86_64
 
Physical Memory Models.pdf
Physical Memory Models.pdfPhysical Memory Models.pdf
Physical Memory Models.pdf
 
Physical Memory Management.pdf
Physical Memory Management.pdfPhysical Memory Management.pdf
Physical Memory Management.pdf
 

Similar to Un Clúster con SLURM, uso y configuración

File System Management
File System ManagementFile System Management
File System ManagementJuan Sánchez
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corteADOLFO BORJA
 
Instalacion y configuracion de postgre sql
Instalacion y configuracion de postgre sqlInstalacion y configuracion de postgre sql
Instalacion y configuracion de postgre sqlUPTM
 
Policyd: Instalacion y configuracion
Policyd: Instalacion y configuracionPolicyd: Instalacion y configuracion
Policyd: Instalacion y configuracioncriscega
 
Ltsp linux terminal server project-
Ltsp  linux terminal server project-Ltsp  linux terminal server project-
Ltsp linux terminal server project-jeysonh
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasLenin Hernandez
 
Cluster beowulf javier condori flores
Cluster beowulf   javier condori floresCluster beowulf   javier condori flores
Cluster beowulf javier condori floresJavier Condori Flores
 
28 el directorio sysconfig
28  el directorio sysconfig28  el directorio sysconfig
28 el directorio sysconfigAprende Viendo
 
Funciones principales de los sistemas operativos
Funciones principales de los sistemas operativosFunciones principales de los sistemas operativos
Funciones principales de los sistemas operativosIrving Hofstadter
 
UYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New featuresUYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New featuresNelson Calero
 
Configuracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasConfiguracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasMiguel Morales
 
Taller sistemas operativos
Taller sistemas operativosTaller sistemas operativos
Taller sistemas operativosJhonsnachez17
 

Similar to Un Clúster con SLURM, uso y configuración (20)

Administracion basica redes linux
Administracion basica redes linuxAdministracion basica redes linux
Administracion basica redes linux
 
Cluster
ClusterCluster
Cluster
 
Linux Terminal Server
Linux Terminal ServerLinux Terminal Server
Linux Terminal Server
 
File System Management
File System ManagementFile System Management
File System Management
 
Gestionando servidores con Puppet
Gestionando servidores con PuppetGestionando servidores con Puppet
Gestionando servidores con Puppet
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corte
 
Instalacion y configuracion de postgre sql
Instalacion y configuracion de postgre sqlInstalacion y configuracion de postgre sql
Instalacion y configuracion de postgre sql
 
Policyd: Instalacion y configuracion
Policyd: Instalacion y configuracionPolicyd: Instalacion y configuracion
Policyd: Instalacion y configuracion
 
Ltsp linux terminal server project-
Ltsp  linux terminal server project-Ltsp  linux terminal server project-
Ltsp linux terminal server project-
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
 
Cluster beowulf javier condori flores
Cluster beowulf   javier condori floresCluster beowulf   javier condori flores
Cluster beowulf javier condori flores
 
Taller de samba
Taller de sambaTaller de samba
Taller de samba
 
28 el directorio sysconfig
28  el directorio sysconfig28  el directorio sysconfig
28 el directorio sysconfig
 
06 airc firewalls
06 airc   firewalls06 airc   firewalls
06 airc firewalls
 
Funciones principales de los sistemas operativos
Funciones principales de los sistemas operativosFunciones principales de los sistemas operativos
Funciones principales de los sistemas operativos
 
UYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New featuresUYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New features
 
Configuracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasConfiguracion de Firewalls e Pasarelas
Configuracion de Firewalls e Pasarelas
 
sistemas distribuidos 4
sistemas distribuidos 4sistemas distribuidos 4
sistemas distribuidos 4
 
Red Hat Cluster
Red Hat ClusterRed Hat Cluster
Red Hat Cluster
 
Taller sistemas operativos
Taller sistemas operativosTaller sistemas operativos
Taller sistemas operativos
 

More from miguelolivan

ANAIS: status and prospects
ANAIS: status and prospectsANAIS: status and prospects
ANAIS: status and prospectsmiguelolivan
 
Adquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con ArduinoAdquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con Arduinomiguelolivan
 
Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...miguelolivan
 
Estimación tiempo muerto
Estimación tiempo muertoEstimación tiempo muerto
Estimación tiempo muertomiguelolivan
 
Sistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svnSistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svnmiguelolivan
 
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAISDiseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAISmiguelolivan
 

More from miguelolivan (6)

ANAIS: status and prospects
ANAIS: status and prospectsANAIS: status and prospects
ANAIS: status and prospects
 
Adquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con ArduinoAdquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con Arduino
 
Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...
 
Estimación tiempo muerto
Estimación tiempo muertoEstimación tiempo muerto
Estimación tiempo muerto
 
Sistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svnSistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svn
 
Diseño del software de adquisición de datos para ANAIS
Diseño del software de adquisición de datos para ANAISDiseño del software de adquisición de datos para ANAIS
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
  • 9. Uso SLURM - Ejemplo #!/bin/sh #Available variables in sbatch script echo $SLURM_JOB_ID echo $SLURM_JOB_CPUS_PER_NODE #Environment variables ###GEANT4 G4SYSTEM=Linux-g++ G4WORKDIR=/media/next/SimData/laura/GeantWork/ #[...] export PATH=$PATH:$G4WORKDIR/bin/$G4SYSTEM #call slurm srun next225 "$@"
  • 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)
  • 11. Supervisión  sview (visualización, cancelación, gestión, ...)
  • 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
  • 14. 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
  • 15. 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