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 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)
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:
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.
^ "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. ISBN978-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