Un sistema operativo para supercomputadoras es un sistema operativo diseñado para supercomputadoras . Desde finales del siglo XX, los sistemas operativos para supercomputadoras han experimentado grandes transformaciones, ya que se han producido cambios fundamentales en la arquitectura de las supercomputadoras . [ 1 ] Si bien los primeros sistemas operativos se adaptaban a medida a cada supercomputadora para ganar velocidad, la tendencia se ha alejado de los sistemas operativos propios y se ha orientado hacia alguna forma de Linux , [ 2 ] que se ejecutaba en todas las supercomputadoras de la lista TOP500 en noviembre de 2017. En 2021, las 10 mejores computadoras ejecutan, por ejemplo, Red Hat Enterprise Linux (RHEL), o alguna variante de este u otra distribución de Linux, por ejemplo, Ubuntu .
Dado que las supercomputadoras masivamente paralelas modernas suelen separar los cálculos de otros servicios mediante el uso de múltiples tipos de nodos , generalmente ejecutan diferentes sistemas operativos en diferentes nodos, por ejemplo, utilizando un núcleo ligero, pequeño y eficiente como Compute Node Kernel (CNK) o Compute Node Linux (CNL) en los nodos de cálculo, pero un sistema más grande como una distribución de Linux en los nodos de servidor y de entrada/salida (E/S). [ 3 ] [ 4 ]
Mientras que en un sistema informático multiusuario tradicional la planificación de tareas es, en efecto, un problema de asignación de tareas para los recursos de procesamiento y periféricos, en un sistema masivamente paralelo, el sistema de gestión de tareas necesita gestionar la asignación de recursos tanto computacionales como de comunicación, además de lidiar de manera eficiente con las inevitables fallas de hardware cuando hay decenas de miles de procesadores presentes. [ 5 ]
Aunque la mayoría de las supercomputadoras modernas utilizan el sistema operativo Linux, [ 6 ] cada fabricante ha realizado sus propios cambios específicos en la distribución de Linux que utiliza, y no existe un estándar industrial, en parte porque las diferencias en las arquitecturas de hardware requieren cambios para optimizar el sistema operativo a cada diseño de hardware. [ 1 ] [ 7 ]

Contexto y descripción general
En los inicios de la supercomputación, los conceptos arquitectónicos básicos evolucionaban rápidamente, y el software del sistema debía adaptarse a las innovaciones de hardware, que solían evolucionar con rapidez. [ 1 ] En los primeros sistemas, los sistemas operativos se adaptaban a medida a cada supercomputadora para aumentar su velocidad; sin embargo, en la prisa por desarrollarlos, surgieron serios problemas de calidad del software y, en muchos casos, el costo y la complejidad del desarrollo del software del sistema se convirtieron en un problema tan importante como el del hardware. [ 1 ]

En la década de 1980, el costo del desarrollo de software en Cray llegó a igualar lo que gastaban en hardware, y esa tendencia fue en parte responsable del abandono de los sistemas operativos propios en favor de la adaptación de software genérico. [ 2 ] La primera ola de cambios en los sistemas operativos se produjo a mediados de la década de 1980, cuando se abandonaron los sistemas operativos específicos de los proveedores en favor de Unix . A pesar del escepticismo inicial, esta transición resultó exitosa. [ 1 ] [ 2 ]
A principios de la década de 1990, se produjeron cambios importantes en el software de los sistemas de supercomputación. [ 1 ] Para entonces, el creciente uso de Unix había comenzado a cambiar la forma en que se veía el software de sistema. El uso de un lenguaje de alto nivel ( C ) para implementar el sistema operativo y la dependencia de interfaces estandarizadas contrastaban con los enfoques orientados al lenguaje ensamblador del pasado. [ 1 ] A medida que los proveedores de hardware adaptaban Unix a sus sistemas, se añadieron nuevas y útiles características a Unix, por ejemplo, sistemas de archivos rápidos y planificadores de procesos configurables . [ 1 ] Sin embargo, todas las empresas que adaptaron Unix hicieron cambios únicos en él, en lugar de colaborar en un estándar de la industria para crear "Unix para supercomputadoras". Esto se debió en parte a que las diferencias en sus arquitecturas requerían estos cambios para optimizar Unix para cada arquitectura. [ 1 ]
A medida que los sistemas operativos de propósito general se estabilizaron, las supercomputadoras comenzaron a tomar prestado y adaptar código crítico del sistema de estos, y se basaron en el amplio conjunto de funciones secundarias que los acompañaban. [ 1 ] Sin embargo, al mismo tiempo, el tamaño del código de los sistemas operativos de propósito general crecía rápidamente. Para cuando el código basado en Unix alcanzó las 500 000 líneas, su mantenimiento y uso se convirtieron en un desafío. [ 1 ] Esto dio lugar a la adopción de microkernels , que utilizaban un conjunto mínimo de funciones del sistema operativo. Sistemas como Mach en la Universidad Carnegie Mellon y ChorusOS en INRIA fueron ejemplos de los primeros microkernels. [ 1 ]
La separación del sistema operativo en componentes independientes se hizo necesaria a medida que las supercomputadoras desarrollaron diferentes tipos de nodos, por ejemplo, nodos de cómputo frente a nodos de E/S. Por lo tanto, las supercomputadoras modernas suelen ejecutar diferentes sistemas operativos en diferentes nodos, por ejemplo, utilizando un núcleo ligero, pequeño y eficiente como CNK o CNL en los nodos de cómputo, pero un sistema más grande, como una distribución derivada de Linux, en los nodos de servidor y E/S. [ 3 ] [ 4 ]
Sistemas primitivos

La CDC 6600 , generalmente considerada la primera supercomputadora del mundo, ejecutaba el sistema operativo Chippewa , que posteriormente se implementó en varias otras computadoras de la serie CDC 6000. [ 9 ] Chippewa era un sistema de control de trabajos bastante simple , derivado de la anterior CDC 3000 , pero influyó en los sistemas posteriores KRONOS y SCOPE . [ 9 ] [ 10 ]
El primer Cray-1 fue entregado al Laboratorio de Los Alamos sin sistema operativo ni ningún otro software. [ 11 ] Los Alamos desarrolló el software de aplicación y el sistema operativo. [ 11 ] El sistema principal de tiempo compartido para el Cray 1, el Sistema de Tiempo Compartido de Cray (CTSS), fue desarrollado posteriormente en los Laboratorios de Livermore como descendiente directo del Sistema de Tiempo Compartido de Livermore (LTSS) para el sistema operativo CDC 6600 de veinte años antes. [ 11 ]
En el desarrollo de supercomputadoras, el aumento de los costos del software pronto se volvió dominante, como lo demuestra el hecho de que en la década de 1980 el costo del desarrollo de software en Cray creció hasta igualar el costo del hardware. [ 2 ] Esta tendencia fue en parte responsable del cambio del sistema operativo propio de Cray al sistema UNICOS basado en Unix . [ 2 ] En 1985, la Cray-2 fue el primer sistema en comercializarse con el sistema operativo UNICOS. [ 12 ]
Casi al mismo tiempo, ETA Systems desarrolló el sistema operativo EOS para su uso en sus supercomputadoras ETA10 . [ 13 ] Escrito en Cybil , un lenguaje similar a Pascal de Control Data Corporation , EOS puso de manifiesto los problemas de estabilidad en el desarrollo de sistemas operativos estables para supercomputadoras y, finalmente, se ofreció un sistema similar a Unix en la misma máquina. [ 13 ] [ 14 ] Las lecciones aprendidas del desarrollo del software del sistema ETA incluyeron el alto nivel de riesgo asociado con el desarrollo de un nuevo sistema operativo para supercomputadoras y las ventajas de usar Unix con su amplia base existente de bibliotecas de software de sistema. [ 13 ]
A mediados de la década de 1990, a pesar de la inversión existente en sistemas operativos más antiguos, la tendencia apuntaba al uso de sistemas basados en Unix, lo que también facilitaba el uso de interfaces gráficas de usuario (GUI) interactivas para la computación científica en múltiples plataformas. [ 15 ] El cambio hacia un sistema operativo comercial tuvo detractores, quienes citaron el ritmo acelerado y el enfoque del desarrollo de Linux como un obstáculo importante para su adopción. [ 16 ] Como escribió un autor: "Es probable que Linux se ponga al día, pero ahora tenemos sistemas a gran escala". Sin embargo, esa tendencia continuó ganando impulso y, para 2005, prácticamente todas las supercomputadoras utilizaban algún sistema operativo similar a Unix . [ 17 ] Estas variantes de Unix incluían IBM AIX , el sistema de código abierto Linux y otras adaptaciones como UNICOS de Cray. [ 17 ] A finales del siglo XX, se estimaba que Linux controlaba la mayor parte del mercado de la supercomputación. [ 1 ] [ 18 ]
Enfoques modernos

La supercomputadora IBM Blue Gene utiliza el sistema operativo CNK en los nodos de cómputo, pero emplea un kernel modificado basado en Linux llamado I/O Node Kernel ( INK ) en los nodos de E/S. [ 3 ] [ 19 ] CNK es un kernel ligero que se ejecuta en cada nodo y admite una única aplicación para un único usuario en ese nodo. Para optimizar el funcionamiento, el diseño de CNK se mantuvo simple y minimalista, con la memoria física mapeada estáticamente y sin necesidad de proporcionar ni planificación ni cambio de contexto. [ 3 ] CNK ni siquiera implementa la E/S de archivos en el nodo de cómputo, sino que la delega a nodos de E/S dedicados. [ 19 ] Sin embargo, dado que en Blue Gene varios nodos de cómputo comparten un único nodo de E/S, el sistema operativo del nodo de E/S requiere multitarea, de ahí la elección del sistema operativo basado en Linux. [ 3 ] [ 19 ]
Mientras que en los sistemas informáticos multiusuario tradicionales y las primeras supercomputadoras, la planificación de trabajos era, en efecto, un problema de planificación de tareas para los recursos de procesamiento y periféricos, en un sistema masivamente paralelo, el sistema de gestión de trabajos necesita gestionar la asignación de recursos tanto computacionales como de comunicación. [ 5 ] Es esencial ajustar la planificación de tareas y el sistema operativo en diferentes configuraciones de una supercomputadora. Un planificador de trabajos paralelos típico tiene un planificador maestro que instruye a varios planificadores esclavos para que inicien, supervisen y controlen los trabajos paralelos , y recibe periódicamente informes de ellos sobre el estado del progreso de los trabajos. [ 5 ]
Algunos, pero no todos, los planificadores de supercomputadoras intentan mantener la localidad de ejecución de trabajos. El planificador PBS Pro utilizado en los sistemas Cray XT3 y Cray XT4 no intenta optimizar la localidad en su interconexión de toro tridimensional , sino que simplemente utiliza el primer procesador disponible. [ 20 ] Por otro lado, el planificador de IBM en las supercomputadoras Blue Gene tiene como objetivo explotar la localidad y minimizar la contención de red asignando tareas de la misma aplicación a uno o más planos medios de un grupo de nodos de 8x8x8. [ 20 ] El planificador Slurm Workload Manager utiliza un algoritmo de mejor ajuste y realiza una planificación de curva de Hilbert para optimizar la localidad de las asignaciones de tareas. [ 20 ] Varias supercomputadoras modernas, como Tianhe-2, utilizan Slurm, que arbitra la contención de recursos en todo el sistema. Slurm es de código abierto , basado en Linux, muy escalable y puede gestionar miles de nodos en un clúster de computadoras con un rendimiento sostenido de más de 100 000 trabajos por hora. [ 21 ] [ 22 ]
Véase también
Referencias
- 1 2 3 4 5 6 7 8 9 10 11 12 13 Enciclopedia de Computación Paralela por David Padua 2011 ISBN 0-387-09765-1páginas 426–429.
- 1 2 3 4 5 Conocer las máquinas: ensayos sobre el cambio técnico por Donald MacKenzie 1998 ISBN 0-262-63188-1páginas 149–151.
- ^ Procesamiento paralelo Euro-Par 2004: Décima Conferencia Internacional Euro-Par 2004 , por Marco Danelutto, Marco Vanneschi y Domenico Laforenza ISBN 3-540-22924-8página 835.
- 1 2 Una evaluación del Cray XT3 del Laboratorio Nacional de Oak Ridge por Sadaf R. Alam, et al., International Journal of High Performance Computing Applications, febrero de 2008 vol. 22 no. 1 52–80.
- 1 2 3 Arquitectura de gestión de trabajos abierta para la supercomputadora Blue Gene/L por Yariv Aridor et al. en Estrategias de programación de trabajos para procesamiento paralelo por Dror G. Feitelson 2005 ISBN 978-3-540-31024-2páginas 95–101.
- ↑ Vaughn-Nichols, Steven J. (18 de junio de 2013). "Linux sigue dominando las supercomputadoras" . ZDNet . Consultado el 20 de junio de 2013 .
- ↑ "Top500 OS chart" . Top500.org. Archivado del original el 5 de marzo de 2012. Consultado el 31 de octubre de 2010 .
- ↑ Apuntando a la informática: apoyo gubernamental y competencia internacional por Kenneth Flamm 1987 ISBN 0-8157-2851-4página 82
- 1 2 La revolución informática en Canadá por John N. Vardalas 2001 ISBN 0-262-22064-4página 258.
- ↑ Diseño de una computadora: la Control Data 6600 por James E. Thornton, Scott, Foresman Press 1970 página 163.
- 1 2 3 Apuntando a la informática: apoyo gubernamental y competencia internacional por Kenneth Flamm 1987 ISBN 0-8157-2851-4páginas 81–83.
- ↑ Lester T. Davis, El equilibrio de poder, una breve historia de las arquitecturas de hardware de Cray Research en "Computación de alto rendimiento: tecnología, métodos y aplicaciones" por JJ Dongarra 1995 ISBN 0-444-82163-5página 126.
- 1 2 3 Lloyd M. Thorndyke, La desaparición de los sistemas ETA en "Fronteras de la supercomputación II" de Karyn R. Ames, Alan Brenner 1994 ISBN 0-520-08401-2páginas 489–497.
- ↑ Pasado, presente, paralelo: un estudio de los sistemas informáticos paralelos disponibles por Arthur Trew 1991 ISBN 3-540-19664-1página 326.
- ↑ Fronteras de la supercomputación II por Karyn R. Ames, Alan Brenner 1994 ISBN 0-520-08401-2página 356.
- ↑ Brightwell, Ron Riesen, Rolf Maccabe, Arthur. "Sobre la idoneidad de los sistemas operativos comerciales para sistemas informáticos equilibrados a gran escala" (PDF) . Consultado el 29 de enero de 2013 .
{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace ) - 1 2 Poniéndose al día: el futuro de la supercomputación por Susan L. Graham, Marc Snir, Cynthia A. Patterson, Consejo Nacional de Investigación 2005 ISBN 0-309-09502-6página 136.
- ↑ Revista Forbes, 15/03/05: Linux domina las supercomputadoras
- 1 2 3 Euro-Par 2006 Procesamiento paralelo: 12.ª Conferencia Internacional Euro-Par , 2006, por Wolfgang E. Nagel, Wolfgang V. Walter y Wolfgang Lehner ISBN 3-540-37783-2.
- ^ Estrategias de programación de trabajos para procesamiento paralelo: por Eitan Frachtenberg y Uwe Schwiegelshohn 2010 ISBN 3-642-04632-0páginas 138–144.
- ↑ SLURM en SchedMD
- ↑ Jette, M. y M. Grondona, SLURM: Utilidad sencilla de Linux para la gestión de recursos en las Actas de la Conferencia ClusterWorld, San José, California, junio de 2003
- Sistemas operativos de supercomputadoras
- Sistemas operativos
- Supercomputadoras