El ordenador más poderoso del mundo está en Japón, se llama «K Computer,» utiliza tecnología de Fujitsu y alcanza la friolera de 11,3 petaflops (más de once mil billones de operaciones en coma flotantes por segundo), pero los científicos no están contentos y ansían la llegada de la próxima generación de superordenadores que alcanzará el exaflop (un millón de billones de flops). ¿Será posible algún día fabricar máquinas tan poderosas? Para los ingenieros los retos son enormes, pero países como EE.UU., China, Japón, Rusia, India y, por supuesto, la Unión Europea están dispuestos a alcanzar el exaflop. Por ejemplo, el Congreso de EE.UU. ha aprobado un presupuesto de más de mil millones de dólares para que el DOE financie su programa de supercomputación avanzada (de los cuales 126 millones de dólares se dedicarán a alcanzar el exaflop).
¿Para qué quiere un científico un exaflop? Para estudiar modelos de la turbulencia más precisos, para simular el clima global incluyendo efectos como la cobertura nubosa, para el diseño de nuevos motores de alta eficiencia adaptados a quemar biocombustibles, para estudiar en detalle las explosiones de supernovas, e incluso para simular armas nucleares (entre otras muchas aplicaciones). Nos lo cuenta Robert F. Service, «What It’ll Take to Go Exascale,» Science 335: 394-396, 27 January 2012.
El vídeo que abre esta entrada es la charla inaugural del genial Javier Jiménez sobre supercomputación en mecánica de fluidos y turbulencia. Una gran charla que te recomiendo (si te interesa la supercomputación); presenta las primeras simulaciones que se hicieron en MareNostrum (el superordenador más grande de la Red Española de Supercomputación que se encuentra en el Barcelona Supercomputer Center o BSC). El vídeo de abajo es de Mateo Valero, director del BSC, sobre la supercomputación en España, su pasado, presente y futuro (os recomiendo en especial los comentarios de Mateo en la última media hora de la charla). Ambos vídeos son de la 1ª Jornada de Supercomputación (2008) ETSI Aeronáuticos, Universidad Politécnica de Madrid.
Los superordenadores fueron mejorando a base de incrementar la velocidad de su reloj (los famosos GHz) hasta que la tecnología llegó a un límite y hubo que buscar una alternativa, los procesadores multinúcleo o multicore (por ejemplo, el «K Computer» tiene 705.000 núcleos). El mayor problema de la tecnología es el consumo de energía. Los superordenadores más grandes consumen unos 10 MW (megawatios), lo mismo que unas 10.000 viviendas. Extrapolando este consumo, un superordenador de 1 exaflop necesitaría unos 200 MW, es decir, una central nuclear propia dedicada a abastecerle energía. La electricidad necesaria para que un ordenador de 1 exaflop funcionara durante un año costaría unos 200 millones de dólares. ¿Cómo se puede bajar el consumo de energía? Una posibilidad es usar GPU (unidades de procesamiento gráfico) en combinación con las tecnologías multinúcleo. Intel, AMD y otros fabricantes de chips ya han anunciado sus planes para desarrollar estos procesadores híbridos.
Hay muchos otros escollos para el avance de la supercomputación hacia el exaflop, como la memoria, las comunicaciones, la tasa de errores y el desarrollo del software. La memoria RAM actualmente es muy cara y se estima que no va a bajar de precio lo suficiente; MareNostrum solo tiene 20 terabytes de RAM; un ordenador capaz de alcanzar 1 exaflop necesita al menos 1 exabyte de RAM (al precio actual es imposible pagarlo). Las redes de datos que comunican unos procesadores con otros también tienen que tener un ancho de banda suficientemente alto (el 70% de ejecución de un algoritmo se consume en transferir datos de un procesador a otro). Todo falla y la tasa de error por procesador (del orden de un error al año) multiplicada por un enorme número de procesadores (pongamos un millón) conduce a un número de errores al día que impide trabajar en la escala del exaflop (la única solución es rediseñar los algoritmos para que sean robustos ante estos errores, algo innecesario en la actualidad). Y por supuesto, el gran problema será escribir un software eficiente con un speedup razonable en un millón de procesadores (algunos expertos opinan que las metodologías de programación no están cambiando lo suficientemente rápido para adaptarse al número creciente de procesadores). ¿Son rentables los supercomputadores? Según Robert F. Service, el 57% del tiempo de cálculo de todas las máquinas en la lista TOP500 ejecutan códigos para empresas privadas. Muchas de estas empresas pagan a instituciones públicas el uso de estas máquinas.
Los siguientes vídeos os muestran múltiples aplicaciones de la supercomputación en España.
Una central nuclear como las que hay en España produce entre 800 y 900 MW de potencia. 200 MW viene a ser como media central de ciclo combinado sólo para ese ordenador.
Dios menuda sarta de tonterias *facepalm*.
Lo mismos problemas que se tenía para pasar de los superordenadores en kiloflop a megaflop, de megaflop a gigaflop, de gigaflop a teraflop y ya se entiende la idea. El continuo avance de la industria termina solucionando los problemas, lo mismo sucederá ahora (por ejemplo no se nombra en ningún momento la electrónica 3D, el siguiente paso de la industria)
IBM, te equivocas, el paso del gigaflop al teraflop ha sido diferente del paso del teraflop al petaflop en muchas cosas y el salto al exaflop lo será en muchas más. Por ejemplo, no sé si lo sabes, pero desde el kiloflop al gigaflop, los procesadores de los supercomputadores eran cada vez más rápidos (y más rápidos que los que se usaban en los PC), a costa de utilizar tecnologías de enfriamento con nitrógeno líquido que eran muy costosas. Pero en el paso del gigaflop al teraflop los procesadores se estancaron (alrededor de los 2 GHz, aunque hay procesadores de hasta 4 GHz no se usan por su alto consumo energético; mira el ventilador de tu PC ahora y compáralo con el que tenía hace 10 años). En el paso del teraflop al petaflop los procesadores han bajado de velocidad (se trabaja con procesadores o núcleos entre 1 y 2 GHz que son más lentos que los de la CPU del ordenador con el que estás leyendo esto; cada núcleo es más lento pero se usan cientos de miles; imagina un ordenador que 100.000 CPU como las del ordenador de tu casa y multiplica el calorcito de tu máquina por 100.000; no sé si sabes la temperatura a la que se funde el silicio).
Por otro lado, la electrónica 3D, desde hace 20 años es la gran panacea de la industria de dispositivos portátiles (teléfonos móviles y similares), pero no acaba de encontrar su hueco en supercomputación. Los procesadores de 32 núcleos en configuración 3D llevan en el mercado 5 años y no se usan en computación pues la promesa de que emitirían mucho menos calor no compensa su coste adicional. Ya hay procesadores con miles de núcleos (en configuración 3D) pero nadie sabe cómo bajar el calor que emiten (en teoría el calor bajaría sin hacer nada porque las interconexiones internas son más cortas pero esto tiene un límite que ya ha sido alcanzado); ahora mismo son inviables en supercomputación (no sé qué pasará dentro de 10 años cuando se incorpore el grafeno y otras panaceas). El futuro de la electrónica 3D son los dispositivos wireless.
La ayuda conjunta de ordenadores particulares podría ayudar mucho a este tipo de cosas. Recuerdo esos programillas que no se si seguirán existiendo que cuando te saltaba el salvapantallas, aprovechavan para procesar datos sobre plegamiento de moléculas o datos del SETI. Si este tipo de ayudas particulares se realizaran a gran escala tendríamos el superordenador más potente…
David, en la EHU por ejemplo, tienen un grid donde usan los ordenadores de las aulas cuando no se usan. Si se unieran todos los ordenadores «pequeños» de las instituciones si que se conseguiría el superordenador más potente! 😀 Pero lo de la computación con ordenadores particulares… no lo veo tan posible. Yo lo tuve puesto y el ruido que metía el ventilador del ordenador (ya que iba bastante cargado, si no se te pasaba el plazo de entrega) era insoportable.
David, la computación grid y la supercomputación tienen nichos de aplicaciones diferentes. Ambas son importantes y necesarias.
La grid es ideal para resolver problemas que se pueden partir en problemitas pequeños que requieren poca memoria (digamos un 1Gb o menos cada uno) y que están débilmente conectados entre sí; el análisis de los datos de colisiones del LHC (una colisión no tiene nada que ver con otra), los datos SETI (la señal que puedas observar en el análisis de una hora de datos no depende de lo que puedas observar la hora siguiente o la anterior), etc.
La supercomputación es necesaria porque hay muchos problemas que no se pueden trocear de esta forma (los subproblemas están fuertemente acoplados entre sí); problemas que necesitan simultáneamente 10 Tb de RAM (en MareNostrum) o 1 Pb de RAM (en K Computer); problemas que partidos en trozos saturarían al 100% el ancho de banda de las redes de 100 Mb/s; este tipo de problemas no se pueden resolver con grid computing. Te pongo un ejemplo muy sencillo. La primera simulación de Javier Jiménez con MareNostrum 2 (la primera que se hizo en esta máquina cuando aún estaba en pruebas) dio como resultado ficheros de 25 Tb de datos cada uno; transferir uno solo de esos ficheros por la red de internet de Barcelona a Madrid hubiera requerido 1 mes con la red al 100% y solo dedicada a este fichero; obviamente, tuvieron que ir personalmente a Barcelona y traerse los ficheros uno a uno en cintas; el análisis y la visualización de estos ficheros sí se puede realizar en grid.
Espero haber explicado bien el tipo de problemas de los que estamos hablando cuando hablamos de supercomputación.
Entonces, existe márgen para la mejora en algoritmos que dividan el problema. Aunque su complejidad (computacional) sea menos eficiente, permitirían computación distribuída, lo cual puede llegar a compensar (habrá que sopesar datos concretos).
Mientras no se demuestre que el problema no es divisible…
Por ejemplo, los algorítmos más rápidos para calcular números de Pi trabajan sobre todo el espacio, sin embargo, existen algoritmos que permiten calcular el N-ésimo dígito con coste O(N) y memoria O(log N).
Josejuan, el problema de la supercomputación científica es que la usan los científicos. Los científicos no queremos tener que ser expertos en paralelismo y programación distribuida para poder realizar nuestro trabajo; ya es suficiente con que seamos expertos en nuestro propio tema. Un científico puede usar MPI o una librería de álgebra lineal compatible con LAPACK que esté montada sobre una BLAS 3 implementada con GPU o con control detallado de la cache, o como sea. Pero no puedes pedirle a un científico que sea experto en computación distribuida.
Los grandes centros de supercomputación tienen expertos que paralelizan o dsitribuyen los software que reciben, pero en la práctica, como no ven el problema que tienen en las manos, solo el programa que tienen entre las manos, el speed-up que obtienen no suele ser lo suficientemente alto como para compensar el coste de enviarles un software. Así que la mayoría de los cientifícos computacionales no utilizamos este tipo de ofertas (o las usamos solo para quedar bien ante la galería, pues a veces conviene tener en CV algo que demuestre que uno hace supercomputación).
Yo soy informático, pero a mí no me pidas que implemente un paralelismo más complicado que utilizar una descomposición de dominio. Cosas más exóticas me requieren demasiado tiempo y tengo que dedicar mi tiempo a pensar en mi problema, no en mi programa.
Buena entrada Francis.
Para todos los interesados en supercomputación y el reto de computación exaflop un par de enlaces:
Un blog con noticias diarias sobre la industria de supercomputación: http://insidehpc.com/
Una revista online sobre el reto de supercomputación exaflop (lamentablemente de subscripción por pago): http://theexascalereport.com/
Dices que «EE.UU., China, Japón, Rusia, India y, por supuesto, la Unión Europea están dispuestos a alcanzar el exaflop.»
Creo que los únicos que están en esta carrera exaflop son EEUU, China y Japón. La industria de supercomputación en la UE es básicamente inexistente (excepto quizás en software). A parte de Bull no conozco ninguna empresa europea que fabrique supercomputadores completos, GPUs, interconnects etc….Que yo sepa India abandonó los proyectos de supercomputación que tenía. Y para Japón me temo que el tema va a empezar a ser demasiado oneroso.
Buena entrada Francis.
Para todos aquellos interesados en supercomputación y el reto exaflop un par de enlaces interesantes:
un blog con noticias diarias sobre la industria de supercomputadores: http://insidehpc.com/
una revista online (lamentablemte de pago) sobre el reto exaflop: http://theexascalereport.com/
Dices: «Para los ingenieros los retos son enormes, pero países como EE.UU., China, Japón, Rusia, India y, por supuesto, la Unión Europea están dispuestos a alcanzar el exaflop».
Me temo que sólo EEUU y quizás China y Japón están en esta carrera. En la UE, Rusia o la India no hay prácticamnte industria de supercomputación. Sólo Bull (UE), T-platforms (Rusia) y en la India si no estoy mal informado se han abandonado los proyectos que había. Para Japón el tema está cada vez más oneroso.
Parece que lo que he dicho sobre India no es del todo correcto. Vuelven al ataque en supercomputación:
http://www.dailymail.co.uk/indiahome/indianews/article-2090309/Supercomputers-India-pitches-1bn-leap-make-lost-ground.html
Extractos:
«Almost two and a half decades after entering the supercomputing race but losing ground thereafter, India is now rebooting with a vengeance. The government has discreetly embarked upon a billiondollar initiative to create next-generation supercomputers»…»The government has committed `5,000 crore (nearly $1billion) for the plan, making it the largest ever grant for a single research programme since Independence».
p.s. se ha duplicado el comentario.
¿Podría ser útil la Supercomputación en el HFT?
El Cid, hay varias hedge funds que utilizan superordenadores, pero en la lista del top 100 (he consultado la última, de noviembre 2011) no aparece ninguno (aunque quizás prefieran mantener en secreto que los tienen).
Jeje, ya me imagino estos monstruos colapsando el SIBE.