El gestor de cargas de trabajo Slurm , anteriormente conocido como Simple Linux Utility for Resource Management ( SLURM ), o simplemente Slurm , es un planificador de tareas gratuito y de código abierto para núcleos Linux y similares a Unix , utilizado por muchos de los superordenadores y clústeres informáticos del mundo .
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. [ 4 ] Proporciona tres funciones clave:
- asignar acceso exclusivo y/o no exclusivo a 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 contención por los recursos mediante la gestión de una cola de trabajos pendientes.
Historia
Slurm comenzó su desarrollo como un esfuerzo colaborativo principalmente por Lawrence Livermore National Laboratory , SchedMD , [ 5 ] Linux NetworX, Hewlett-Packard y Groupe Bull como un gestor de recursos de software libre. La primera versión se lanzó en 2002. [ 6 ] Se inspiró en el software de código cerrado Quadrics RMS y comparte una sintaxis similar. El nombre es una referencia al refresco de Futurama . [ 7 ] Más de 250 personas de todo el mundo han contribuido al proyecto. Desde entonces, ha evolucionado hasta convertirse en un sofisticado planificador de lotes capaz de satisfacer los requisitos de muchos grandes centros de computación.
En 2010, los desarrolladores de Slurm fundaron SchedMD , que mantiene el código fuente original, ofrece desarrollo, soporte comercial de nivel 3 y servicios de capacitación. También se puede obtener soporte comercial de Bull , Cray y Science + Computing (filial de Atos ).
A partir de noviembre de 2021 , Slurm es el gestor de carga de trabajo en aproximadamente el 60% de las supercomputadoras TOP500 . [ 8 ]
Estructura
El diseño de Slurm es muy modular, con aproximadamente 100 complementos opcionales. En su configuración más sencilla, se puede instalar y configurar en un par de minutos. Las configuraciones más avanzadas ofrecen integración con bases de datos para la contabilidad, la gestión de límites de recursos y la priorización de cargas de trabajo.
Características
Las características de Slurm incluyen: [ 9 ]
- Sin un único punto de fallo, demonios de respaldo, 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 de GNU )
- Altamente configurable con aproximadamente 100 complementos.
- Programación de reparto equitativo con cuentas bancarias jerárquicas
- Planificación preventiva y en grupo (división temporal de trabajos paralelos)
- Integrado con la base de datos para contabilidad y configuración.
- Asignación de recursos optimizada para la topología de red y la topología en el nodo (sockets, núcleos e hyperthreads).
- Reserva anticipada
- Los nodos inactivos se pueden apagar.
- Se pueden arrancar diferentes sistemas operativos para cada tarea.
- Planificación para recursos genéricos (por ejemplo, unidad de procesamiento gráfico )
- Contabilidad en tiempo real hasta el nivel de tarea (identifica tareas específicas con alto consumo de CPU o memoria).
- Límites de recursos por usuario o cuenta bancaria
- Contabilización del consumo de energía por trabajo
- Compatibilidad con IBM Parallel Environment (PE/POE)
- Soporte para matrices de trabajos
- Análisis del rendimiento de las tareas (muestreo periódico del uso de la CPU, la memoria, el consumo de energía, la red y el sistema de archivos de cada tarea).
- Algoritmos sofisticados de priorización de tareas multifactoriales
- Compatibilidad con MapReduce+
- Compatibilidad con búfer de ráfaga que acelera el movimiento de datos científicos.
- Soporte para recursos genéricos heterogéneos
- Política de reencolamiento automático de trabajos basada en el valor de salida
Plataformas compatibles
Las versiones recientes de Slurm solo se ejecutan en Linux . Las versiones anteriores se habían adaptado a algunos otros sistemas operativos basados en POSIX , incluidos los BSD ( FreeBSD , NetBSD y OpenBSD ) [ 10 ] , pero esto ya no es factible, ya que Slurm ahora requiere cgroups para las operaciones principales. Los clústeres que ejecutan sistemas operativos distintos de Linux deberán usar un sistema de procesamiento por lotes diferente, como LPJS [ 11 ] . Slurm también admite varias arquitecturas informáticas únicas, entre ellas:
- Modelos IBM BlueGene /Q, incluyendo el IBM Sequoia de 20 petaflops.
- Cray XT, XE y Cascade
- Tianhe-2 es un sistema de 33,9 petaflops 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
Uso

El slurmsistema consta de tres partes principales:
slurmctld, un demonio de control central que se ejecuta en un único nodo de control (opcionalmente con copias de seguridad de conmutación por error );- Numerosos nodos informáticos, cada uno con uno o más
slurmddemonios; - Clientes que se conectan al nodo administrador, a menudo mediante ssh .
- Los clientes pueden enviar comandos al demonio de control, que los aceptará y dividirá la carga de trabajo entre los demonios de computación.
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 pueden ejecutarse en modo por lotes o en modo interactivo . En el modo interactivo, un nodo de cómputo inicia una consola, conecta al cliente y ejecuta el trabajo. Desde allí, el usuario puede observar e interactuar con el trabajo mientras se ejecuta. Generalmente, los trabajos interactivos se utilizan para la depuración inicial, y después de la depuración, el mismo trabajo se envía mediante sbatch. En el caso de un trabajo en modo por lotes, sus stdoutsalidas stderrse suelen guardar en archivos de texto para su posterior análisis.
Véase también
Referencias
- ↑ "Versión v25.11.4" . 12 de marzo de 2026. Consultado el 13 de abril de 2026 .
- ↑ "Versión v25.05.7" . 12 de marzo de 2026. Consultado el 13 de abril de 2026 .
- ↑ "slurm/COPYING at master" . Consultado el 1 de diciembre de 2025 .
- ↑ Pascual, Jose Antonio; Navaridas, Javier; Miguel-Alonso, Jose (2009). Efectos de las políticas de asignación conscientes de la topología en el rendimiento de la planificación . Estrategias de planificación de trabajos para el procesamiento paralelo. Lecture Notes in Computer Science. Vol. 5798. pp. 138–144 . doi : 10.1007/978-3-642-04633-9_8 . hdl : 10810/71571 . ISBN 978-3-642-04632-2.
- ↑ "Soporte, desarrollo e instalación comercial de Slurm" . SchedMD . Consultado el 23 de febrero de 2014 .
- ↑ "Historial de Slurm - SchedMD" . SchedMD . Archivado del original el 18 de julio de 2025. Consultado el 10 de noviembre de 2025 .
- ↑ "SLURM: Utilidad simple de Linux para la gestión de recursos" (PDF) . 23 de junio de 2003. Consultado el 11 de enero de 2016 .
- ↑ "Ejecutar un trabajo en HPC usando Slurm" . hpcc.usc.edu . Centro de Computación de Alto Rendimiento - Universidad del Sur de California. Archivado del original el 6 de marzo de 2019. Consultado el 5 de marzo de 2019 .
- ↑ "Slurm Workload Manager - Descripción general" . slurm.schedmd.com . Consultado el 10 de octubre de 2025 .
- ↑ Plataformas Slurm
- ↑ Bacon, Jason (26 de agosto de 2025), outpaddling/LPJS , consultado el 10 de octubre de 2025
Lecturas adicionales
- Balle, Susanne M.; Palermo, Daniel J. (2008). Mejora de un gestor de recursos de código abierto con soporte para multinúcleo/multihilo . Estrategias de planificación de trabajos para procesamiento paralelo. Lecture Notes in Computer Science . Vol. 4942. p. 37. doi : 10.1007/978-3-540-78699-3_3 . ISBN 978-3-540-78698-6.
- Jette, M.; Grondona, M. (junio de 2003). "SLURM: Utilidad sencilla de Linux para la gestión de recursos" (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 del original el 11 de febrero de 2009.
- Yoo, Andy B.; Jette, Morris A.; Grondona, Mark (2003). SLURM: Utilidad simple de Linux para la gestión de recursos . Estrategias de planificación de trabajos para el procesamiento paralelo. Lecture Notes in Computer Science. Vol. 2862. p. 44. CiteSeerX 10.1.1.10.6834 . doi : 10.1007 /10968987_3 . ISBN 978-3-540-20405-3.
Enlaces externos
- Programación de trabajos
- Computación paralela
- computación en malla
- computación en clúster
- Software libre programado en C
- Software que utiliza la Licencia Pública General de GNU.