La carga de trabajo Gerente de Slurm , anteriormente conocido como sencilla utilidad Linux para la Gestión de Recursos ( SLURM ), o simplemente Slurm , es un libre y de código abierto planificador de tareas para Linux y Unix-como granos , utilizados por muchos de del mundo superordenadores y clusters de ordenadores .
Lanzamiento estable | 20.02.3, 19.05.7 |
---|---|
Repositorio | |
Escrito en | C |
Sistema operativo | Linux , BSD |
Tipo | Programador de trabajos para clústeres y supercomputadoras |
Licencia | Licencia pública general GNU |
Sitio web | slurm |
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 para que puedan realizar el 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 disputas 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 la red de árbol gordo para optimizar la ubicación de las asignaciones de tareas en computadoras paralelas. [2]
Historia
Slurm comenzó el desarrollo como un esfuerzo de colaboración principalmente por el Laboratorio Nacional Lawrence Livermore , SchedMD , [3] Linux NetworX, Hewlett-Packard y Groupe Bull como administrador de recursos de software libre. Se inspiró en Quadrics RMS de código cerrado y comparte una sintaxis similar. El nombre es una referencia al refresco de Futurama . [4] Más de 100 personas de todo el mundo han contribuido al proyecto. Desde entonces, se ha convertido en un sofisticado programador de lotes capaz de satisfacer los requisitos de muchos grandes centros informáticos.
A noviembre de 2017[actualizar]La lista TOP500 de las computadoras más poderosas del mundo indica que Slurm es el administrador de carga de trabajo en seis de los diez principales sistemas, incluido Sunway TaihuLight con 10,649,600 núcleos de computación.
Estructura
El diseño de Slurm es muy modular 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 notables
Las características notables de Slurm incluyen lo siguiente: [ cita requerida ]
- Sin un solo punto 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 aproximadamente 100 complementos
- Programación equitativa con cuentas bancarias jerárquicas
- Programación preventiva y en grupo (división del 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 hyperthreads)
- Reserva anticipada
- Los nodos inactivos se pueden apagar
- Se pueden arrancar 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 la 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 de IBM Parallel Environment (PE / POE)
- Soporte para matrices de trabajos
- Perfiles de trabajos (muestreo periódico del uso de CPU de cada tarea, uso de memoria, consumo de energía, uso de red y sistema de archivos)
- Algoritmos sofisticados de priorización de trabajos multifactoriales
- Soporte para MapReduce +
- Soporte para búfer de ráfagas que acelera el movimiento de datos científicos
Se anuncian las siguientes funciones para la versión 14.11 de Slurm, lanzada en noviembre de 2014: [5]
- Escalabilidad y estructura de datos de matriz de trabajos mejorada
- Soporte para recursos genéricos heterogéneos
- Agregar opciones de usuario para configurar el gobernador de la CPU
- Política de cola de trabajos automática basada en el valor de salida
- Informar el uso de la 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 trabajar 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, brinda desarrollo, soporte comercial de nivel 3 y servicios de capacitación. El soporte comercial también está disponible en Bright Computing , Bull, Cray y Science + Computing.
Ver también
- Programador de trabajos y cola por lotes para clústeres
- Cúmulo 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 usando Slurm | HPC | USC" . hpcc.usc.edu . Consultado el 5 de marzo de 2019 .[ enlace muerto ]
- ^ Pascual, José Antonio; Navaridas, Javier; Miguel-Alonso, José (2009). Efectos de las políticas de asignación con reconocimiento de topología sobre el rendimiento de la programación . Estrategias de programación de trabajos para procesamiento paralelo. Apuntes de conferencias en Ciencias de la Computación. 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 simple 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
Otras lecturas
- Balle, Susanne M .; Palermo, Daniel J. (2008). Mejora de un administrador de recursos de código abierto con soporte de múltiples núcleos / subprocesos múltiples . Estrategias de programación de trabajos para procesamiento paralelo. Apuntes de conferencias en Ciencias de la Computación . 4942 . pag. 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 simple 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 .
- Yoo, Andy B .; Jette, Morris A .; Grondona, Mark (2003). SLURM: Utilidad Linux simple para la gestión de recursos . Estrategias de programación de trabajos para procesamiento paralelo. Apuntes de conferencias en Ciencias de la Computación. 2862 . pag. 44 . CiteSeerX 10.1.1.10.6834 . doi : 10.1007 / 10968987_3 . ISBN 978-3-540-20405-3.
enlaces externos
- Documentación de Slurm
- SchedMD
- Configuración y uso de la arquitectura de Slurm Workload Manager