Sistemas operativosTutoriales

Sistemas operativos para HPC ¿Cuáles se pueden instalar?

En el mundo del HPC o la supercomputación, todo parece muy extraño si lo comparamos con un PC convencional. Pero lo cierto es que estas grandes máquinas se parecen más de lo que imaginamos a nuestros equipos. Aquí vamos a adentrarnos en el mundo de los sistemas operativos para estos fines.

¿Qué necesita tener un sistema operativo para HPC?

HPC

Un sistema operativo para HPC (High Performance Computing) o supercomputación debe tener varias características para poder gestionar de manera eficiente los recursos de hardware y ejecutar aplicaciones complejas a gran escala. Por ejemplo:

  • Escalabilidad: debe ser capaz de escalarse horizontalmente para admitir un gran número de nodos y verticalmente para aprovechar al máximo la potencia de cada nodo. Debe poder gestionar de forma eficiente la comunicación y la sincronización entre los nodos, incluso en presencia de latencias y fallos.
  • Rendimiento: debe tener un bajo overhead para minimizar la sobrecarga de los recursos de computación y memoria. Además, debe estar optimizado para programación paralela, balanceo de carga de forma eficiente, transferencia de datos entre nodos y gestión avanzada de memoria, etc. También me gustaría agregar que los sistemas operativos de estos equipos no suelen tener interfaces gráficas, se usan mediante CLI, lo que también evita desperdiciar recursos para ejecutar el sistema gráfico.
  • Fiabilidad, estabilidad y robustez: debe ser muy estable, para evitar fallos e interrupciones, además de tener mecanismos de recuperación en caso de fallo, y protección contra corrupción en su FS.
  • Soporte para la arquitectura de hardware: el sistema operativo debe ser compatible con la arquitectura de hardware específica de la supercomputadora, incluyendo CPUs, GPUs, interconexiones y memoria.
  • Soporte para sistemas de archivos distribuidos: el OS debe soportar FS distribuidos que puedan proporcionar acceso eficiente a grandes conjuntos de datos distribuidos en múltiples nodos, tanto locales como remotos, en caso de que el supercomputador esté distribuido en varios edificios o lugares distantes.
  • Seguro: es vital que sea muy seguro, pero que también disponga de herramientas para securizar según las necesidades de cada caso, ya que son sistemas críticos que deben soportar incluso los ataques cibernéticos más sofisticados.

Y ¿qué sistemas operativos tienen estas características? Veamos…

Del dominio Unix…

Algunas de las supercomputadoras tempranas de la década de los años 60s, como la CDC 6600 de Control Data Corporation, usaban sistemas personalizados, como es el caso de Chippewa OS o COS. La serie CDC 7600 cambió COS por NOS (Network Operating System). Otro ejemplo es el IBM 7030 Stretch, otra de las más populares, y que no tenía sistema operativo como tal, sino que empleó un software base denominado IBM 7030 Monitor, haciendo las veces de sistema de gestión de recursos de hardware.

CDC fue uno de los grandes, hasta la llegada de Cray, una empresa de Seymour Cray que sentó las bases del HPC moderno. Con el CRAY-1 vimos la introducción del sistema CTSS o Cray Time-Sharing System, de tiempo compartido.

Conforme fueron evolucionando, y con la llegada de los sistemas UNIX, HPC y el mundo UNIX convergieron. El sistema operativo de AT&T aportaba precisamente lo que se buscaba, como robustez, fiabilidad, alto rendimiento, soporte de aplicaciones científicas, y seguridad. Por ello, en la década de los 80s comenzó su dominio en el sector.

BSD*

Los sistemas operativos BSD, como le ocurre a Linux, existen en diversas variantes. Este UNIX que data de la década de los 70s, poco a poco fue ganando popularidad en el sector HPC. Sistemas como NetBSD y FreeBSD están entre los más usados en máquinas como CRAY-2, y CMU CM-5. Actualmente son un porcentaje casi marginal, pese a que es muy portable, y disponible para infinidad de arquitecturas…

Solaris

solaris

Solaris, desarrollado inicialmente por Sun Microsystems y actualmente propiedad de Oracle, ha tenido una presencia histórica en el mundo del HPC (High Performance Computing), aunque su uso actual en este ámbito es relativamente limitado, en clusters o equipos HPC de Oracle, tanto los basados en x86 como los SPARC.

Su popularidad llegaría sobre los 90s, pero poco a poco ha ido cediendo terreno a Linux. Es más, incluso la propia Oracle opta preferiblemente por Linux para sus propias máquinas.

HP-UX

ux

Se trata del sistema operativo UNIX desarrollado por HP, y lanzado en 1983. Aporta todo lo que se puede esperar para el sector HPC, y está disponible para arquitecturas como x86, HP PA-RISC e IA-64, estas dos últimas abandonadas.

Desde los 90s, ha ido cayendo en picado, aunque lo hemos visto en máquinas muy importantes, como la HP Convex, CRAY-X1, etc. Actualmente no existen muchas máquinas que sigan manteniendo este sistema.

IBM AIX

IBM AIX fue otra de las implementaciones de UNIX que ha tenido una presencia histórica en el mundo del HPC (High Performance Computing). Desde su lanzamiento en 1986, como sucesor del UNIX de IBM RT/PC, se ha venido usando en máquinas propias de IBM basadas en la ISA POWER y también en algunas otras, aunque con la llegada de Linux, IBM lo empezó a ver con muy buenos ojos, apostando por él tanto para sus máquinas x86, como las POWER, así como las z/Architecture de sus mainframes.

Cray UNICOS

unicos

UNICOS (UNiversal COmputer Operating System) es un sistema operativo de tipo Unix desarrollado por Cray para sus supercomputadoras. Fue introducido por primera vez en 1985 con el sistema Cray-2 y se convirtió en el sistema operativo estándar para las supercomputadoras Cray posteriores, incluyendo las series J, C, T, X y Y.

Se basa en el UNIX System V de AT&T, con mejoras de rendimiento, escalabilidad, mejoras en el soporte para computación paralela, red y seguridad. A pesar de los esfuerzos, a finales de los 90s comienza su declive, pasando a apostar también por Linux como más adelante mostraré. Además, Cray fue adquirida por SGI en 2003, y ésta descontinuó el proyecto. Posteriormente, fue comprada por HPE (HP Enterprise).

macOS

Captura de pantalla macOS Big Sur

En el pasado Apple disponía de una versión Server de su sistema operativo UNIX. Actualmente eso no es así. No obstante, ni antes ni después la presencia de macOS ha sido importante en el HPC. Pero he querido incluirlo, ya que está presente en algunos servidores, y también en la nube, ofreciendo servicios con chips M-Series y sistema macOS a desarrolladores o interesados…

…a la fiebre de Linux

La época dorada de UNIX No duraría demasiado. En los 90s, cuando Linux apenas comenzaba sus pasos, poco a poco se iba haciendo hueco en el sector HPC. Por ejemplo, en 1996, ASCI Red sería la primera gran máquina en usar este sistema. Y en tan solo unos años, el éxito exponencial hace que se transforme en el sistema dominante por sus características similares a UNIX y por su flexibilidad al ser código abierto.

En 1996 solo había una máquina Linux, en 1998 ya representaba el 2% de la lista TOP500, llegando al 50% en 2004, el 90% en 2010, y el 100% actual…

Hoy día, el 100% de las máquinas HPC de la lista TOP500, es decir, los 500 supercomputadores más potentes del mundo, usan Linux. Ni rastro de otros UNIX. Fuera de la lista Top500, el dominio Linux sigue siendo casi total, pero hay hueco para otros sistemas operativos…

ZeptoOS

Un sistema operativo minimalista y de alto rendimiento, diseñado para supercomputadoras. Se basa en el kernel Linux, y ofrece una capa de abstracción de hardware, lo que lo hace interesante. Además, también consume pocos recursos y es muy escalable. A pesar de eso, su presencia en equipos de alto rendimiento no es muy elevada, pero merecía la pena citarlo.

SUSE

SUSE

Una distribución comercial de Linux empresarial con enfoque en la estabilidad, seguridad y confiabilidad, además de integrar multitud de proyectos y paquetes pensados para este sector, como los de SAS. La alemana SUSE tiene disponible su SLES (SUSE Linux Enterprise Server) que es de la más populares en el ámbito HPC, junto con Red Hat son de las mejores. Actualmente, tiene una cuota de entorno al 2% en la lista TOP500.

Red Hat

rhel

Con una cuota de en torno al 5% en la lista TOP500, otro de los grandes es RHEL (Red Hat Enterprise Linux). Red Hat fue una de las empresas de código abierto más poderosas, ahora propiedad de IBM. Al igual que SUSE, han desarrollado multitud de proyectos propios e integrado otros de terceros para hacerlo lo más completo posible para entornos empresariales. Por ejemplo, ofrece Red Hat OpenShift para implementaciones de contenedores y Red Hat Cloud Suite para gestión de nube híbrida.

Ubuntu Server

Canonical ha dominado el sector del escritorio en lo referente a Linux, y también ha lanzado una variante de su distribución Ubuntu especialmente pensada para HPC. Ésa a su vez se basa en Debian, con grandes características que la han hecho reinar, y con un gran soporte de hardware y proyectos interesantes creados «en casa». Sin embargo, en la lista Top500, representa un 1.6%.

Debian

deb

Una alternativa libre y mantenida por la comunidad con similitudes con Ubuntu es Debian. Ésta también se basa en paquetería DEB, y ofrece una base sólida para servidores, con una amplia disponibilidad de software.

CentOS

centos

Aunque poco a poco ha ido perdiendo terreno tras los cambios que hizo Red Hat, CentOS sigue siendo un distro mantenida por la comunidad y basada en RHEL. Como Debian, se aprecia su robustez, seguridad y estabilidad, pero en este caso basada en paquetería RPM.

Cray Linux Environment

Es un sistema operativo basado en Linux desarrollado por Cray para sus propias supercomputadoras, ya que está especialmente optimizado para hardware Cray, y con herramientas específicas para HPC. A diferencia de las anteriores, no es una distro disponible para uso general, ya que Cray no permite su uso fuera de sus clientes.

HPE Cray OS

Desarrollado por Hewlett Packard Enterprise (HPE) para sus supercomputadoras Cray, recuerda que antes comenté que HPE compró Cray para reforzar su presencia en el sector y poder luchar con otros gigantes como Dell, Lenovo, IBM, Fujitsu, etc. Similar a Cray Linux Environment, optimizado para la arquitectura Cray y ofrece herramientas específicas para HPC, tampoco disponible para uso general…

bullx SCS

Bull desarrolló esta distro para sus supercomputadoras. Está optimizado para el hardware que ofrece esta compañía, y no se conocen demasiados detalles al respecto, pese a ser el 1.6% del TOP500.

Linux/TOSS

Basado en Linux, se trata de un sistema operativo de tiempo real (RTOS) desarrollado para aplicaciones críticas que requieren fiabilidad y baja latencia. Este sistema tiene una cuota en Top500 similar al sistema de Bull y al de Canonical.

Oracle Linux

oracle

Distribución comercial de Linux empresarial desarrollada por Oracle. Basada en Red Hat Enterprise Linux (RHEL) y ofrece soporte para productos y tecnologías de Oracle. Aunque en este caso, sí está disponible para uso general, para el que lo quiera. Y, hay que decir, que aunque fue una distro bastante respetada, poco a poco se ha ido convirtiendo en un ecosistema más cerrado, más como quiere Oracle, por lo que ha perdido popularidad para uso general…

Otros

He citado algunas distros Linux para HPC, pero es casi imposible citarlas todas. Además de las anteriores, también hemos visto la proliferación de otros sistemas como Rocky Linux, VEOS, AlmaLinux, NVIDIA DGX OS, Scientific Linux o CCentOS, Amazon Linux, Kylin Linux, Sunway RaiseOS, etc.

También te recomiendo leer sobre las mejores distros Linux

Windows Server

Windows 10

Microsoft también ha creado una versión de Windows, basada en Windows NT, para HPC, como es Windows Server. Se diferencia del Windows para PC en algunos detalles, como su optimización para este sector, las herramientas de administración y configuración avanzadas, más robustez, estabilidad, y seguridad que el Windows base.

Es fácil de administrar, y es compatible con una gran cantidad de software, al igual que la plataforma de escritorio. Sin embargo, no es el más estable, ni el más seguro, y su licencia no es barata. Esto unido al dominio aplastante de Linux, han hecho que su presencia en HPC sea poca, especialmente en grandes máquinas, aunque sí está presente en mayor porcentaje en servidores más pequeños. Y, como no, disponible en multitud de servicios en la nube, como la propia Azure de Microsoft.

Puedes leer nuestra comparativa entre servidores rack, blade y torre

Muchos de los anteriores sistemas han tenido que portarse para soportar arquitectura Arm, ya que últimamente ha hecho acto de presencia en x86.

Multi-kernels

multikernel

Los sistemas operativos multikernels son una arquitectura que se basa en la ejecución de múltiples kernels independientes en un solo sistema, a diferencia de los tradicionales, con un solo núcleo. Estos sistemas, debido a sus características, también fueron usados en algunos sistemas HPC.

Por ejemplo, al tener varios núcleos independientes, cada uno cuenta con su propio espacio de direcciones y procesos, y se pueden comunicar entre sí. Esto permite mayor modularidad, escalabilidad, y fiabilidad al aislar fallos, ya que si un kernel falla, el resto puede continuar.

No obstante, estos sistemas no han sido jamás mayoría en el sector HPC, sino que se han usado junto a otros sistemas de los citados anteriormente para tareas específicas…

FusedOS

Un sistema operativo multikernel de código abierto diseñado para ser modular, seguro y escalable. Destaca especialmente por su sencillez y facilidad de mantenimiento, lo que lo hace interesante para el HPC.

Hobbes

Desarrollado por la Universidad de Nueva York, y como sistema experimental, se basa en el microkernel OKL4, con un enfoque especialmente pensado para la seguridad.

NIX

No hay que confundirlo con los *nix, o tipo Unix, sino que es un SO multikernel desarrollado por la Universidad de California, Berkeley. Se basa en el núcleo SeL4, también pensado para la seguridad, así como un lenguaje de programación para gestión de recursos llamado NixExpr, de ahí su nombre…

IHK/McKernel

IHK/McKernel es un proyecto de código abierto diseñado para ser modular, eficiente y escalable.
Utiliza un microkernel llamado «IHK» y kernels de usuario especializados para optimizar el rendimiento de diferentes aplicaciones.

mOS

Otro sistema de código abierto basado en L4, con mejoras para la seguridad, modularidad y adaptabilidad para diferentes necesidades dada su flexibilidad.

FFMK

Un sistema operativo multikernel de investigación desarrollado por la Universidad Técnica de Múnich. En este caso la base es SeL4, y con la seguridad como pilar central de su desarrollo.

HermitCore

Un microkernel de código abierto diseñado para ser pequeño, rápido y seguro. Se basa en la arquitectura RISC-V y ofrece un conjunto mínimo de funcionalidades para la ejecución de aplicaciones seguras y eficientes. Un proyecto interesante debido la creciente presencia de RISC-V…

Puedes dejar tus comentarios…

Isaac

Geek de los sistemas electrónicos, especialmente del hardware informático. Con alma de escritor y pasión por compartir todo el conocimiento sobre tecnología.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en info@profesionalreview.com
Botón volver arriba