¿Por qué casi todas las supercomputadoras ejecutan Linux? GNU / Linux es solo uno de los muchos sistemas operativos.

Ver también: ¿Por qué Linux es el sistema operativo preferido para supercomputadoras?

Primero, comprenda que una supercomputadora moderna es realmente un montón de computadoras conectadas con una conexión de alta velocidad (a veces algo inusual, pero a veces una supercomputadora es literalmente solo un grupo de servidores conectados entre sí por una red de alta velocidad).

Linux es eficiente, bien entendido y probado en batalla. Funciona y es gratis.

Si ejecuta una supercomputadora en Windows, tendrá un mejor presupuesto para las licencias de Windows Server, las licencias de los clientes, etc. Oh, pero imaginemos que Microsoft dona Windows (tal vez puedan alardear de que Windows ejecuta su supercomputadora). Ahora su problema es que pocos o ninguno de sus pares tienen ese acuerdo, por lo que todavía están ejecutando Linux, por lo que si desea ejecutar algo que sus pares están ejecutando, debe portarlo. (Y suponga que el próximo año quiere duplicar el tamaño de su supercomputadora … mejor espero que Microsoft siga donando Windows).

Ahora imagina que golpeas un error en la supercomputadora. En Linux, si identifica el error, es muy probable que alguien lo arregle por usted; pero es posible que tenga un experto en su personal que pueda arreglarlo por usted y, en el peor de los casos, puede contratar a un experto y que él / ella lo repare. Con Windows, tendría que pedirle a Microsoft que investigara el problema y esperar que lo solucionen en un tiempo razonable. Su emergencia no es su emergencia, y no tiene la opción de contratar a alguien para que lo arregle.

Una vez asistí a una presentación dada por un tipo de Oracle, y él nos habló de la promesa de “Oracle Unbreakable”: si compra el nivel de soporte “Unbreakable” y tiene un problema, un tipo de Oracle lo solucionará. Si el error está en el hardware, lo resolverán. Si el error está en Oracle, lo solucionarán. Y si el error resulta estar en Linux … tienen expertos en kernel en el personal que lo solucionarán. No importa dónde esté el error, pueden y lo solucionarán. Dijo algo como “No podríamos dar esa garantía en Windows, porque si el problema estuviera en Windows no podríamos solucionarlo nosotros mismos”.

Entonces Linux está probado en batalla, abierto y gratis. Por eso está en todas partes.

PD: ¿Existe una licencia por volumen de Windows Server que se pueda instalar en un número ilimitado de computadoras sin registrarlas en Microsoft y sin que los servidores llamen a Microsoft? Nunca he oído hablar de tal licencia, pero no paso mucho tiempo hablando con expertos en licencias de Windows.

A menos que exista dicha licencia, las compañías secretas como Google también están evitando Windows porque tendrían que registrar sus servidores con Microsoft, y luego Microsoft sabría cuántos servidores tienen.

En una reciente conferencia de SuperComputing, un científico en vivo me dijo:

“Los científicos ejecutan supercomputadoras con Linux, porque podemos entrar al sistema operativo y desechar todo lo que no necesitamos. Windows no tanto “.


Si desea ver cuánto ocupa Windows 10 en su computadora:

  • Abra un cuadro de comando como administrador
    Haga clic derecho en el icono de Windows en la parte inferior izquierda.
    Símbolo del sistema con el botón izquierdo (Administrador)
  • Hacer:
    cd \
    dir \ Windows \ / w / s / a
  • Espere un par de minutos mientras se procesan las cosas.
    Mire el programa o haga clic en otra ventana y haga otra cosa.

Cuando el informe esté listo, tenga en cuenta la cantidad de archivos, carpetas y gigabytes.

  • Estos son números impresionantes, es posible que desee anotarlos.

Ahora imagine si pudiera eliminar el 95% de todo eso, dejando más RAM de su supercomputadora, espacio en disco duro y ciclos de reloj para sus tareas.

  • Te gustaria
  • Con Linux, puedes hacer exactamente eso.
  • Los editores abiertamente lo alientan a hacerlo.
  • Se espera que las comunidades que se preocupan por estas cosas compartan sus notas.
  • De eso se trata el software libre y de código abierto (FOSS).

Windows no tanto.


Para hacer una copia de todo el informe que pueda leer más tarde con Word, Wordpad o Notepad, haga lo siguiente:

  • dir \ Windows \ / w / s / a> winfiles.txt

EDITAR: Para una verdadera experiencia WTF, haz

  • dir \ Windows \ WinSxS \ / s / a

Aquí voy a explicar las características de Linux que hacen de Linux la mejor opción para las supercomputadoras:
1- Naturaleza modular de Linux
Un laico puede pensar que Linux típico está compuesto de pequeños bloques o módulos de construcción. Cada módulo realiza distintas utilidades dedicadas. Estos bloques de construcción funcionan juntos para hacer que el sistema operativo se ejecute. Esta naturaleza modular de Linux facilita a cualquier persona, ya sean usuarios promedio de Linux o administradores de Supercomputadoras, modificar el sistema operativo para satisfacer sus requisitos. Ningún otro sistema operativo, específicamente Windows, da libertad de personalización en este sentido. Como consecuencia, Linux puede modificarse para usarse en supercomputadoras y objetivos específicos de archivo, particularmente mejorar el rendimiento o la eficiencia energética, etc. Hoy en día la mayoría de las supercomputadoras emplean un núcleo Linux modificado.
2-Naturaleza genérica del kernel de Linux
El kernel de Linux es genérico, tanto como sea posible. Esto implica que el código fuente único puede escribirse para ejecutarse en supercomputadoras grandes y también en pequeños dispositivos portátiles, incluso; esto depende completamente del usuario cómo se usa Linux, ya sea en sistemas gigantes o sistemas más pequeños. No es necesario agregar cambios fundamentales y grandes al kernel para ejecutar en sistemas más grandes o más pequeños. Normalmente, el kernel de Linux se puede configurar para que sea tan pequeño como 2Mb o tan grande como 1G o 1T sin tiempo y esfuerzo inminentes.
3-escalabilidad
La escalabilidad se puede definir como la capacidad del servidor para adaptarse a cargas más grandes. La escalabilidad puede considerarse directamente como una medida de eficiencia, rendimiento. El sistema debe ser tal que la adición de un nuevo servidor sea fácil. Linux tiene una escalabilidad tremenda ya que puede acomodar las cargas nuevas y más altas con bastante facilidad. ¡Por eso puedes encontrar supercomputadoras Linux y Android (usando el kernel de Linux) en teléfonos móviles, refrigeradores e incluso microondas!
Naturaleza de código abierto 4
Linux es completamente de código abierto y software libre con código fuente completo disponible. Esto implica que los administradores de supercomputadoras pueden personalizar el sistema operativo a cualquier nivel. Además, en caso de fallas de rendimiento, lagunas de seguridad, etc., que se encuentran en las supercomputadoras, los administradores pueden alterar el código en cualquier momento para lograr el máximo rendimiento y seguridad (o para cualquier objetivo); en lugar de esperar actualizaciones de seguridad de compañías propietarias.
Las supercomputadoras buscan maximizar el rendimiento. Por lo general, a las supercomputadoras se les asignan trabajos que requieren cálculo a una velocidad muy alta. En comparación con Windows, Windows tiene varios procesos extraños que son innecesarios y solo degradan el rendimiento de la supercomputadora. Sin embargo, como Windows es propietario, el código no puede modificarse para cortar procesos innecesarios. Con Linux es ciertamente posible, lo que aumenta el rendimiento de las computadoras.
5- Apoyo comunitario
Linux siendo de código abierto tiene un inmenso soporte comunitario que no tiene paralelo en ningún otro sistema operativo.
6- costo
El costo puede ser una gran preocupación cuando se trata de dispositivos enormes, uno como las supercomputadoras. La implementación de Linux en supercomputadoras es rentable ya que Linux es completamente libre de regalías.
Otras razones para usar Linux como sistema operativo es el buen soporte de red de Linux. Es relativamente más fácil agregar o eliminar cualquier dispositivo de red experimental. No se requieren reinicios! Un software de monitor de red es ideal para probar redes en Linux. Linux es un sistema operativo confiable y estable que se puede ejecutar en servidores y computadoras grandes y costosos sin tener que preocuparse mucho. Finalmente, Linux es más seguro.

La mayoría de las supercomputadoras tienen una gran cantidad de procesadores y Linux se puede configurar para que funcione muy bien con montones de procesadores.

En los años 90, IBM se convenció (por muy buenas razones) de que Linux era su futuro. Pasaron de su sistema operativo propietario y comenzaron a contribuir al desarrollo de Linux de código abierto. En 1999, IBM compró Sequent Computer Systems, que era líder en multiprocesamiento a gran escala y arquitectura de memoria no uniforme (NUMA). La tecnología de Sequent fue impresionante: hasta entonces, los multiprocesadores sufrieron retornos decrecientes dramáticos en 4 o 6 núcleos, mientras que el sistema operativo basado en Unix de Sequent exhibió un aumento casi lineal del rendimiento hasta el límite de hardware de 64 núcleos. (Divulgación completa: fui consultor en Sequent, pero después de sus grandes avances).

Ahora propiedad de IBM, los ex ingenieros secuenciales incorporaron su tecnología a gran escala a Linux. Por lo tanto, Linux se convirtió en algo importante en las supercomputadoras.

Windows se ejecuta en computadoras a gran escala, pero como una gran cantidad de máquinas virtuales en lugar de un sistema operativo de sobrecarga. Se ejecutan varias instancias de Windows, cada una pensando que solo tiene un puñado de núcleos. Estas instancias múltiples pueden hacer muchas cosas individuales, pero no pueden cooperar en un solo problema grande como lo puede hacer Linux. Windows sufre rendimientos decrecientes, aunque la cantidad de núcleos que puede usar efectivamente ha aumentado.

  1. Menos gastos generales, es decir, mucho más rápido.
  2. No es necesario reiniciar
  3. 10.000 veces más estable
  4. Más fácil de automatizar con scripts.
  5. El código abierto permite ejecutar sus implementaciones de servidor personalizadas
  6. Copia de seguridad más fácil
  7. No hay actualizaciones automáticas que rompan su sistema
  8. Todo lo que necesitas es una línea de comando y una conexión SSH.
  9. Sistema jerárquico, así que no hay inyección de memoria PowerShell para moverse por UAC, ¡lo siento! O eres root, o lo absorbes ( principalmente ).

Linux es más popular que UNIX, a partir de ahora, para los servidores porque UNIX ha estado estancado durante mucho tiempo, durante los años 80 y 90, en un montón de batallas legales, lo que ralentizó su desarrollo durante décadas, justo cuando salió Linux.

A medida que Linux se hizo ampliamente disponible y gratuito, comenzó a usarse más que BSD, pero tal vez solo por esta razón, ya que BSD es aún más robusto que cualquier distribución de Linux.

1- Naturaleza modular de Linux
Un laico puede pensar que Linux típico está compuesto de pequeños bloques o módulos de construcción. Cada módulo realiza distintas utilidades dedicadas. Estos bloques de construcción funcionan juntos para hacer que el sistema operativo se ejecute. Esta naturaleza modular de Linux facilita a cualquier persona, ya sean usuarios promedio de Linux o administradores de Supercomputadoras, modificar el sistema operativo para satisfacer sus requisitos. Ningún otro sistema operativo, específicamente Windows, da libertad de personalización en este sentido. Como consecuencia, Linux puede modificarse para usarse en supercomputadoras y objetivos específicos de archivo, particularmente mejorar el rendimiento o la eficiencia energética, etc. Hoy en día la mayoría de las supercomputadoras emplean un núcleo Linux modificado.
2-Naturaleza genérica del kernel de Linux
El kernel de Linux es genérico, tanto como sea posible. Esto implica que el código fuente único puede escribirse para ejecutarse en supercomputadoras grandes y también en pequeños dispositivos portátiles, incluso; esto depende completamente del usuario cómo se usa Linux, ya sea en sistemas gigantes o sistemas más pequeños. No es necesario agregar cambios fundamentales y grandes al kernel para ejecutar en sistemas más grandes o más pequeños. Normalmente, el kernel de Linux se puede configurar para que sea tan pequeño como 2Mb o tan grande como 1G o 1T sin tiempo y esfuerzo inminentes.
3-escalabilidad
La escalabilidad se puede definir como la capacidad del servidor para adaptarse a cargas más grandes. La escalabilidad puede considerarse directamente como una medida de eficiencia, rendimiento. El sistema debe ser tal que la adición de un nuevo servidor sea fácil. Linux tiene una escalabilidad tremenda ya que puede acomodar las cargas nuevas y más altas con bastante facilidad. ¡Por eso puedes encontrar supercomputadoras Linux y Android (usando el kernel de Linux) en teléfonos móviles, refrigeradores e incluso microondas!
Naturaleza de código abierto 4
Linux es completamente de código abierto y software libre con código fuente completo disponible. Esto implica que los administradores de supercomputadoras pueden personalizar el sistema operativo a cualquier nivel. Además, en caso de fallas de rendimiento, lagunas de seguridad, etc., que se encuentran en las supercomputadoras, los administradores pueden alterar el código en cualquier momento para lograr el máximo rendimiento y seguridad (o para cualquier objetivo); en lugar de esperar actualizaciones de seguridad de compañías propietarias.
Las supercomputadoras buscan maximizar el rendimiento. Por lo general, a las supercomputadoras se les asignan trabajos que requieren cálculo a una velocidad muy alta. En comparación con Windows, Windows tiene varios procesos extraños que son innecesarios y solo degradan el rendimiento de la supercomputadora. Sin embargo, como Windows es propietario, el código no puede modificarse para cortar procesos innecesarios. Con Linux es ciertamente posible, lo que aumenta el rendimiento de las computadoras.
5- Apoyo comunitario
Linux siendo de código abierto tiene un inmenso soporte comunitario que no tiene paralelo en ningún otro sistema operativo.
6- costo
El costo puede ser una gran preocupación cuando se trata de dispositivos enormes, uno como las supercomputadoras. La implementación de Linux en supercomputadoras es rentable ya que Linux es completamente libre de regalías.
Otras razones para usar Linux como sistema operativo es el buen soporte de red de Linux. Es relativamente más fácil agregar o eliminar cualquier dispositivo de red experimental. No se requieren reinicios! Un software de monitor de red es ideal para probar redes en Linux. Linux es un sistema operativo confiable y estable que se puede ejecutar en servidores y computadoras grandes y costosos sin tener que preocuparse mucho. Finalmente, Linux es más seguro.

Fuente: http://www.unixmen.com/why-do-su

  1. La API de Unix es universal. El ecosistema de desarrolladores, herramientas, software, trabajo realizado en la academia, implementaciones comerciales es enorme. Linux es Unix (bueno, no es oficialmente así, pero eso es esencialmente una cuestión de sello de goma).
  2. Es de código abierto. No es necesario diezmar a ninguna entidad. Cuando es necesario agregar características del kernel o cambiar los comportamientos, no hay obstáculos no técnicos para hacerlo.

    Bueno, en realidad, supongo que puede haber. Hace unos años, Linux fue portado a la Sony PS3 para su uso en clústeres experimentales. En ese momento, el procesador de Cell era muy bueno. De todos modos, Sony puso el quiste sobre esto posteriormente. Sin embargo, esta es realmente una lección sobre el uso de hardware no abierto (al menos sin una licencia adecuada).

  3. El par o más sabores de BSD Unix es posiblemente mejor que Linux en algunos aspectos técnicos. Sin embargo, el ecosistema de Linux es mucho más grande. Este impulso es importante (ver 1. arriba).

Las supercomputadoras modernas son conjuntos de chips que se comunican entre sí. Muchos se basan en chips e interconexiones de productos básicos. Son crunchers de números especialmente diseñados.

El nombre es fantástico, pero conéctese a una supercomputadora y todo lo que verá es un cursor intermitente, mejor conocido como línea de comando o terminal. Cargue su código compilado, dígale a la máquina cuántos núcleos usar y el tiempo de computación se deduce de los privilegios de su cuenta.

Esa fue mi experiencia de supercomputación.

¿Por qué Linux?

Bueno, porque es gratis. Ya sea un solo chip o 40,000, hay exactamente 0 tarifas de licencia.

Pero hay otros sistemas operativos de código abierto.

Sin embargo, su desarrollo palidece en comparación con Linux. Creo que solo Microsoft Windows tiene más capital intelectual invertido que Linux hoy.

Bueno, ¿por qué no Windows? Después de todo, cualquiera que pueda pagar el hardware querrá el mejor software para su Beowulf.

Porque Windows es innecesario. Más bien, el procesamiento de números no requiere las características sofisticadas de Windows (como seguridad, política de usuario, UX, etc.). Barebones Linux es todo lo que se requiere, siempre que el kernel sea compatible con el hardware.

La mayoría de las supercomputadoras no ejecutan su distribución promedio de Linux que puede descargar como todos los demás (aunque algunas probablemente hagan algo similar) …

Las supercomputadoras tienen cientos de empleados que las mantienen. Eso incluye personal y administradores de software Linux altamente especializados. Esos tipos descargan el código fuente del kernel de Linux y otro código fuente necesario y, en lugar de instalar una distribución Linux prefabricada, hacen su propia ‘distribución’ de Linux que está altamente modificada y especializada para el hardware específico utilizado en la supercomputadora.

Linux es configurable a nivel atómico. Hay cosas tan profundamente arraigadas incluso en el núcleo real de Linux que son configurables, tanto que el usuario promedio de Windows probablemente nunca creería que algo así podría configurarse. Por supuesto, configurar cosas como esa no es y probablemente nunca será fácil de usar. En Linux, literalmente puede activar y desactivar partes del sistema operativo, luego simplemente vuelve a compilar el núcleo. Esto reducirá la huella de memoria de su núcleo una vez que se compila.

Y mientras hablamos de compilación, al compilar el código fuente, literalmente se le permite dar parámetros de compilación al programa compilador, incluso y especialmente cuando está compilando código crucial como el núcleo. Puede decirle al compilador que optimice el código para obtener más velocidad pero menos estabilidad o para obtener más estabilidad pero menos velocidad. Incluso puede especificar la CPU y GPU exactas hasta el número de modelo de su CPU y / o GPU, por lo que el compilador optimizará el código específicamente para su hardware. Esto le ahorrará preciosos ciclos de CPU cuando comience a usar su computadora. E incluso puede abrir su editor de texto y modificar el código fuente usted mismo (pero todo excepto esto es hasta dónde puede llegar incluso sin ser un programador).

Ahora permítame explicarle cómo pueden modificar los detalles minuciosos en Linux, una vez que obtenga las habilidades para hacerlo (si alguna vez). Permítanme explicarlo con una analogía de automóvil.
No es como si el fabricante de automóviles le preguntara qué motor desea en su nuevo automóvil. No, eso sería quedarse corto .
De hecho, es más como si el fabricante de automóviles le preguntara qué tornillo exacto le gustaría tener en el tercer orificio de su quinto cilindro. ¿Dónde quieres que esté el agujero? ¿Qué material debemos usar para el tornillo? ¿Debe el material tener 82.7% u 83.5% de acero?

¿Imagínese si pudiera personalizar su automóvil a un nivel atómico?

Y básicamente es por eso que la mayoría de las supercomputadoras usan Linux. Necesitan un sistema operativo que puedan modificar a un nivel atómico, de modo que puedan exprimir cada bit de rendimiento de su hardware hasta el último ciclo de la CPU.

Quizás pueda tener una pequeña visión del proceso si aprende sus habilidades de Linux lo suficiente como para poder instalar la distribución Gentoo Linux sin usar demasiados atajos, o si compra el libro ‘Linux desde cero’ y construye su propio LFS sistema.

Linux es confiable y controlable en formas que otros sistemas operativos no lo son. Por ejemplo, Apple deshabilitó remotamente Java en sistemas sin avisar al usuario que rompió muchas aplicaciones importantes que dependían de Java.

Apple deshabilita remotamente Java en Mac después de una importante alerta de seguridad – The Mac Observer

Windows 10 tiene un desagradable procedimiento de actualización que reinicia la máquina sin avisar al usuario antes de hacerlo y, a menudo, resulta en la pérdida de trabajo.

Windows 10 arruina una transmisión de juegos profesionales con una actualización a tiempo

Si tales comportamientos existieran en una distribución de Linux, podrían desactivarse o eliminarse. Con un sistema operativo de código cerrado no tienes el control. Imagine a un usuario que solicitó una subvención para el tiempo de computación, hizo su investigación, escribió su código, esperó durante meses, finalmente obtuvo su horario y justo antes de comenzar su trabajo, el sistema operativo había deshabilitado remotamente el lenguaje de programación utilizado para el proyecto. desarrolladores O imagine que un usuario casi termina con una simulación compleja que utiliza cientos de años de tiempo de máquina y los nodos comienzan a reiniciarse para instalar actualizaciones automáticas en el medio del trabajo. Esto es inaceptable.

El mismo control sobre todo permite características que permiten HPC como sistemas de archivos distribuidos masivos con múltiples puntos finales como Lustre, que no es posible en sistemas operativos con código cerrado porque el núcleo necesita ser modificado. El control sobre todo es lo que hace que Linux funcione para HPC. La respuesta corta es que Linux funciona y es por eso que lo usan.

Debido a que las supercomputadoras no son exactamente hardware normal, y para que uno funcione tienes que escribir controladores de dispositivo para todas las pequeñas peculiaridades de las placas base, interfaces de red extrañas, CPU a medida (sí, dicen que son Xeons … con números de modelo que tú no puede ordenar), arquitecturas de memoria inusuales, etc.

Linux es el sistema operativo más fácil para el que escribir controladores de dispositivo. Entonces, esta es la misma razón por la que Linux también es el sistema operativo más común en módems DSL, conmutadores Ethernet, módems de cable y todo tipo de otras computadoras integradas que nunca ve. Windows tiene un lugar en el punto de venta y algunos tipos de automatización de fábrica, pero esas máquinas no tienen el mismo problema de controlador de dispositivo.

Linux también tiene, con mucho, la pila de red más flexible, lo que significa que si la estructura del clúster es algo inusual o necesita algunos ajustes en la pila para que funcione, puede hacerlo.

Recuerde también que las listas de supercomputadoras son solo máquinas científicas y académicas (faltan todos los clústeres de Google, Microsoft, Apple, Verizon y Amazon, por ejemplo, al igual que la NSA) … por lo que generalmente están construidos con un presupuesto de software limitado, y un tiempo bastante corto para sacar a colación y hacer que sea útil antes de que se agoten sus subvenciones de puesta en servicio. Los clústeres comerciales son un asunto diferente, pero aun así, en su mayoría ejecutan Linux.

Un par de razones

  1. Flexibilidad de los sistemas operativos: Linux le permite ajustar los parámetros de nivel del núcleo que son importantes para cualquier aplicación de escala.
  2. Todas las aplicaciones a escala se ejecutan en Linux, porque el sistema operativo está diseñado teniendo en cuenta el rendimiento, la seguridad y la multitarea.
  3. En realidad, cada supercomputadora (High Performance Cluster) es diferente, depende de muchos factores, como qué recurso y herramienta de gestión de colas utiliza (MOAB, TORQUE, etc.), también hay muchos tipos de software de gestión de clúster como Rocks, Xcat, etc. El procesador y la memoria subyacentes son diferentes en cada clúster. En realidad, los TFLOPS de cada supercomputadora son diferentes: depende del número de nodos de cómputo y maestro y de la velocidad del procesador.
  4. Lustre es uno de los sistemas de archivos paralelos de código abierto más populares que aumenta el rendimiento de las E / S de archivos. Una de las razones podría ser de código abierto, también hay sistemas de archivos paralelos desarrollados por IBM.
  1. Es increíblemente rápido, deshabilitando gran parte del código preventivo si lo desea.
  2. Admite latencia muy baja en tiempo real, para el trabajo que lo requiere.
  3. Es compatible con ccNUMA.
  4. Tiene soporte para TIPC, por lo que puede entregar datos entre subprocesos independientemente de la máquina en la que se encuentren.
  5. Es compatible con la API RDMA estándar de OpenFabric.
  6. Las bibliotecas de memoria compartida distribuida están disponibles.
  7. Tiene las opciones de PVM, MPI y BSP para la gestión de procesos.
  8. SCTP y DCCP son compatibles cuando TCP y UDP no son adecuados o son demasiado lentos.
  9. La CPU Hotswap significa que si un nodo se quema, puede reemplazarlo sin tener que reiniciar la ejecución.
  10. Coreboot le brinda un tiempo de reinicio típico de 3 segundos, aunque se han logrado tiempos mucho más cortos con él.
  11. Hay una gama más amplia de compiladores de alto rendimiento, particularmente en idiomas más raros.
  12. La API de programación está garantizada compatible con versiones anteriores de todos los tiempos.
  13. Tiene un mejor soporte de controladores para instrumentación científica, en general.
  14. Puede migrar hilos de kernel y hilos de usuario de forma independiente (la base de MOSIX).
  15. Las estimaciones de los expertos en confiabilidad de software sugieren que Linux tiene 1 error por cada 1,000 errores de Windows, pero esto no se ha probado. Sin embargo, el hecho de que se cree es lo que influye en las decisiones.
  16. Linux admite tamaños de página de 4K, 8K, 16K, 32K y 64K. Debido a que Windows se ejecuta exclusivamente en hardware diseñado para unidades 4K (el estándar PCI Express usa), Windows no puede aprovechar otras arquitecturas.
  17. Linux se ejecuta en POWER5, T2 y otras CPU completamente locas, así como Intel x86. Como tal, puede ejecutarse en casi cualquier arquitectura de supercomputadora.
  18. La pila de red y el software de enrutamiento de paquetes incorporado pueden admitir redes mariposa e hipercubos de casi cualquier tamaño, muy pocos sistemas operativos están diseñados para admitir redes LAN tan complejas.
  19. Linux maneja correctamente la entrega de múltiples rutas y el descubrimiento de MTU. De nuevo, bastante raro en el mercado de sistemas operativos.
  20. Es muy fácil configurar Linux en blades, cajas PC104 y otras estaciones que se ejecutarán predominantemente sin cabeza en una habitación cerrada.
  21. Linux admite velocidad variable para controlar la temperatura u otras dinámicas, por lo que las salas de servidores nunca deberían sobrecalentarse.
  22. Ah, y es de código abierto. Esto es lo último porque pocas personas tienen tiempo para construir sistemas gigantes como este y escribir ajustes en el núcleo del sistema operativo.

P: ¿Por qué casi todas las supercomputadoras ejecutan Linux?
R: Porque limita el alcance del problema que los constructores tienen que resolver.

Linux es de código abierto. Eso significa que el código fuente está disponible, incluidos los miles de millones de controladores del núcleo. Gcc apunta a miles de procesadores, por lo que portarlo es un problema resuelto. Escuché que el sonido metálico es aún más portátil. Entonces, después de construir este fantástico hardware, es relativamente fácil (ejem) hacer que Linux se ejecute en él, en comparación con escribir un sistema operativo desde cero.

Estoy seguro de que si los constructores crearían una supercomputadora compatible con x86, Microsoft portaría Windows, por una tarifa … Pero la arquitectura x86 tiene algunas limitaciones para una supercomputadora, por lo que esta no es una opción obvia.

Supongo que la respuesta radica en el hecho de que Linux es estable, no ocupa el sistema operativo de memoria y es altamente escalable. Requiere una memoria mínima para sentarse y luego todo depende de qué tan buenas estén escritas las aplicaciones. Desde el sistema de archivos hasta la administración de la memoria y la programación de procesos, los ingenieros tienen muchas opciones para elegir la forma de operaciones más adecuada.

Además, no hay infracciones de seguridad, etc., lo que de nuevo ayuda en la informática porque no hay un antivirus / malware / este / ese software que uno deba administrar, lo que nuevamente es un ahorro en términos de memoria general y sobrecarga de procesamiento.

Con Linux, es relativamente fácil ampliar o reducir los recursos. Puede acomodarse con casi cualquier hardware y aún así garantizar el mejor rendimiento posible.

Esto es solo una esencia y creo que un estudio de la arquitectura general de Linux aclarará las cosas.

Linux es gratis. Si aporta código que lo ayuda a ejecutar cálculos masivos, puede estar seguro de que nadie lo tomará y lo envolverá como propio.

Solaris, HP / UX y A / IX en su mayoría solo se ejecutan en su propio hardware, al menos con Solaris, si va más allá de 4 cpu centrales, paga un dinero súper serio, 64 cpu y paga más de una tonelada. Cada productor perdió la batalla con Linux que se ejecutaba en hardware básico, no importa cuán impresionante fuera el gran hierro de IBM, la serie P o Solaris Fire 10k y 15k, costaban una tonelada de dinero más tarifas de servicio, etc., y no solo podía obtener computadoras PC más baratas, podría llenar un estadio completo con ellas, y aún así ahorrar dinero y superar el rendimiento en un factor importante.

De vuelta en el día, hace 30 años. Una supercomputadora era solo eso, era una computadora. Luego obtuviste sistemas que podían distribuir la carga entre muchas computadoras y, francamente, era más fácil, menos propenso a errores, menos costoso, mucho menos costoso y más rápido.

Las supercomputadoras individuales no pudieron seguir el ritmo de esto. Cuestan millones para investigar y fabricar, son muy específicos y usan equipos muy especiales, no puedes ir a tu tienda local y comprar memoria.

Costar una tonelada de dinero escribir sistemas operativos que pudieran funcionar en estos sistemas, y que a su vez requirió una gran cantidad de programadores, lo que es mucho salario. Luego tienes a IBM, SGI, Microsoft, HP y SUN, todos haciendo lo mismo por sí mismos, cada uno resolviendo el mismo problema, allí tienes costos cuádruples, fácilmente, a menudo mucho más grandes que eso.

Entonces vino Linux. La gente decidió que sería más fácil si trabajaran juntos, aunque en su mayoría solo eran nerds que querían sus propios grupos, en aras de poseer un grupo grande. De eso surgió una gran cantidad de software de código abierto, clúster Beowulf, búsqueda elástica solo por nombrar 2 cosas. Las compañías que necesitaban un software masivo para funcionar, como las bolsas de valores, rápidamente vieron que, incluso si el software no era perfecto, funcionaba, y diablos, el software “sólido” no era tan sólido, por eso tenían acuerdos de servicio profesional.

Poco a poco, Linux se hizo cargo. Comenzó en las operaciones pequeñas y eventualmente se amplió a los sistemas súper grandes. En el año 2000, todo Nasdaq fue Linux, asesinó a SUN.

Entonces, el precio, la disponibilidad y debido a que IBM y HP y otros realmente pusieron a sus mejores personas a trabajar en Linux, las divisiones en esas grandes compañías que no jugaron con Linux simplemente perdieron a sus mejores personas que comenzaron a trabajar para RedHat y otras compañías de Linux

Es sobre todo una rareza histórica: cuando Linux despegaba en el espacio del clúster, los sistemas * BSD aún no tenían SMP. Incluso si BSD tuviera esa característica importante, Linux era simplemente más popular en el campo de la informática técnica general.

Ahora Linux tiene un bloqueo bastante bueno por las razones que enumera Chadalavada.

Creo que es una cuestión de conveniencia.

Los subsistemas y arquitecturas que se encuentran actualmente en la mayoría de las supercomputadoras ya tienen un amplio soporte de Linux, porque los proveedores venden las mismas partes a otros mercados mucho más grandes que requieren Linux, específicamente servidores y PC con capacidades gráficas de alta gama. Eso hace que sea económico reutilizar su uso en instalaciones de supercomputadoras, donde la elección del sistema operativo no es un gran problema. Siempre que proporcione controladores para todo el hardware y algunos servicios básicos, la tarea principal del sistema operativo de una supercomputadora es retroceder y dejar que las aplicaciones se ejecuten sin interferir.

En lo que respecta al dominio, creo que puede parecer sorprendente en el top500 ahora, pero ser tenue en el mejor de los casos.

Parte de la premisa de que Linux y * BSD son aplicables proviene de las dos décadas (más o menos) desde que los volúmenes de producción de componentes estándar que comúnmente los ejecutan alcanzaron proporciones de precio / rendimiento que también fueron favorables para la reducción de números. A medida que miles de clientes avanzan lentamente para mostrar un mayor interés en los dispositivos integrados, teléfonos inteligentes, tabletas y otras cosas que comparten menos restricciones de diseño con las supercomputadoras, no veo por qué ejecutar Linux en supercomputadoras sería un objetivo de alta prioridad en sí mismo. . Si las arquitecturas de componentes básicos y supercomputadoras vuelven a separarse, creo que las supercomputadoras del mañana ejecutarán felizmente cualquier otro sistema que admita su hardware; ciertamente han cambiado antes.

Encontrar razones por las que Linux recibe más soporte en otros segmentos del mercado entra en circunstancias cuando apareció, licencias, decisiones comerciales, procesos de desarrollo y otras cosas sobre las que no estoy calificado para tener opiniones. Por otra parte, esa es una pregunta ligeramente diferente.

Por lo que vale, creo que la respuesta a esta pregunta es que Linux está actualmente muy extendido en HPC porque está allí, ya es compatible como un efecto secundario de sus otras aplicaciones, y hace el trabajo y las alternativas sin agregar tanto esfuerzo.

Greg (Hola Greg) tiene esa razón verbal: es principalmente una rareza histórica. Para analizar correctamente la pregunta se remonta al comienzo de las supercomputadoras: en su mayoría se entregaron sin sistemas operativos. Si compró un CDC 6600, o 7600, hasta el Cray-1: su organización tenía las pelotas para desarrollar un sistema operativo. Tienes metal desnudo. Si crees que eso es BS, no eras un cliente: eras un debilucho. Se vio que un sistema operativo ralentizaba una supercomputadora.

Entonces, con el tiempo, un grupo de sistemas operativos e idiomas comenzaron a acumularse en las comunidades (energía, armas, criptografía, clima / clima). No hay preocupación por la portabilidad, solo la velocidad inicialmente. Estas máquinas ni siquiera eran compatibles con la configuración de la velocidad (esto se pierde para la mayoría de las personas hoy en día: que incluso se podría pensar en tal cosa).

Entonces apareció Unix, y no provenía de un proveedor de hardware, y al mismo tiempo, los estudiantes de CS se graduaban con conocimiento de Unix ignorantes de varios sistemas operativos Cray (algunos estudiantes de ME y física aprendieron los rudimentos, no los sistemas). Se redujo a una máquina: Cray-2 -> conjunto de instrucciones incompatible con el Cray-1 (¡algo bueno también!). CRI simplemente no tenía los recursos para hacer un sistema operativo completamente nuevo y mucho menos una nueva reescritura del compilador Fortran.

LLNL propuso un sistema operativo radical completamente nuevo. NASA Ames sugirió Unix, y aquí es donde entró BSD. Nos pusimos en la lista de pruebas beta 4.1C, y Creon Levit y yo en un largo viaje a Tahoe consideramos un puerto BSD 4.2 (pero este era un SO de 32 bits en un Máquina orientada a palabras de 64 bits). El problema era que BSD usaba memoria virtual y que el tiempo en que VM se consideraba una responsabilidad. El problema era paginar un gran programa en la memoria. Todo esto fue un desastre, por lo que decidimos no tocar un puerto beta BSD; la idea era apegarse a AT&T, que es lo que finalmente hizo CRI. Este fue el paisaje de la tierra a lo largo de la década de 1980: esa memoria virtual y paginación en BSD fueron parte del beso de la muerte. Pero hubo una parte de licencia no técnica que ayudó a Linux cuando Don Becker comenzó los primeros clústeres de Beowulf en Linux.

La cuestión de la licencia no se basaba en multiprocesadores o clústeres: si tenía más de 1 CPU, ¿tenía que pagar a AT&T por licencias adicionales de Unix? Lamentablemente, Mike Muuss en BRL con el primer Denelcor HEP con 4 procesadores encontró que la respuesta era Sí. Mike tuvo que pagar 4 licencias (al menos en una escala reducida). Linux nunca tuvo este problema. BSD en esos días tuvo que seguir a AT&T, pero eso se solucionó con bastante rapidez, y Mike fue el único que tuvo ese problema (pero no le devolvieron el dinero).

Grandes respuestas, todas. No creo haber visto a nadie mencionar el tiempo de actividad, que es un GRAN trato cuando su organización pagó 15 mil millones de dólares por la máquina. En Linux, las actualizaciones de software o configuración casi nunca requieren un reinicio. En Windows, casi siempre requieren reiniciar. Reiniciar sistemas complejos con hardware especializado no siempre funciona tan bien para los administradores de sistemas.