Programador de trabajos gratuito y de código abierto para Linux y computadoras similares
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 grupos de computadoras del mundo .
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 monitorear el trabajo, generalmente un trabajo paralelo como la interfaz de paso de mensajes (MPI) en un conjunto de nodos asignados, y
- arbitrar la contienda por 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 la curva de Hilbert o la topología de red de árbol gordo para optimizar la localidad de las asignaciones de tareas en computadoras paralelas. [2]
Historia
Slurm comenzó su desarrollo como un esfuerzo de colaboración principalmente entre el Laboratorio Nacional Lawrence Livermore , SchedMD , [3] Linux NetworX, Hewlett-Packard y Groupe Bull como administrador de recursos de software libre. Se inspiró en el código cerrado Quadrics RMS y comparte una sintaxis similar. El nombre es una referencia al refresco de Futurama . [4] Más de 100 personas en 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 grandes centros informáticos.
En noviembre de 2021 [actualizar], la lista TOP500 de las computadoras más potentes 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 con alrededor de 100 complementos opcionales. En su configuración más sencilla, se puede instalar y configurar en un par de minutos. 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 necesaria ]
- Sin punto único de falla, demonios de respaldo, opciones de trabajo tolerantes a fallas
- 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 gratuito y de código abierto ( Licencia pública general GNU )
- Altamente configurable con alrededor de 100 complementos
- Programación de participación justa con cuentas bancarias jerárquicas
- Programación preventiva y en grupo (división de tiempo de trabajos paralelos)
- Integrado con base de datos para contabilidad y configuración.
- Asignaciones de recursos optimizadas para topología de red y topología en nodo (sockets, núcleos e hiperprocesos)
- Reserva avanzada
- 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 trabajo.
- Soporte del entorno paralelo de IBM (PE/POE)
- Soporte para matrices de trabajos
- 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 multifactoriales de priorización de trabajos
- Soporte para MapReduce+
- Soporte para buffer de ráfaga 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]
- Escalabilidad y estructura de datos de la matriz de trabajos mejorada
- Soporte para recursos genéricos heterogéneos.
- Agregar opciones de usuario para configurar el gobernador de la CPU
- Política automática de solicitud de trabajos basada en el valor de salida
- Informar el uso de API por usuario, tipo, recuento 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 de Linux , aunque también es compatible con algunos otros sistemas operativos basados en POSIX , incluidos BSD ( FreeBSD , NetBSD y OpenBSD ). [6] Slurm también admite varias arquitecturas informáticas únicas, que incluyen:
Licencia
Slurm está disponible bajo la Licencia Pública General GNU v2 .
Soporte comercial
En 2010, los desarrolladores de Slurm fundaron SchedMD, que mantiene la fuente canónica, proporciona desarrollo, soporte comercial de nivel 3 y servicios de capacitación. También se ofrece soporte comercial de Bull, Cray y Science + Computing.
Uso
El sistema "slurm" tiene tres partes principales:
- un demonio central `slurmctld` (control de 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, a menudo con ssh .
Los clientes pueden emitir comandos al demonio de control, que aceptaría y dividiría 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), `scancel` (eliminar un trabajo de la cola).
Los trabajos se pueden ejecutar en modo por lotes o en modo interactivo . Para el modo interactivo, un nodo informático iniciaría un shell, conectaría el 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, "sbatch" enviará el mismo trabajo. Para un trabajo en modo por lotes, sus salidas `stdout` y `stderr` generalmente se dirigen a archivos de texto para su posterior inspección.
Ver también
Referencias
- ^ "Ejecutar un trabajo en HPC usando Slurm | HPC | USC". hpcc.usc.edu . Archivado desde el original el 6 de marzo de 2019 . Consultado el 5 de marzo de 2019 .
- ^ Pascual, José Antonio; Navaridas, Javier; Miguel-Alonso, José (2009). Efectos de las políticas de asignación según la topología en el rendimiento de la programación . Estrategias de programación de trabajos para procesamiento paralelo. Apuntes de conferencias sobre informática. 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 de barrio pobre
Otras lecturas
- Balle, Susanne M.; Palermo, Daniel J. (2008). Mejora de un administrador de recursos de código abierto con soporte para múltiples núcleos y subprocesos múltiples . Estrategias de programación de trabajos para procesamiento paralelo. Apuntes de conferencias sobre 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: Utilidad sencilla de Linux para la gestión de recursos" (PDF) . Actas de la conferencia y exposición ClusterWorld . San Jose, California.
- Layton, Jeffrey B. (5 de febrero de 2009). "Caos NSA y Perceus: pila de software de clúster todo en uno". Revista Linux . Archivado desde el original el 11 de febrero de 2009.
{{cite journal}}
: Mantenimiento CS1: URL no apta ( enlace ) - Yoo, Andy B.; Jette, Morris A.; Grondona, Marcos (2003). SLURM: Utilidad sencilla de Linux para la gestión de recursos . Estrategias de programación de trabajos para procesamiento paralelo. Apuntes de conferencias sobre 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 barrios marginales
- SchedMD
- Configuración y uso de la arquitectura de Slurm Workload Manager
- Caltech HPC Center: Generador de scripts de trabajo