¿Qué tan poderosas son las súper computadoras en comparación con las computadoras normales?

Me gusta la respuesta de David Ecale de que una PC normal es como una supercomputadora de última generación de hace 30 años. Se calcula que la ley de Moore duplica el rendimiento cada 18 meses y esa es una relación de rendimiento de aproximadamente un millón a uno.

En estos días, las supercomputadoras están construidas con las mismas CPU y GPU y memorias que las plataformas de jugador, solo una gran cantidad de ellas. Las grandes diferencias tecnológicas están realmente en las redes y el software. Las redes de supercomputadoras le permiten enviar mensajes desde aproximadamente un millón de núcleos a cualquier otro en aproximadamente un microsegundo. A unos 100 gigabits por segundo. No solo eso, sino que prácticamente todos los núcleos pueden estar hablando con todos los demás al mismo tiempo .

La segunda gran diferencia es el software. Podría usar un súper para ejecutar un millón de copias de Doom o Excel, pero eso no es muy interesante, podría hacerlo con una botnet de Internet. El verdadero desafío es tratar de lograr que un millón de núcleos trabajen juntos para resolver algún problema, como, por ejemplo, la predicción del clima o la cromodinámica cuántica, o el diseño del reactor de fusión. Los problemas de software ciertamente no se resuelven, pero ahora es bastante sencillo para un experto en la materia, como un geólogo del petróleo, escribir un programa que pueda funcionar bien en clústeres de 1000 a 5000 núcleos, utilizando bibliotecas estándar y paquetes de comunicaciones como MPI y SCALAPACK.

Así que tome cien mil PC, 400 terabytes de DRAM rápida, 100 petabytes de almacenamiento y una red realmente rápida, agregue unos pocos miles de años de desarrollo de software y tendrá una supercomputadora. Para divertirse, escriba “srun -N 100000 date” para ver si todos los nodos tienen la hora correcta.

No olvide el edificio para mantenerlo adentro, muchos megavatios de energía y aire acondicionado, y algunas luces parpadeantes programables.

¿Cuál es tu medida de poder? ¿Y qué es una computadora normal? Una de las cosas a entender es que la definición de una supercomputadora es un objetivo en movimiento. Había un tipo llamado Sid Fernbach, que manejaba computación en Livermore que probó una escala móvil donde el Cray-1 era lo que él llamaba una máquina de Clase 6 (tenía un libro con ese título si puedes encontrarlo). Se basó en escalas de dificultad al aire libre.

Por lo tanto, suponga que su computadora cotidiana funciona con corriente y voltaje de pared. En la actualidad, la mayoría de las supercomputadoras (pero no todas) funcionan al límite del rendimiento (es decir, debe enfriarlas (aire forzado o refrigeración líquida)). Estamos hablando de KV y MW en estos días, comúnmente. Y requieren mucho almacenamiento y memoria además de la velocidad.

Otra diferencia semi-seria (no del todo una broma) en el poder era que si pagabas lo suficiente por tu supercomputadora, el vendedor tiraría el edificio para alojarlo gratis. Esto es lo que significaban los límites extremos de la capacidad informática. Existen varios de estos edificios. Imagine 1 edificio ejecutando 1 solo problema. Algunas personas tienen un problema pequeño y bastante difícil y la autoridad para controlar ese tipo de poder.

Sustituir “man” por computadora. ¿Cómo se compara Superman con los hombres normales (meras morales) de todos los días? Bueno, Superman es un personaje ficticio. Creo que Superman era capaz de mover planetas. Así que tenía muchos millones (si no más) de poder que simples mortales. Depende de qué tan grande sea la supercomputadora de destino móvil en un momento dado.

Las supercomputadoras tienden a optimizarse y tienen características arquitectónicas (o la falta de ellas) que las computadoras normales dan por sentado (como la coma rápida en lugar de la manipulación de caracteres (existen excepciones)).

Anexo: mientras Sid estaba vivo, tuve la oportunidad de hacer una pregunta sobre máquinas comunes de esa época, así que para los programadores más antiguos, le pregunté a Sid en ese entonces cómo VAXen (-11 / 780s) {y también mainframes de IBM} podrían “compararse” “, Y Sid, por supuesto, expresó su indignación por haber hecho esa pregunta (estoy estableciendo el contexto) y dijo:” Es una clase 1/2 (eso es 0.5) “. No eran supercomputadoras (de esa época) al igual que los teléfonos celulares en este momento. Sid tenía muchas otras opiniones sobre máquinas que no podría concebir en esta época.

A menos que tenga dinero para comprar equipos de IBM, es probable que su supercomputadora tenga procesadores Intel y quizás GPU NVidia. Los procesadores son de clase “servidor”, por lo que no tienen hardware de gráficos y funcionan un poco más rápido que el tipo de consumidor (lo siento, no recuerdo lo que Intel llama eso), pero de lo contrario, es solo Intel estándar. Al escribir estas líneas, Haswell, Broadwell, Skylake.

El “super” entra porque una supercomputadora tiene muchos de ellos. La máquina que mi empleador acaba de desmantelar tiene casi 7000 nodos, cada uno con dos procesadores Sandybridge. Las instituciones con más dinero tienen aún más de eso, pero nuevamente, a menos que haga negocios con SGI o IBM, los procesadores no son tan diferentes de lo que se encuentra en una PC robusta.

¿Qué es una súper computadora? Mis definiciones:

Máquina virtual y contenedores = subcomputadoras. El problema que está resolviendo en cualquier momento solo necesita un subconjunto de la capacidad de la máquina física, por lo que debe subdividir la máquina física para hacer muchas cosas a la vez y mantenerla razonablemente cargada. Un servidor normal que maneja múltiples servicios independientes esencialmente está haciendo lo mismo con menos separación / protección / portabilidad … pero aún está haciendo múltiples tareas, cada una utilizando un subconjunto de la máquina física.

Agregar múltiples máquinas para trabajar en el mismo problema al mismo tiempo = Supercomputación. Esencialmente lograr más en un momento hacia una solución dada que una sola computadora (virtual o física) podría. Por lo tanto, 2 servidores de alta gama podrían ser una supercomputadora … si juntos logran más de lo que cualquiera de ellos podría hacer por su cuenta hacia una solución específica.

Tenga en cuenta que las máquinas que trabajan juntas en el mismo problema exhibirán:

Mejora del rendimiento sub-lineal: esto es lo más común A medida que agrega más máquinas, la carga de trabajo en red y programación aumenta, lo que hace que obtenga menos rendimiento por máquina, pero más rendimiento en conjunto que una sola máquina.

Mejora del rendimiento lineal: esto generalmente se conoce como “vergonzosamente paralelo”, donde tiene un aumento esencialmente lineal en el rendimiento a medida que agrega máquinas adicionales. El algoritmo de programación y otras dependencias requeridas deben tener un alto paralelismo en la carga de trabajo y dependencias en serie mínimas.

Mejora del rendimiento súper lineal: en raras ocasiones, el uso de 2 o más máquinas para resolver un problema puede hacer que aumente tanto el rendimiento agregado total como el rendimiento por máquina. Hay varias razones posibles, pero en general se debe al almacenamiento en caché del procesador, la red o la E / S de disco en dispositivos suficientes para que la aplicación funcione súper rápido. Cuando encuentres estos, ¡es un año realmente bueno!

Ya sabes la respuesta: aproximadamente la proporción de núcleos. Una computadora “normal” tiene algo así como 4 núcleos; Una supercomputadora respetable tiene al menos unas pocas decenas de miles de núcleos. Es cierto que los núcleos de la supercomputadora son normalmente algo más lentos que un escritorio (en este momento, alrededor de 2.1 vs 3.4 GHz para un escritorio). Entonces, en cierto sentido, un SC es 5–10k veces más rápido, basado en ciclos centrales por segundo.

Esa es una respuesta razonable, pero algo ingenua. Es inusual que SC se use en cargas de trabajo que se escalan perfectamente con solo el número de ciclos. Las cargas de trabajo de SC generalmente se dividen entre cálculos que son regulares y locales (por lo que SC a menudo incluyen GPU) y aquellos que son complicados y globales (aplicaciones MPI que dependen en gran medida del rendimiento de la interconexión, generalmente Infiniband).

Entonces hay dos extremos:

  • códigos que son estrictamente en serie y escalan solo con reloj. en realidad, estos no deberían estar en una supercomputadora (del tipo normal, aún es posible acelerar un código puramente en serie si quieres pagar lo suficiente).
  • códigos que responden efectivamente a las diversas formas de aceleración (realmente, paralelismo) como vectorización, multinúcleo / almacenamiento en caché, GPU, paralelismo de nada compartido (MPI, IB).

Para cualquier técnica en cualquier campo, hay un punto óptimo entre estos extremos, con cierta cantidad de meneo. Puede presionar más, pero termina acelerando solo un subconjunto de configuraciones. Pero, en general, la historia de SC es realmente una larga serie de ajustes inteligentes que proporcionan mejoras incrementales a un cierto tipo de rendimiento. En este momento, la Ley de Moore continúa brindando oportunidades para escalar ciertos códigos (más núcleos, cachés más grandes, vectorización más amplia), y los intercaladores de silicio están proporcionando una forma de obtener memoria de mayor ancho de banda. Es posible que la fotónica de silicio mejore las interconexiones pronto, tal vez proporcionando coherencia de caché y quizás cambiando la estructura de interconexión estándar de la hoja espinal.

Pero SC todavía se reducirá a la acumulación de muchos sistemas que no son tan diferentes de su escritorio. Un SC más rápido siempre tendrá más nodos, a veces nodos ligeramente modificados, a veces red modificada. Puedes comprar un SC tan rápido como puedas …

“Super” es un término relativo. Simplemente significa que pueden resolver problemas matemáticos específicos mucho más rápido que una PC convencional, generalmente 1,000 veces más rápido (o más). La velocidad máxima de una PC es cada vez mayor, y lo mismo es cierto para las supercomputadoras. Recuerde: un iPhone típico hoy es más rápido que la computadora más rápida del mundo, en 1980.

Sin embargo, me gusta pensar en las supercomputadoras de una manera diferente. Cualquier computadora que pueda terminar el trabajo que necesito hacer más rápido de lo que puedo pensar en más trabajo para hacer, bueno, eso es una supercomputadora para esa tarea en particular . Después de todo, ¿por qué necesitaría una computadora que sea más rápida que eso? ¿Una supercomputadora de procesamiento de texto? Sospecho que ya tienes uno. ¿Supercomputadora de navegación por Internet? Tengo uno. ¿Música que suena supercomputadora? Cheque.

Lista Top500 – Junio ​​2016

Bueno, a partir de junio de 2016, la supercomputadora superior tenía 10,649,600 núcleos (en comparación con los 4 u 8 núcleos de una PC normal) y podía funcionar con 125,455,900 GFLOPS (en comparación con los 147.6 GFLOPS de una PC).

GFLOPS = Mil millones de operaciones de coma flotante por segundo.

Así que creo que podemos decir que son un millón de veces más rápidos.

Eugene Miya es perfecto. Mi toma es de 30 años. Sí, 30 años. Tome mi PC estable de ordinario (una computadora de escritorio y sus tres computadoras portátiles de consorte)

y retroceda 30 años desde su creación (edad promedio de 7 años, eso sería 1980) y tendría estos:

Comparar una supercomputadora con una computadora normal es como comparar un avión ✈ con una bicicleta