¿Las supercomputadoras son especialmente complejas de alguna manera o son solo un montón de computadoras normales encadenadas?

Para agregar Incluso los clústeres de computación de productos básicos (High Performance Computing) que usan hardware de código abierto y de productos básicos (COTS) aún requieren trabajo adicional para que funcionen bien juntos.

Algunas consideraciones adicionales:

  • Interconexión de alta velocidad . De acuerdo con la Ley de Amdahl, transferir datos de un nodo a otro es una de esas áreas que causa una gran cantidad de cuellos de botella en el procesamiento. Esto depende de la granularidad de las aplicaciones. Las aplicaciones de grano fino requieren más interconexión de red que las de grano grueso. Se consideran consideraciones como el rendimiento, la resistencia y la topología.
  • Almacenamiento Compartido En general, los clústeres de cómputo funcionan juntos, pero necesitan acceso al almacenamiento para que todo el clúster tenga visibilidad desactivada. Existen muchos enfoques para el almacenamiento compartido desde hardware dedicado NAS y cajas SAN o el uso de sistemas de archivos especializados como GlusterFS, NFS y Hadoop Distributed File System.
  • Software y hardware optimizados . Dado que estas máquinas están listas para usar, es importante que se use el conjunto correcto de componentes para que funcionen bien entre sí. Una vez me encontré con una situación en la que la NIC del nodo de cómputo no era compatible con el sistema operativo. La tarjeta se mantuvo en los modos de rendimiento de flip flop que hicieron que no funcionara de manera óptima en el rendimiento deseado.
  • Software especializado La mayoría de los clústeres de informática comercial ejecutan una forma de software especializado u otra. Este software es necesario para administrar el trabajo de procesamiento distribuido en el clúster de cómputo. Hace más de una década, oirías que PVM o MPI se usan comúnmente. Hoy verás Apache Hadoop. También escuchará sobre Apache Spark y Apache Mesos.

Hay muchas más consideraciones, pero estos son los denominadores menos comunes que afectan sustancialmente a todo el rendimiento en la mayoría de las aplicaciones.

Las supercomputadoras son siempre, siempre más complejas que las “computadoras normales”. Eso es algo de definición.

Una cosa que NO está cubierta en ninguna de las otras respuestas es el procesamiento de vectores.

El procesamiento vectorial significa la capacidad de, en una sola instrucción, realizar operaciones en una matriz lineal completa. Esto generalmente se realiza de una manera muy altamente canalizada, altamente integrada que hace cálculos en operaciones de matriz densa, como programación lineal, investigación de operaciones, dinámica de fluidos computacional, sismología de reflexión, reactor nuclear y simulación de armas, y criptoanálisis.

Supongamos que deseamos agregar dos matrices A y B y poner el resultado en C.

En FORTRAN 77, tendríamos algo como

do i = 1, n
hacer j = 1, n
C (j, i) = A (j, i) + B (j, i)
enddo
enddo

En Fortran 90, es tan simple como C = A + B.

NOTA: esto NO era “azúcar sintético”, ¡el HARDWARE subyacente fue creado para hacer esto!

ILLIAC IV es uno de los primeros ejemplos, como lo fue el CDC STAR-100. Sin embargo, lo que puso el Cray-1 en el mapa NO fue la velocidad de procesamiento escalar lineal, sino el hecho de que tenía 8 registros vectoriales, cada uno con 64 palabras de 64 bits cada una. Las instrucciones del vector se aplicaron entre los registros de la CPU, no a través de la memoria, lo que combinado con la microtubería de las ALU significó velocidades increíblemente rápidas.

La parte difícil fue escribir compiladores que pudieran manejar mantener una cantidad suficiente de su matriz típicamente mucho más grande que 64 palabras precargada en registros suficientes para que nunca dejara de ejecutar la tubería. Si el usuario estaba escribiendo en Fortran 8x (que se convirtió en Fortran 90) no era demasiado doloroso; si estaba vectorizando FORTRAN IV, se puso feo rápidamente. (y sé mucho, demasiado sobre eso para entrar aquí)

ESO es lo que hizo que las computadoras Cray fueran especiales.

Imagine ejecutar su base de código COMPLETAMENTE desde el caché L2 en su procesador Intel típico. Sin caídas en L1, sin caídas en la memoria. Ahora imagine tener que descubrir cómo precargar el caché para que esté trabajando en parte mientras la otra parte se recarga, y que necesita volver a cargar ANTES de que se complete el procesamiento en la otra mitad. Ahora intenta hacer eso automáticamente, en el compilador …

Eventualmente, la Ley de Moore alcanzó la tubería de Seymour, y se hizo más rápido mover bits entre múltiples procesadores en un bus distribuido que continuar optimizando los procesadores de vectores de tubería. Y con el tiempo, eso pasó de “autobús distribuido” a “red” …

El documento seminal de Needham-Lauer “Sobre la dualidad de las estructuras de los sistemas operativos” también terminó aplicándose también a las estructuras de hardware, y resultó ser mucho más fácil construir grandes redes de procesadores de productos básicos que construir elementos individuales de alta canalización memoria y ALU.

Es por eso que la mayoría de las personas en 2015 piensan en grupos de procesadores de productos básicos y se preguntan por qué pueden hacer algo “super” de ellos, en lugar de escribir código optimizado a mano para tuberías de vectores.

Las supercomputadoras son realmente complejas en la forma en que están “diseñadas” juntas. No estaría de acuerdo con que son un montón de computadoras normales encadenadas. Puede parecer así, pero hay mucho más que eso.

Permítame elaborar:

  1. El hardware “puro” combinado no es una supercomputadora. Requiere software aún más complejo, con capas, para que los componentes funcionen juntos.
  2. El conjunto de computadoras si se encadenan juntas tendría piezas de hardware adicionales o redundantes, por lo que las máquinas construidas específicamente para este propósito abordarían esto agregando las piezas necesarias, por ejemplo, tocarían o accederían a la memoria de manera diferente.
  3. Dado que las supercomputadoras tendrían una gran cantidad de componentes, reconociendo esto, se pensarían y se proporcionarían vías múltiples (e incluso multinivel). (más componentes significa que se pueden esperar más fallas).

Hay más, pero creo que los pocos puntos anteriores ilustrarán el punto de que las “supercomputadoras” reales no son un montón. Hay instancias de máquinas conectadas libremente a menudo, pero con mucha configuración y coordinación, logrando un rendimiento similar a las supercomputadoras, sin embargo, esto supone un gran esfuerzo y no son recursos dedicados, por lo tanto, no ofrecen resultados críticos en términos de producción. Nota: no estoy criticando esto, a menudo funciona para problemas específicos, pero las supercomputadoras verdaderas están cuidadosamente construidas y deben funcionar bajo demanda y con fines críticos.
Espero que ayude a empujar la respuesta que puede estar buscando.

Puede pensar que son más complejos, pero ese no es necesariamente el caso. Algunos son. Entre amigos llamamos a algunas de estas máquinas, máquinas de “fregadero de la cocina” porque el diseñador arrojó todo, incluido el fregadero de la cocina, para intentar hacerlas más rápidas. Cray era un diseñador que creía en la simplicidad (KISS era su lema). Algunos de sus competidores probaron diseños más complejos con más o menos éxito.

Bill Wulf (una vez que el presidente de la Academia Nacional de Ingeniería (NAE)) escribió un libro sobre un multiprocesador de investigación que construyó con otros sobre 1972-78 llamado C.mmp para mini procesadores múltiples (PDP-11). Y señaló que eran posibles dos errores: usar los procesadores de otra persona o diseñar uno propio. Eso es 1/2 una broma trágica.

La verdadera complejidad es cómo los juntas. La complejidad de la comunicación escala O (n ^ 2) con conectividad completa a una primera aproximación. La interconexión se vuelve más costosa que los procesadores mismos. Esto no está bien. Por lo tanto, otros han intentado diseñar máquinas con redes O (n ln n) (un poco más pequeña), y otros han intentado configuraciones de hipercubos con el paso de mensajes. Todos estos costos de hardware comercial por tiempo y costo de software. O (n) conexiones como Ethernet o Token Rings, etc. intercambiaron tiempo de ejecución de software para hardware, por lo que las aplicaciones serias las rechazan.

Algunos diseñadores arrojan muchas memorias caché adicionales a las arquitecturas. Los programadores de aplicaciones usan los recuerdos de caché que no pueden permitirse recuerdos realmente rápidos (es por eso que aquellos que pueden permitírselos los valoran como supercomputadores).

Algunas supercomputadoras, que el programador promedio nunca verá, involucran arquitecturas de nicho, algunas de las cuales tienen algunas complejidades de procesador interno agregadas, pero en general estas máquinas no duran mucho, no se fabrican en grandes cantidades, o en algunos casos se usan Tecnología de dispositivos exóticos. Algunas de las máquinas de secuenciación de genes son así. Los correlacionadores ópticos son así. Y algunas de las máquinas de descifrado de códigos, también.

Si observa las supercomputadoras más antiguas, puede encontrar ejemplos de arquitecturas de sistemas que parecen extrañas desde una perspectiva moderna y que no se parecen en nada a un “grupo de computadoras normales encadenadas”.

Thinking Machines CM-1 tenía hasta 64K procesadores de un bit dispuestos en un hipercubo. No podía ejecutar códigos FORTRAN, y no tenía aceleración de punto flotante en absoluto, y necesitaba aprender un nuevo lenguaje para programarlo. No vendió muchas copias, pero tenía luces parpadeantes increíbles. Hubo un CM-2 y un CM-5 que siguieron, con potentes procesadores y más matemáticas. Pero fundamentalmente, este era un diseño complejo, y no solo algo normal que podría replicar con placas de circuito estándar.

Este artículo de la revista INC

El ascenso y la caída de las máquinas de pensar

tiene la historia del negocio Tengo una taza de café Thinking Machines, porque era una de las personas que usaba WAIS, un sistema de búsqueda rápida de texto completo que se ejecutaba en la máquina de conexión a la que se podía acceder a través de Internet.

Demostración de WAIS: Thinking Machines Corporation: Descarga y transmisión gratuitas: Archivo de Internet

Las supercomputadoras son más complejas. Necesita software y hardware para coordinar la resolución de problemas en una gran cantidad de procesadores y grandes cantidades de memoria. También requieren métodos más complejos de suministro de energía y para eliminar el calor. La supercomputadora Titan utiliza algo así como 8 megavatios de electricidad.

Sin embargo, los núcleos informáticos (CPU y GPU) pueden no ser más complejos que los que se encuentran en un escritorio. Sin embargo, deben tener una fiabilidad bastante alta. Con 10 de miles de procesadores, experimenta una tasa de falla más alta para un componente individual.

Sí, pero con calificaciones. Primero, una Supercomputadora, por definición, es simplemente la computadora más rápida que existe en un momento dado. Por lo tanto, ENIAC, ILLIAC y MANIAC fueron supercomputadoras en su época. Los sistemas CDC 204/205 en los suyos. Y los Cray-1, Cray-XMP y Cray-2 en los suyos. Cada uno tenía algunos rasgos específicos que les daban ese estado. Principalmente para los sistemas de tipo CPU individual, era la velocidad escalar. Para los sistemas paralelos, era la capacidad de dividir el trabajo en partes paralelas para acelerar el resultado final.

La regla principal en todas las computadoras es que la velocidad genera calor. El objetivo principal es reducir el calor o eliminarlo de la manera más rápida y eficiente posible. Por lo tanto, muchas de las patentes críticas que rodean a las supercomputadoras están relacionadas con la función de eliminar el calor. Por lo tanto, abundan las configuraciones extrañas.

Ejemplo 1: Los sistemas Cray-1 y Cray-XMP tenían chips en placas de cobre que luego se unían a columnas de aluminio enfriadas por líquido. ¡El contacto de cobre a aluminio fue patentado!

Ejemplo 2: El Cray-2 estaba compuesto por un conjunto de tableros sumergidos en un líquido no conductor (plasma sanguíneo artificial) que se pasó por los tableros y se extrajo para enfriarlos, luego se recicló nuevamente en la computadora. Ver Cray-2 para ejemplos.

Las tres computadoras se organizaron en forma de C. Esto permitió que las interconexiones de placa a placa utilizaran cables más cortos y redujo el tiempo necesario para ejecutar comandos entre ellas (acelerando así todo el proceso).

Y finalmente, las señales entre chips en el tablero tuvieron que ser cronometradas. Los electrones viajan a aproximadamente 1/10-C. Por lo tanto, los retrasos de tiempo necesarios se pueden ver en las fotos reales de los tableros. Ver la foto adjunta. ¡Esas líneas en zig-zag retrasan la señal para coordinar el tiempo de las operaciones en el tablero!

Si tiene un par de horas, este trabajo de investigación resume muchos de los problemas relacionados con la computación a gran escala. Página en nd.edu

El material más reciente se encuentra en los documentos del programa ASCR (sombrero para Barry Rountree).

Puedes hacer una supercomputadora conectando un montón de computadoras normales. Muchas supercomputadoras en la lista de las 500 principales hoy (Lista de las 500 principales – Noviembre de 2014) son solo procesadores Xeon con una GPU NVidia, conectadas con una interconexión de alta velocidad como InfiniBand.

Curiosamente, el n. ° 101 en la lista es una instancia habitual de Amazon EC2: clúster de instancia de Amazon EC2 C3: clúster de Amazon EC2, Intel Xeon E5-2680v2 10C 2.800GHz, 10G Ethernet.

Es útil distinguir “super” de simplemente grande. Amazon y Google tienen colecciones muy grandes de computadoras bastante normales, pero funcionan de manera “escalable”, donde la infraestructura trata principalmente de mantener contentos muchos flujos de trabajo independientes. Una supercomputadora está realmente definida por cuánto se rige su diseño por la especialización en soporte de un solo flujo de trabajo. En ese sentido, lo que importa son las cosas adicionales, no si algún componente en particular podría comprarse en una tienda de informática minorista. Incluso Amazon, que vende computación mundana, no “acceso a supercomputadora”, adopta cierta especialización: están ejecutando Xeons, no i5, probablemente con ECC, IPMI, NIC más rápidas que gigabit y topologías de enrutamiento bastante gordas o de alta raíz. Pero las supercomputadoras han hecho todo eso durante mucho tiempo, pero a menudo solo para ejecutar un solo programa …

SuperComputer es solo otra computadora con demasiada capacidad informática.
p.ej. @IBM Sequoia
Tiene 1.572.864 núcleos en forma de 98.304 nodos informáticos conectados.
Otro ejemplo @ Tianhe-2
Tiene 3,120,000 núcleos.
Son sistemas realmente complejos hechos de muchos nodos informáticos conectados.

Son un grupo de computadoras poderosas conectadas entre sí de una manera muy interesante. Por otra parte, también lo es su computadora si tiene una CPU de múltiples núcleos.