Slurm Workload Manager , anteriormente conocido como Simple Linux Utility for Resource Management ( SLURM ), o simplemente Slurm , es un programador de trabajos gratuito y de código abierto para Linux y kernels similares a Unix , utilizado por muchas de las supercomputadoras y clústeres de computadoras del mundo .
Proporciona tres funciones clave:
- asignar acceso exclusivo y/o no exclusivo a los recursos (nodos informáticos) a los usuarios durante un período de tiempo determinado para que puedan realizar su trabajo,
- proporcionar un marco para iniciar, ejecutar y supervisar el trabajo, normalmente un trabajo paralelo como la Interfaz de Paso de Mensajes (MPI) en un conjunto de nodos asignados, y
- arbitrar la disputa por los recursos mediante la gestión de una cola de trabajos pendientes.
Slurm es el administrador de carga de trabajo en aproximadamente el 60% de las supercomputadoras TOP500 . [1]
Slurm utiliza un algoritmo de mejor ajuste basado en la programación de curvas de Hilbert o en la topología de red de árbol gordo para optimizar la localidad de las asignaciones de tareas en computadoras paralelas. [2]
Historia
Slurm comenzó a desarrollarse como un esfuerzo colaborativo principalmente entre Lawrence Livermore National Laboratory , SchedMD , [3] Linux NetworX, Hewlett-Packard y Groupe Bull como un administrador de recursos de software libre. Se inspiró en el Quadrics RMS de código cerrado y comparte una sintaxis similar. El nombre es una referencia a la gaseosa en Futurama . [4] Más de 100 personas de todo el mundo han contribuido al proyecto. Desde entonces, ha evolucionado hasta convertirse en un sofisticado programador por lotes capaz de satisfacer los requisitos de muchos centros informáticos grandes.
A partir de noviembre de 2021 [actualizar], la lista TOP500 de las computadoras más poderosas del mundo indica que Slurm es el administrador de carga de trabajo en más de la mitad de los diez sistemas principales.
Estructura
El diseño de Slurm es muy modular y cuenta con alrededor de 100 complementos opcionales. En su configuración más simple, se puede instalar y configurar en un par de minutos. Las configuraciones más sofisticadas brindan integración de bases de datos para contabilidad, administración de límites de recursos y priorización de cargas de trabajo.
Características
Las características de Slurm incluyen: [ cita requerida ]
- Sin un único punto de fallo, demonios de copia de seguridad, opciones de trabajo tolerantes a fallos
- Altamente escalable (programa hasta 100.000 trabajos independientes en los 100.000 sockets de IBM Sequoia )
- Alto rendimiento (hasta 1000 envíos de trabajos por segundo y 600 ejecuciones de trabajos por segundo)
- Software libre y de código abierto ( Licencia Pública General GNU )
- Altamente configurable con alrededor de 100 complementos.
- Programación de reparto equitativo con cuentas bancarias jerárquicas
- Programación preventiva y grupal (división temporal de trabajos paralelos)
- Integrado con base de datos para contabilidad y configuración.
- Asignaciones de recursos optimizadas para la topología de red y la topología en el nodo (sockets, núcleos e hiperprocesos)
- Reserva anticipada
- Los nodos inactivos se pueden apagar
- Se pueden iniciar diferentes sistemas operativos para cada trabajo
- Programación de recursos genéricos (por ejemplo, unidad de procesamiento de gráficos )
- Contabilidad en tiempo real hasta el nivel de tarea (identificar tareas específicas con alto uso de CPU o memoria)
- Límites de recursos por usuario o cuenta bancaria
- Contabilización del consumo de energía por puesto de trabajo
- Soporte de IBM Parallel Environment (PE/POE)
- Soporte para matrices de trabajos
- Creación de perfiles de trabajo (muestreo periódico del uso de CPU, uso de memoria, consumo de energía, uso de red y sistema de archivos de cada tarea)
- Sofisticados algoritmos de priorización de tareas multifactoriales
- Compatibilidad con MapReduce+
- Soporte para buffer de ráfagas que acelera el movimiento de datos científicos
Se anuncian las siguientes características para la versión 14.11 de Slurm, lanzada en noviembre de 2014: [5]
- Estructura de datos y escalabilidad de la matriz de trabajos mejorada
- Soporte para recursos genéricos heterogéneos
- Agregar opciones de usuario para configurar el regulador de CPU
- Política de puesta en cola automática de trabajos basada en el valor de salida
- Informe sobre el uso de la API por usuario, tipo, cantidad y tiempo consumido
- Los nodos de puerta de enlace de comunicación mejoran la escalabilidad
Plataformas compatibles
Slurm está desarrollado principalmente para funcionar junto con distribuciones Linux , aunque también es compatible con algunos otros sistemas operativos basados en POSIX , incluidos los BSD ( FreeBSD , NetBSD y OpenBSD ). [6] Slurm también admite varias arquitecturas informáticas únicas, que incluyen:
- Modelos IBM BlueGene /Q, incluido el IBM Sequoia de 20 petaflop
- Cray XT, XE y Cascade
- Tianhe-2 es un sistema de 33,9 petaflop con 32.000 chips Intel Ivy Bridge y 48.000 chips Intel Xeon Phi con un total de 3,1 millones de núcleos
- Entorno paralelo de IBM
- Antón
Licencia
Slurm está disponible bajo la Licencia Pública General GNU v2 .
Soporte comercial
En 2010, los desarrolladores de Slurm fundaron SchedMD, que mantiene el código fuente canónico, proporciona desarrollo, soporte comercial de nivel 3 y servicios de capacitación. Bull , Cray y Science + Computing (filial de Atos ) también ofrecen soporte comercial .
Uso

El sistema «slurm» tiene tres partes principales:
- un demonio central `slurmctld` (control slurm) que se ejecuta en un único nodo de control (opcionalmente con copias de seguridad de conmutación por error );
- muchos nodos informáticos, cada uno con uno o más demonios `slurmd`;
- clientes que se conectan al nodo administrador, generalmente con ssh .
Los clientes pueden emitir comandos al demonio de control, que aceptará y dividirá la carga de trabajo entre los demonios informáticos.
Para los clientes, los comandos principales son `srun` (poner en cola un trabajo interactivo), `sbatch` (poner en cola un trabajo), `squeue` (imprimir la cola de trabajos) y `scancel` (eliminar un trabajo de la cola).
Los trabajos se pueden ejecutar en modo por lotes o en modo interactivo . En el modo interactivo, un nodo de cómputo iniciaría un shell, conectaría al cliente a él y ejecutaría el trabajo. Desde allí, el usuario puede observar e interactuar con el trabajo mientras se ejecuta. Por lo general, los trabajos interactivos se utilizan para la depuración inicial y, después de la depuración, el mismo trabajo se enviaría mediante `sbatch`. En el caso de un trabajo en modo por lotes, sus salidas `stdout` y `stderr` se dirigen normalmente a archivos de texto para su inspección posterior.
Véase también
- Programador de trabajos y colas de lotes para clústeres
- Clúster de Beowulf
- Programador de clústeres de Maui
- Recursos de aplicaciones de clúster de código abierto (OSCAR)
- ESFUERZO DE TORSIÓN
- Motor de cuadrícula Univa
- Plataforma LSF
Referencias
- ^ "Ejecución de un trabajo en HPC con Slurm | HPC | USC". hpcc.usc.edu . Archivado desde el original el 2019-03-06 . Consultado el 2019-03-05 .
- ^ Pascual, Jose Antonio; Navaridas, Javier; Miguel-Alonso, Jose (2009). Efectos de las políticas de asignación que tienen en cuenta la topología en el rendimiento de la programación . Estrategias de programación de tareas para el procesamiento paralelo. Lecture Notes in Computer Science. Vol. 5798. págs. 138–144. doi :10.1007/978-3-642-04633-9_8. ISBN 978-3-642-04632-2.
- ^ "Soporte comercial, desarrollo e instalación de Slurm". SchedMD . Consultado el 23 de febrero de 2014 .
- ^ "SLURM: Utilidad sencilla de Linux para la gestión de recursos" (PDF) . 23 de junio de 2003 . Consultado el 11 de enero de 2016 .
- ^ "Slurm - Novedades". SchedMD . Consultado el 29 de agosto de 2014 .
- ^ Plataformas Slurm
Lectura adicional
- Balle, Susanne M.; Palermo, Daniel J. (2008). Mejora de un gestor de recursos de código abierto con compatibilidad con múltiples núcleos y subprocesos . Estrategias de programación de tareas para el procesamiento paralelo. Apuntes de clase en informática . Vol. 4942. pág. 37. doi :10.1007/978-3-540-78699-3_3. ISBN . 978-3-540-78698-6.
- Jette, M.; Grondona, M. (junio de 2003). "SLURM: Simple Linux Utility for Resource Management" (PDF) . Actas de la conferencia y exposición ClusterWorld . San José, California.
- Layton, Jeffrey B. (5 de febrero de 2009). "Caos NSA y Perceus: pila de software de clúster todo en uno". Linux Magazine . Archivado desde el original el 11 de febrero de 2009.
{{cite journal}}: CS1 maint: URL no apta ( enlace ) - Yoo, Andy B.; Jette, Morris A.; Grondona, Mark (2003). SLURM: Utilidad Linux sencilla para la gestión de recursos . Estrategias de programación de tareas para el procesamiento paralelo. Apuntes de clase en informática. Vol. 2862. pág. 44. CiteSeerX 10.1.1.10.6834 . doi :10.1007/10968987_3. ISBN . 978-3-540-20405-3.
Enlaces externos
- Documentación de Slurm
- Programa MD
- Configuración y uso de la arquitectura de Slurm Workload Manager
- Caltech HPC Center: generador de guiones de trabajo