La lista bianual TOP500 es la referencia clara desde hace años a la hora de hablar de las supercomputadoras más potentes del mundo, y en ella hemos podido ir comprobando cómo estas máquinas iban ganando en potencia y prestaciones de forma asombrosa.
Los cambios en el mundo de la supercomputación también se han notado en otro apartado: el de los sistemas operativos. En esta última edición de la lista se ha producido algo que parecía inevitable, y Linux domina de forma absoluta porque las 500 supercomputadoras más potentes del todo el mundo hacen uso de este sistema operativo. ¿Por qué Linux sí y Windows o macOS no?
Linux omnipresente en la lista TOP500
El sistema operativo Linux comenzó a aparecer en esa lista hace casi 20 años. Lo hizo en la lista de junio de 1998, donde aparecía el Avalon Cluster de Estados Unidos, con 140 procesadores Alpha EV56 en la posición 259. La lista estaba plagada de supercomputadores en las que se usaban variantes comerciales de Unix como IRIX (Silicon Graphics), UNICOS (Cray), AIX (IBM) o Solaris (Sun), y en ella tampoco había presencia de Windows o MacOS, que por entonces estaban casi totalmente dedicados al segmento del usuario final.
Las cosas empezaron a cambiar en los años siguientes, pero el sistema operativo de Apple jamás tuvo una presencia notoria en dichas listas de supercomputadores. Su máxima popularidad la alcanzó en noviembre de 2005 y junio de 2006, cuando 5 sistemas hacían uso de este sistema operativo. En noviembre de 2008 tan solo uno lo hacía, momento a partir del cual macOS desapareció de la lista.
Windows tuvo un comportamiento similar en todo ese tiempo, y su presencia en la lista TOP500 fue testimonial. Algunos sistemas se mantuvieron más años en la lista, pero nunca hubo más de 4 supercomputadoras en total en toda la lista basadas en dicha plataforma, que desapareció de la lista tras la edición de junio de 2015.
La evolución de Linux fue espectacular en este sentido, y su crecimiento fue imparable sobre todo entre noviembre de 2002 y noviembre de 2009. En esos años se pasó de las 71 supercomputadoras que en aquel momento usaban Linux a las 448 que lo hacían en el final de esa etapa. La conquista estaba prácticamente consolidada, y durante los últimos años más y más sistemas han ido siendo conquistados por un sistema operativo que ha demostrado convertirse en la opción de facto para el mundo de la supercomputación.
La victoria de Linux ha supuesto la debacle de UNIX y sus variantes comerciales, que dominaban completamente este mercado desde junio de 1993. En la edición de noviembre de 1998 en la que Linux hacía su aparición irónicamente esos sistemas UNIX lograron su mayor cuota de mercado: el 99,4% de la lista, 497 supercomputadoras, los usaban. A partir de ahí, caída en picado porque cada vez más y más supercomputadoras iban pasándose al sistema operativo Open Source por excelencia.
La supercomputación es perfecta para Linux
Hay muchas razones para el éxito de Linux en el mundo de la supercomputación, y la primera de ellas es que Linux es algo así como una variante más de los sistemas comerciales UNIX. Una especie de "primo hermano" de esas plataformas que dominaban ese mercado y que mantenían muchas similitudes con esta alternativa Open Source. El paso desde esos sistemas comerciales (y privativos/propietarios) hacia Linux, aunque ciertamente no fuera trivial, era mucho más asumible que tratar de migrar todas esas prestaciones a otras plataformas.
A esas semejanzas y ese origen en común de los sistemas UNIX y Linux se le unen otros argumentos clave que han hecho de Linux la alternativa perfecta para este tipo de máquinas:
- Modularidad: la capacidad de personalización y la versatilidad de Linux se basan en su legendaria modularidad. Linux es capaz de adaptarse a los entornos más reducidos (IoT) y también a los más ambiciosos (supercomputación) gracias a una arquitectura modular en la que los componentes van añadiéndose o quitándose según las necesidades.
- Un núcleo multidisciplinar: el kernel Linux que da nombre a todo el sistema operativo es también la clave de esa versatilidad, porque en él encontramos soporte genérico para todo tipo de tecnologías, tanto aquellas que afectan al usuario final como las dedicadas a nichos mucho más específicos. Al compilar el núcleo el usuario o desarrollador puede ir eligiendo qué características quiere activar, logrando así que el propio nucleo se adapte a las necesidades concretas de la máquina en la que ese núcleo va a gobernar el resto de componentes del sistema operativo.
- Escalabilidad: la capacidad de un servidor de adaptarse a cargas elevadas y la eficiencia o las prestaciones con las que lo hace es también otra de las ventajas de un sistema operativo que como decimos puede crecer (o decrecer) conforme a las necesidades. No en vano encontramos Linux tanto en estas supercomputadoras o en grandes centros de datos como en nuestros smartphones (Android) o incluso en nuestros televisores o microondas.
- Open Source: la naturaleza abierta de Linux hace que se convierta en la alternativa perfecta para que todo tipo de desarrollos puedan tener acceso total al sistema operativo para adaptarlo a sus necesidades, algo muy difícil (o imposible) en otras alternativas en las que solo los fabricantes o desarrolladores originales pueden "toquetear". La maximización del rendimiento que es posible lograr con Linux hace que los responsables de esas supercomputadoras puedan ajustar todos los elementos de este sistema operativo a los recursos hardware específicos con los que cuentan. Una simbiosis software/hardware que podríamos comparar a la que Apple ofrece en sus dispositivos.
- Coste: otro de los factores clave es evidentemente el del coste de las tradicionales licencias, que era altísimo en el caso de sistemas operativos comerciales y que es cero en el caso de las distintas distribuciones y variantes Linux usadas en estos supercomputadores. Hay desde luego un coste a la hora de adaptar esas distribuciones a una supercomputadora en concreto, pero eso forma parte de esas tareas de maximización del rendimiento.
Windows y macOS, alejados (casi siempre) de la supercomputación
Ni Windows ni macOS pueden competir en este ámbito precisamente porque no cuentan con esas características. Es cierto que Microsoft hizo esfuerzos en este sentido con una edición específica para clústeres que luego se integró dentro de su Windows Server pero la apuesta más relevante en este campo la realizó con Windows HPC 2008.
Aquella edición especial de Windows sí tuvo cierta relevancia en el mundo de la supercomputación, y tenemos un ejemplo en el supercomputador Magic Cube, que se utilizó en el Shanghai Supercomputer Center y que constaba de procesadores Opteron quad-core, con un total de 30.720 núcleos y 122.880 GB de memoria. Aquella máquina que ofrecía un Rmax en Linpack de 180,6 TFLOPS llegó a estar en el puesto 11 de la lista TOP500 en noviembre de 2008.
Aquel esfuerzo, no obstante, no parece haber caído en saco roto, porque Microsoft Azure es en realidad un gigantesco clúster de máquinas con Windows Server en las que se ejecutan todo tipo de servicios en los que la virtualización, las bases de datos o el almacenamiento permiten acceder a opciones realmente potentes (incluidas aquellas que permiten montar servidores Linux en Azure, algo impensable hace algunos años y que ahora es cada vez más común).
Los responsables de Apple, por su parte, parecían tenerlo más fácil en este ámbito, sobre todo porque al fin y al cabo macOS (antes OS X, y antes de eso Mac OS X) está derivado de un microkernel Mach y de los sistemas BSD que también tienen un origen común en los sistemas comerciales UNIX.
Los responsables de Apple no obstante siempre han tenido claro que no querían licenciar este sistema operativo a otro tipo de máquinas que no estuvieran fabricadas por ellos, y de hecho las apuestas de Apple en este sentido han sido tímidas. Mac OS X Server 1.0, por ejemplo, fue la primera versión de este sistema operativo que acabaría totalmente centrado en el usuario final, aunque su evolución ha continuado a lo largo de los años con una orientación clara a "pequeños" servidores que se apartan totalmente del mundo de la computación.
Apple de hecho llegó a desarrollar sus Xserve, una unidad rack fabricada para montar servidores basados en esta arquitectura. Los primeros modelos estaban basados en procesadores PowerPC G4 y G5, y en 2006 llegaron los primeros modelos con micros Intel Xeon.
Aquellos esfuerzos tuvieron cierta repercusión en el mundo de la supercomputación, y de hecho hubo ejemplos llamativos como el supercomputador desarrollado por COLSA Corp, un clúster con 1.566 Apple Xserve G5 duales que tenían un total de 3.132 procesadores con más de 4,5 Tbytes de memoria y una red Myrinet-2000. Aquel supercomputador, con un Rmax en Linpack de 16,18 TFLOPS llegó a estar en el puesto 15 de la lista de noviembre de 2005, y mantendría su presencia allí durante tres años.
Aquello, no obstante, no llegó a cuajar, y en noviembre de 2010 Apple aninció que dejaría de desarrollar estos productos, que como en el caso de Windows no podían competir con las prestaciones de sistemas cada vez más ambiciosos y que demostraban una y otra vez el potencial de Linux en este ámbito. El resto, como suele decirse, es historia. O presente, ya puestos.
En Xataka | MareNostrum 4: así es el espectacular supercomputador encerrado en una capilla