Post by Acheron on Jun 2, 2012 18:09:26 GMT 2
Hola, hola!!
Muchos de aquí, sabéis que soy un apasionado de la ciencia y la tecnología y en especial del hardware usado en la computación o dispositivos electrónicos, de este campo tan extenso, uno de mis temas favoritos es la SuperComputación.
Hoy os subo una visita que hice al Centro de Supercomputación de Barcelona o BSC (por sus siglas en ingles, Barcelona Supercomputing Center) hacia principios de 2011, para acudir a unas conferencias sobre supercomputación y realizar una visita guiada al MareNostrum, el superordenador más notable de las instalaciones, nombrado "mar nuestro" en latín, que era como los romanos llamaban al Mar Mediterráneo.
INTRODUCCION A LA SUPERCOMPUTACION Y SU IMPORTANCIA
Para que os hagáis una idea sencilla, un superordenador es un conjunto de múltiples componentes informáticos (CPUs, memorias, unidades de disco, conexiones Ethernet ultrarápidas y de superbaja latencia) que forman un sistema interconectado entre sí, creando un complejo sistema capaz de resolver problemas muy complejos.
La supercomputación, puede pasar desapercibida en la vida cotidiana para nosotros, sin embargo nos influye más de lo que creemos. Por ejemplo, los superordenadores actualmente son usados para:
-Simulación de biomoleculas utilizando técnicas de dinámica molecular, docking de proteínas y predicciones de estructura proteínica que permitirán encontrar y diseñar potenciales medicamentos para tratar enfermedades hoy incurables (Malaria, SIDA, Cáncer, Alzheimer, Parkinson, Distrofia Muscular…)
Este video muestra el plegamiento de una proteína (NTL9) computado en una sola GPU. La simulación en el video dura menos de 1.30 minutos, sin embargo se ha sido simulado tan solo un milisegundo de plegamiento y ha requerido horas y horas, incluso días de computación en una GPU de alto rendimiento.
-Modelado climático para la predicción del clima futuro de la Tierra y efectos de la actividad humana sobre esta. También son usados en la meteorología local.
-Simulaciones para la predicción de efectos de catástrofes (inundaciones, terremotos, incendios forestales, tsunamis…) o migraciones de tiempo inverso & Kirchoff para prospecciones de gas y petróleo.
Simulaciones como esta ayudaron a predecir los efectos del tsunami producido por el terremoto de Tohoku de marzo de 2011 en Japón sobre las costas de los continentes.
-Diseño de aviones militares y comerciales y vehículos en general para que tengan una mejor aerodinámica y consuman menos combustible.
-Simulaciones sobre Astrofísica y Cosmología, para entender mejor el Universo.
-Creación de películas de animación como Shrek, Madagascar, Cars, Ice Age, Toy Story o Avatar.
-Procesado de señales e imágenes, simulaciones del arsenal nuclear, transacciones bancarias (aunque en este caso solemos hablar de mainframes), ingeniería estructural, dinámica de fluidos computacional, investigación de nuevos materiales, diseño y verificación de nuevos circuitos integrados, simulaciones Monte Carlo para modelos de valores de mercado, modelado del comportamiento de plagas de langostas para minimizar el daño a los cultivos agrícolas y podría continuar con una lista casi infinita.
EL MARE NOSTRUM Y LA SUPERCOMPUTACIÓN EN ESPAÑA
Vídeo introductorio del MareNostrum
La supercomputación en España, está relativamente bien desarrollada, es uno de los rubros en los que no nos podemos quejar.
A dia de hoy, tomando como referencia la última lista del TOP500 de 2011 (una lista con los 500 superordenadores más potentes del mundo, que se publica bianualmente entre Junio y Noviembre, por lo que dentro de poco hare un reporte sobre la primera publicación de dicha lista de 2012).
España, tiene 3 superordenadores de entre los 500 más poderosos del mundo:
-En primer lugar, en el puesto 114, el MinoTauro, un cluster Bullx B505 compuesto por CPUs Intel Xeon E5649 (Hexa-Core con núcleos Westmere a 2.53 GHz) y GPUs Nvidia Tesla 2090 basadas en Fermi con 103.20 TFLOPS situado en el Centro de Supercomputación de Barcelona (BSC).
-En Segundo lugar, en el puesto 228, el Magerit, un cluster’s de BladeCenter PS702 Express con CPUs IBM POWER7 a 3.3GHz con 72.03 TFLOPS situado en el Centro de Supercomputación y Visualización de Madrid (CeSViMa).
Si os gustan los Time-Lapse, ahí va un video sobre su actualización de IBM PowerPC970 a IBM POWER7 que ocurrió en 2011.
-Y en tercer lugar, en el puesto 299, el MareNostrum, un clúster de BladeCenter’s JS21 con CPUs IBM PowerPC970MP a 2.3GHz con 63.83 TFLOPS situado en el Centro de Supercomputación de Barcelona (BSC).
Sin embargo, la supercomputación y su historia en España es mucho más extensa. La verdadera era de supercomputación en España empezó con MareNostrum.
MareNostrum en Barcelona, puesto en marcha en 2005, en su mejor momento, estuvo en el puesto 4º del mundo y durante unos años en el 1º de Europa.
A lo largo de los años se ha ido rezagando, sin embargo en 2006 fue actualizado y doblo su potencia de cálculo pasando del puesto 11 al 5º como se puede observar en el Slide.
A raíz de esta actualización es como nació la Red Española de Supercomputación o RES. La RES se formó a partir de los antiguos nodos que formaban parte de la primera versión del MareNostrum, cuando este fue actualizado, los “antiguos” nodos fueron a parar a diferentes partes de España para formar parte de diferentes superordenadores (además del propio MareNostrum en Barcelona):
-La primera versión de Magerit en el Centro de Supercomputación y Visualización de Madrid formado por 1204 nodos JS20 y otros 168 JS21, ambos basados en IBM PowerPC970 computando a 14 TFLOPS situándose en el 34 del mundo y el segundo de España.
-Altamira, en la Universidad de Cantabria con 512 nodos JS20 PowerPC970, 4.5 TFLOPS y en su mejor momento en el puesto 415 del mundo.
-LaPalma, en el Instituto de Astrofísica de Canarias, con 512 nodos PowerPC970, 4.5 TFLOPS.
-Picasso, en la Universidad de Málaga, con 512 nodos JS20 PowerPC970, 4.5 TFLOPS.
-Tirant, en la Universidad de Valencia, con 512 nodos JS20 PowerPC970, 4.5 TFLOPS.
-CaesarAugusta, en el Instituto de Biocomputación y Física de Sistemas Complejos de la Universidad de Zaragoza, con 512 nodos JS20 PowerPC970, 4.5 TFLOPS.
-Atlante, en el Instituto tecnológico de Canarias, con 84 nodos JS20 PowerPC970, 2 TFLOPS.
-A parte de estos sistemas, en 2009 se añadió el Caléndula, en la Universidad de León, basado en Intel Xeon E5450 (Quad-Core basados en Yorkfield a 3 GHz) alcanzando 33 TFLOPS.
Fuera de la RES, actualmente existen otros superordenadores en España:
-LUSITANIA, en el Centro Extremeño de Investigación Innovación Tecnologica y Supercomputación, con 128 nodos Intel Itanium 2 Montvale alcanzando 1.85 TFLOPS.
-Finisterrae, en el Centro de Supercomputación de Galicia, con 144 nodos basados en Intel Itanium 2 Montvale alcanzando 14 TFLOPS.
-Tarja, en la Escuela técnica superior de Ingeniería Informática de La Universidad de la Laguna (Tenerife), compuesto por 64 procesadores Intel Itanium 2, alcanzando 0.6 TFLOPS.
Un slide de la Red Española de Supercomputación. Con los antiguos blades de los que estaba formado el MareNostrum en su primera versión, se han ido montando otros superordenadores a lo largo de España. Con este método (único en el mundo) se logra reutilizar el hardware para otras máquinas, ahorrando considerables recursos económicos y por supuesto siendo más respetuoso con el medio ambiente.
Algunos datos de la RES
-El total de horas de computación de toda la red (73.393.152 horas)
-La potencia de cómputo total de la red (168.31 TFLOPS)
-Y las peticiones aceptadas/rechazadas en toda la red, como se puede ver se solicita una media de un 208 % por encima de la capacidad de la RES (datos a fecha de 2009).
LA VISITA
Como la visita fue en el BSC, vamos a focalizarnos en este, los slides a continuación y los que he posteado anteriormente corresponden a una de las conferencias a las que asistí llevada a cabo por David Vicente, Jefe del Equipo de Soporte.
Cartel del BSC.
Entrada principal al BSC en la UPC al lado de la facultad de informática.
Misión del BSC
En este slide, podemos observar, lo que podría diferenciar un PC casero, con un superordenador. Para comenzar, la gran cantidad de hardware que lo componen, actualmente del orden de miles de procesadores, del orden de decenas o cientos de Terabytes de memoria principal y del orden de miles de Terabytes de almacenamiento masivo. Para interconectar todo este hardware se requiere de una red de comunicación de gran ancho de banda y baja latencia. Otra diferenciación, es el scheduling de las tareas a procesar, que se van ejecutando de manera continuada, según el orden de prioridad establecido y por tal de no dejar a ningún clúster sin trabajo que hacer en ningún momento.
Además...
-Tienen un sistema operativo, más adaptado a HPC (mayoritariamente diestros de Linux),
-Librerías matemáticas y programas especializados como por ejemplo:
-CPMD (Química computacional)
-WRF (modelado atmosférico)
-TORB/EUTERPE (física de plasmas)
-NEMO (modelado oceánico)
-Code_Saturne (Dinámica de fluidos computacional)
-Entre otros...
-Poderosos compiladores para alcanzar la mayor eficiencia y rendimiento, dependiendo de la arquitectura de la máquina. Por último, tenemos lo que sería el centro de proceso de datos que se compondría de:
-Un sistema antiincendios: En el caso del MareNostrum sistemas de extinción de agua nebulizada, que minimiza los daños en los sistemas electrónicos.
-Sistemas de refrigeración de alta eficiencia (CRAC), para evacuar el calor generado por toda la maquinaria y equipamiento
-Y por último, sistemas SAI (sistemas de alimentación ininterrumpida) para evitar perdida de datos en caso de caída de la energía principal.
El BSC no se compone solamente del MareNostrum (y actualmente del MinoTauro), posee otros sistemas que se pueden dedicar al postprocesamiento por ejemplo este sistema de Silicon Graphics basado en 128 CPUs de arquitectura Intel Itanium 2 Montecito con un rendimiento de 819.2 GFLOPS y 2.5 TB de memoria principal. Además posee un “Cluster Norte” con 98 blades JS20 PowerPC970 de 1.72 TFLOPS formados por restos de la primera actualización de MN.
Ahora nos focalizaremos en el MN
En este slide nos focalizamos más en el MareNostrum en sí. MareNostrum, en su versión 2.0 actual se compondría de: -2560 blades JS21 con 2 procesadores PowerPC 970MP de doble núcleo a 2.3 GHz. -8 GB de memoria RAM por blade.
-36 GB de disco SAS (almacenamiento de paginación temporal) por blade.
-De las interconexiones que comentaba antes, MareNostrum, se basa en una interconexión de fibra óptica Myrinet, entre otras secundarias.
-El sistema operativo Linux, como podéis ver. En concreto SUSE Linux en su versión 10. Para finalizar, se puede observar un diagrama de la arquitectura del MareNostrum sobre un plano de la capilla, y los números finales del sistema:
-94.20 TFlops (94.20 billones de operaciones de punto flotante por segundo (multiplicaciones y adiciones))
-10240 núcleos de procesamiento
-20 TB de memoria principal
-370 TB de almacenamiento masivo.
Aquí, un poco el cómo se agrupan estos blades en grupos de 14 para formar lo que se denomina "blade center" y estos "blade center" que se agrupan en 6 para formar un rack. Que son la parte más visible del MareNostrum y en general la de cualquier superordenador.
Slide de los blades JS21 No mucho más que añadir respecto a lo dicho en el slide anterior... Se usa una tarjeta discreta de expansión para la interconexión con Myrinet y debido a la arquitectura PowerPC de IBM, están disponibles el poderoso set de instrucciones vectoriales SIMD "Altivec", de función análogas a las SSE de x86.
Aquí un diagrama simplificado de la arquitectura de interconexión Myrinet del MareNostrum.
Para un almacenamiento masivo en el que se utiliza de backup o que no se esta trabajando directamente en ello, se utiliza un sistema de almacenamiento en cintas magnéticas controladas por un robot que alcanzan la extraordinaria cantidad de 6 PB (!) (6 millones de GB)
Cuando el MareNostrum, se inauguró, se dijo, que no sería el más potente del mundo, pero que tal vez, sería uno de los más bonitos. Y es que MN, está instalado en una antigua capilla ya desacralizada, construida a principios del Siglo XX y este a su vez, se encuentra en un cubo de cristal de 9x18x5 metros con 19 T de cristal y 26 de metal. Ocupa 170 m2 y pesa 40 T.
Comienza la visita al MareNostrum. Vemos una especie de esclusa de aire, de doble hoja para minimizar la entrada de polvo y contaminantes y mantener la maquina lo más aislada posible del exterior del cubo. El acceso está controlado por un sistema de biometría de huella dactilar.
Aquí se observan varios racks del MareNostrum, donde también se pueden observar las interconexiones entre ellos y a la izquierda de la fotografía uno de los acondicionadores de aire.
Uno de los pasillos que se observa a lo largo de todo el cubo de cristal que encapsula el MareNostrum.
Podemos observar como el propio cubo con el MN, esta elevado más de 1 m del suelo, formando en el cubo un falso suelo.
Vista del techo del cubo
Parte inferior del falso suelo del MN, por aquí se realizan todas las interconexiones de comunicación de datos de fibra óptica, aporte energético, refrigeración y sistema anti incendios de agua nebulizada.
Vista de los ductos de conducción del aire fresco.
En este slide, que me salió un poco borroso, se puede observar el circuito de aire en el interior del cubo de cristal del MareNostrum con diferenciación de pasillo caliente/frío y acondicionadores de aire laterales que cogen el aire caliente por la parte superior y lo expulsan frio por la parte inferior donde se reparte a través del falso suelo perforado.
En este slide, se observa la monitorización llevada a cabo con el sistema de acondicionamiento de aire, donde se controla la temperatura y humedad del aire, la temperatura del agua y la velocidad de los blowers.
Sin embargo, en relación al anterior slide, se hicieron unas mejoras para aumentar la eficiencia de la recirculación del aire. Colocando este especie de ductos de aire en forma de cuña, para evitar que todo el aire fresco se esparza por el medio y que se redirija directamente a los racks.
Al otro lado del cubo, donde se observan otro grupo de racks. Estos racks, a diferencia de lo anteriores, están equipados con Cell’s BroadBand Engine, procesador que también es el alma de la PS3. Esta arquitectura tiene una densidad de computo bastante elevada y una excelente eficiencia energética, sin embargo, su dificultad de programación y ciertos cuellos de botella en el subsistema de memoria de los SPEs han acabado por llevar a la cancelación de futuros proyectos de evolución de dicha arquitectura, no obstante según IBM y el consorcio STI (alianza entre Sony, Toshiba e IBM que desarrollo el CBE) se salvaran ciertas partes de la arquitectura para futuros chips. Tengo previsto hacer un artículo sobre la evolución del hardware de Playstation, en el que comentare bastante sobre esta arquitectura.
Vistas desde la parte superior de la capilla.
FINALIZANDO
En esta pantalla, bajo un sistema PS3, podemos observar diferentes características y datos técnicos en tiempo real sobre MN.
EL FUTURO DEL BSC Y MARENOSTRUM.
Actualmente el MN y el BSC tienen un futuro bastante prometedor. España se encuentra entre los integrantes del proyecto PRACE (Partnership for Advanced Computing in Europe) y el BSC, lidera el Proyecto Mont-Blanc, en el que se pretende construir un prototipo capaz de ofrecer 7 GFLOPS/Watt.
Hoy por hoy, en todo el mundo existe una infraestructura muy poderosa y capaz de supercomputación, pero hay un obstáculo que nos detiene, la Eficiencia Energética.
La mayoría de supercomputadoras actuales están formados por CPUs de Intel y AMD (x86-64), Fujitsu (SPARC) o IBM (POWER). CPUs como las que podemos tener en nuestro PC domestico y que son muy flexibles pero poco eficientes energéticamente hablando. Sin embargo en los últimos años, se han ido añadiendo GPUs de Nvidia (serie Tesla) y AMD (Firestream) o arquitecturas exóticas (Cell) que pueden ofrecer un rendimiento por Wattio (FLOPS/Watt) mucho mayor acosta de un modelo de programación más complejo y limitado (menor flexibilidad) por eso su implantación está siendo un poco lenta.
Sin embargo ya han mostrado su enorme potencial sobre todo en áreas donde la paralelización sea muy intensiva, con pocos branches en el código y con poca dependencia de datos (la mayoría de las tareas en HPC).
Actualmente las supercomputadoras consumen energía en el orden de unidades de MW (como referencia una central nuclear produce en torno a los 1000 MW de energía) .
Según estudios de Nvidia, una GPU actual (a 40nm) consume en torno a 0.2 nanoJoule’s para ejecutar una instrucción, mientras que una CPU consume 2 nanoJoule’s para ejecutar la misma instrucción, donde va entonces toda esa energía de diferencia?
Las CPUs como he dicho, están optimizadas para la ejecución de código serial, este código, tradicionalmente está plagado de branches (que en un momento dado, se requiera dar un salto a otra posición de la memoria), dependencias (que no se pueda ejecutar una instrucción de forma paralela con otra, porque antes necesitas el resultado de otra operación), entre otras características. Para lidiar con todo esto, las CPUs poseen una compleja circuitería (predicción de saltos, ejecución fuera de Orden, ejecución especulativa, grandes caches…) para solucionar todos estos problemas y agendar correctamente las instrucciones hacia el núcleo de ejecución (donde se llevan a cabo las operaciones matemáticas propiamente dichas; sumas, multiplicaciones, divisiones…). Toda esta circuitería consume mucha energía, mientras que la operación propiamente dicha, pongamos una multiplicación en coma flotante consume 0.025 nanoJoules, o una adición en enteros 0.00005 nanoJoules de esos 2 nanoJoules (!!!!)
Las GPUs (tarjetas gráficas, como las que utilizamos en nuestro PC para jugar al Crysis o al Half Life ) en cambio están optimizados para la ejecución de código altamente paralelo y fácil de predecir.
Si hoy, quisiéramos construir una supercomputadora capaz de computar en el orden de los ExaFlops (1018 operaciones en coma flotante por segundo) consumiría 2 GW, lo que producen 2 centrales nucleares o la Presa Hoover de Nevada.
La ley de Moore nos proporciona una reducción de la energía necesaria cada 24 meses, pero se requiere de un cambio de paradigma y programación.
Recuperando el Proyecto Mont-Blanc, el BSC propone la utilización de la arquitectura ARM (la que actualmente ocupa el 99 % de los celulares) como CPU y arquitectura de GPUs de Nvidia como acelerador. Con esto, el BSC ha creado un prototipo con módulos Tegra 3 de Nvidia (4 núcleos ARM Cortex A9 a 1.5 GHz, 4 GB DDR3 de RAM) y tarjetas aceleradoras Nvidia GeForce 520MX (48 CUDA Cores a 900 MHz) con esto se consigue llegar al objetivo de 7.5 GFLOPS/W siendo la supercomputadora más eficiente del mundo, actualmente las más eficientes están basadas en IBM Blue Gene/Q.
Cuando la actualización se lleve a cabo y se complete, lograra situar al MareNostrum (que probablemente pase a llamarse MareIncognito) en el orden de decenas de PFLOPS, situándolo así entre las diez supercomputadoras más potentes del mundo.
Actualización
ANEXO
CPU: Unidad Central de Proceso. Procesador.
GPU: Graphics Processing Unit. Procesador gráfico, tarjeta gráfica o de vídeo.
FLOP: Operación en coma flotante por segundo. Es un tipo de números que existen en la computación, se caracterizan por ofrecer una mayor precisión que los números enteros (de ahí su importancia en cálculos científicos y de ingeniería). Son más "difíciles" de procesar, pensad en ellos en como si fuesen números con decimales. La unidad FLOP/W es una unidad de rendimiento, que muestra cuantos FLOPS pueden ser procesados por la unidad de energía, wattio. Para expresarlos se usan los prefijos de ordenes de magnitud.
-Mega: 106
-Giga: 109
-Tera: 1012
-Peta: 1015
Exaescala: Superordenadores que puedan procesar del orden de ExaFLOPS (1018 operaciones por segundo), actualmente estamos en la Petaescala, es decir; los superordenadores más potentes del mundo (los 10 primeros de la lista TOP500) están en el rango de los PetaFLOPS. Actualmente vamos rumbo hacia la Exaescala, que la alcanzaremos según las predicciones para 2018. En su día postee sobre la "rotura" de la barrera del PetaFLOP
nanoJoule: El Joule es una unidad de energía, como lo son las calorías o los Watt. 1 nanoJoule son 10-9 Joules.
Muchos de aquí, sabéis que soy un apasionado de la ciencia y la tecnología y en especial del hardware usado en la computación o dispositivos electrónicos, de este campo tan extenso, uno de mis temas favoritos es la SuperComputación.
Hoy os subo una visita que hice al Centro de Supercomputación de Barcelona o BSC (por sus siglas en ingles, Barcelona Supercomputing Center) hacia principios de 2011, para acudir a unas conferencias sobre supercomputación y realizar una visita guiada al MareNostrum, el superordenador más notable de las instalaciones, nombrado "mar nuestro" en latín, que era como los romanos llamaban al Mar Mediterráneo.
INTRODUCCION A LA SUPERCOMPUTACION Y SU IMPORTANCIA
Para que os hagáis una idea sencilla, un superordenador es un conjunto de múltiples componentes informáticos (CPUs, memorias, unidades de disco, conexiones Ethernet ultrarápidas y de superbaja latencia) que forman un sistema interconectado entre sí, creando un complejo sistema capaz de resolver problemas muy complejos.
La supercomputación, puede pasar desapercibida en la vida cotidiana para nosotros, sin embargo nos influye más de lo que creemos. Por ejemplo, los superordenadores actualmente son usados para:
-Simulación de biomoleculas utilizando técnicas de dinámica molecular, docking de proteínas y predicciones de estructura proteínica que permitirán encontrar y diseñar potenciales medicamentos para tratar enfermedades hoy incurables (Malaria, SIDA, Cáncer, Alzheimer, Parkinson, Distrofia Muscular…)
Este video muestra el plegamiento de una proteína (NTL9) computado en una sola GPU. La simulación en el video dura menos de 1.30 minutos, sin embargo se ha sido simulado tan solo un milisegundo de plegamiento y ha requerido horas y horas, incluso días de computación en una GPU de alto rendimiento.
-Modelado climático para la predicción del clima futuro de la Tierra y efectos de la actividad humana sobre esta. También son usados en la meteorología local.
-Simulaciones para la predicción de efectos de catástrofes (inundaciones, terremotos, incendios forestales, tsunamis…) o migraciones de tiempo inverso & Kirchoff para prospecciones de gas y petróleo.
Simulaciones como esta ayudaron a predecir los efectos del tsunami producido por el terremoto de Tohoku de marzo de 2011 en Japón sobre las costas de los continentes.
-Diseño de aviones militares y comerciales y vehículos en general para que tengan una mejor aerodinámica y consuman menos combustible.
-Simulaciones sobre Astrofísica y Cosmología, para entender mejor el Universo.
-Creación de películas de animación como Shrek, Madagascar, Cars, Ice Age, Toy Story o Avatar.
-Procesado de señales e imágenes, simulaciones del arsenal nuclear, transacciones bancarias (aunque en este caso solemos hablar de mainframes), ingeniería estructural, dinámica de fluidos computacional, investigación de nuevos materiales, diseño y verificación de nuevos circuitos integrados, simulaciones Monte Carlo para modelos de valores de mercado, modelado del comportamiento de plagas de langostas para minimizar el daño a los cultivos agrícolas y podría continuar con una lista casi infinita.
EL MARE NOSTRUM Y LA SUPERCOMPUTACIÓN EN ESPAÑA
Vídeo introductorio del MareNostrum
La supercomputación en España, está relativamente bien desarrollada, es uno de los rubros en los que no nos podemos quejar.
A dia de hoy, tomando como referencia la última lista del TOP500 de 2011 (una lista con los 500 superordenadores más potentes del mundo, que se publica bianualmente entre Junio y Noviembre, por lo que dentro de poco hare un reporte sobre la primera publicación de dicha lista de 2012).
España, tiene 3 superordenadores de entre los 500 más poderosos del mundo:
-En primer lugar, en el puesto 114, el MinoTauro, un cluster Bullx B505 compuesto por CPUs Intel Xeon E5649 (Hexa-Core con núcleos Westmere a 2.53 GHz) y GPUs Nvidia Tesla 2090 basadas en Fermi con 103.20 TFLOPS situado en el Centro de Supercomputación de Barcelona (BSC).
-En Segundo lugar, en el puesto 228, el Magerit, un cluster’s de BladeCenter PS702 Express con CPUs IBM POWER7 a 3.3GHz con 72.03 TFLOPS situado en el Centro de Supercomputación y Visualización de Madrid (CeSViMa).
Si os gustan los Time-Lapse, ahí va un video sobre su actualización de IBM PowerPC970 a IBM POWER7 que ocurrió en 2011.
-Y en tercer lugar, en el puesto 299, el MareNostrum, un clúster de BladeCenter’s JS21 con CPUs IBM PowerPC970MP a 2.3GHz con 63.83 TFLOPS situado en el Centro de Supercomputación de Barcelona (BSC).
Sin embargo, la supercomputación y su historia en España es mucho más extensa. La verdadera era de supercomputación en España empezó con MareNostrum.
MareNostrum en Barcelona, puesto en marcha en 2005, en su mejor momento, estuvo en el puesto 4º del mundo y durante unos años en el 1º de Europa.
A lo largo de los años se ha ido rezagando, sin embargo en 2006 fue actualizado y doblo su potencia de cálculo pasando del puesto 11 al 5º como se puede observar en el Slide.
A raíz de esta actualización es como nació la Red Española de Supercomputación o RES. La RES se formó a partir de los antiguos nodos que formaban parte de la primera versión del MareNostrum, cuando este fue actualizado, los “antiguos” nodos fueron a parar a diferentes partes de España para formar parte de diferentes superordenadores (además del propio MareNostrum en Barcelona):
-La primera versión de Magerit en el Centro de Supercomputación y Visualización de Madrid formado por 1204 nodos JS20 y otros 168 JS21, ambos basados en IBM PowerPC970 computando a 14 TFLOPS situándose en el 34 del mundo y el segundo de España.
-Altamira, en la Universidad de Cantabria con 512 nodos JS20 PowerPC970, 4.5 TFLOPS y en su mejor momento en el puesto 415 del mundo.
-LaPalma, en el Instituto de Astrofísica de Canarias, con 512 nodos PowerPC970, 4.5 TFLOPS.
-Picasso, en la Universidad de Málaga, con 512 nodos JS20 PowerPC970, 4.5 TFLOPS.
-Tirant, en la Universidad de Valencia, con 512 nodos JS20 PowerPC970, 4.5 TFLOPS.
-CaesarAugusta, en el Instituto de Biocomputación y Física de Sistemas Complejos de la Universidad de Zaragoza, con 512 nodos JS20 PowerPC970, 4.5 TFLOPS.
-Atlante, en el Instituto tecnológico de Canarias, con 84 nodos JS20 PowerPC970, 2 TFLOPS.
-A parte de estos sistemas, en 2009 se añadió el Caléndula, en la Universidad de León, basado en Intel Xeon E5450 (Quad-Core basados en Yorkfield a 3 GHz) alcanzando 33 TFLOPS.
Fuera de la RES, actualmente existen otros superordenadores en España:
-LUSITANIA, en el Centro Extremeño de Investigación Innovación Tecnologica y Supercomputación, con 128 nodos Intel Itanium 2 Montvale alcanzando 1.85 TFLOPS.
-Finisterrae, en el Centro de Supercomputación de Galicia, con 144 nodos basados en Intel Itanium 2 Montvale alcanzando 14 TFLOPS.
-Tarja, en la Escuela técnica superior de Ingeniería Informática de La Universidad de la Laguna (Tenerife), compuesto por 64 procesadores Intel Itanium 2, alcanzando 0.6 TFLOPS.
Un slide de la Red Española de Supercomputación. Con los antiguos blades de los que estaba formado el MareNostrum en su primera versión, se han ido montando otros superordenadores a lo largo de España. Con este método (único en el mundo) se logra reutilizar el hardware para otras máquinas, ahorrando considerables recursos económicos y por supuesto siendo más respetuoso con el medio ambiente.
Algunos datos de la RES
-El total de horas de computación de toda la red (73.393.152 horas)
-La potencia de cómputo total de la red (168.31 TFLOPS)
-Y las peticiones aceptadas/rechazadas en toda la red, como se puede ver se solicita una media de un 208 % por encima de la capacidad de la RES (datos a fecha de 2009).
LA VISITA
Como la visita fue en el BSC, vamos a focalizarnos en este, los slides a continuación y los que he posteado anteriormente corresponden a una de las conferencias a las que asistí llevada a cabo por David Vicente, Jefe del Equipo de Soporte.
Cartel del BSC.
Entrada principal al BSC en la UPC al lado de la facultad de informática.
Misión del BSC
En este slide, podemos observar, lo que podría diferenciar un PC casero, con un superordenador. Para comenzar, la gran cantidad de hardware que lo componen, actualmente del orden de miles de procesadores, del orden de decenas o cientos de Terabytes de memoria principal y del orden de miles de Terabytes de almacenamiento masivo. Para interconectar todo este hardware se requiere de una red de comunicación de gran ancho de banda y baja latencia. Otra diferenciación, es el scheduling de las tareas a procesar, que se van ejecutando de manera continuada, según el orden de prioridad establecido y por tal de no dejar a ningún clúster sin trabajo que hacer en ningún momento.
Además...
-Tienen un sistema operativo, más adaptado a HPC (mayoritariamente diestros de Linux),
-Librerías matemáticas y programas especializados como por ejemplo:
-CPMD (Química computacional)
-WRF (modelado atmosférico)
-TORB/EUTERPE (física de plasmas)
-NEMO (modelado oceánico)
-Code_Saturne (Dinámica de fluidos computacional)
-Entre otros...
-Poderosos compiladores para alcanzar la mayor eficiencia y rendimiento, dependiendo de la arquitectura de la máquina. Por último, tenemos lo que sería el centro de proceso de datos que se compondría de:
-Un sistema antiincendios: En el caso del MareNostrum sistemas de extinción de agua nebulizada, que minimiza los daños en los sistemas electrónicos.
-Sistemas de refrigeración de alta eficiencia (CRAC), para evacuar el calor generado por toda la maquinaria y equipamiento
-Y por último, sistemas SAI (sistemas de alimentación ininterrumpida) para evitar perdida de datos en caso de caída de la energía principal.
El BSC no se compone solamente del MareNostrum (y actualmente del MinoTauro), posee otros sistemas que se pueden dedicar al postprocesamiento por ejemplo este sistema de Silicon Graphics basado en 128 CPUs de arquitectura Intel Itanium 2 Montecito con un rendimiento de 819.2 GFLOPS y 2.5 TB de memoria principal. Además posee un “Cluster Norte” con 98 blades JS20 PowerPC970 de 1.72 TFLOPS formados por restos de la primera actualización de MN.
Ahora nos focalizaremos en el MN
En este slide nos focalizamos más en el MareNostrum en sí. MareNostrum, en su versión 2.0 actual se compondría de: -2560 blades JS21 con 2 procesadores PowerPC 970MP de doble núcleo a 2.3 GHz. -8 GB de memoria RAM por blade.
-36 GB de disco SAS (almacenamiento de paginación temporal) por blade.
-De las interconexiones que comentaba antes, MareNostrum, se basa en una interconexión de fibra óptica Myrinet, entre otras secundarias.
-El sistema operativo Linux, como podéis ver. En concreto SUSE Linux en su versión 10. Para finalizar, se puede observar un diagrama de la arquitectura del MareNostrum sobre un plano de la capilla, y los números finales del sistema:
-94.20 TFlops (94.20 billones de operaciones de punto flotante por segundo (multiplicaciones y adiciones))
-10240 núcleos de procesamiento
-20 TB de memoria principal
-370 TB de almacenamiento masivo.
Aquí, un poco el cómo se agrupan estos blades en grupos de 14 para formar lo que se denomina "blade center" y estos "blade center" que se agrupan en 6 para formar un rack. Que son la parte más visible del MareNostrum y en general la de cualquier superordenador.
Slide de los blades JS21 No mucho más que añadir respecto a lo dicho en el slide anterior... Se usa una tarjeta discreta de expansión para la interconexión con Myrinet y debido a la arquitectura PowerPC de IBM, están disponibles el poderoso set de instrucciones vectoriales SIMD "Altivec", de función análogas a las SSE de x86.
Aquí un diagrama simplificado de la arquitectura de interconexión Myrinet del MareNostrum.
Para un almacenamiento masivo en el que se utiliza de backup o que no se esta trabajando directamente en ello, se utiliza un sistema de almacenamiento en cintas magnéticas controladas por un robot que alcanzan la extraordinaria cantidad de 6 PB (!) (6 millones de GB)
Cuando el MareNostrum, se inauguró, se dijo, que no sería el más potente del mundo, pero que tal vez, sería uno de los más bonitos. Y es que MN, está instalado en una antigua capilla ya desacralizada, construida a principios del Siglo XX y este a su vez, se encuentra en un cubo de cristal de 9x18x5 metros con 19 T de cristal y 26 de metal. Ocupa 170 m2 y pesa 40 T.
Comienza la visita al MareNostrum. Vemos una especie de esclusa de aire, de doble hoja para minimizar la entrada de polvo y contaminantes y mantener la maquina lo más aislada posible del exterior del cubo. El acceso está controlado por un sistema de biometría de huella dactilar.
Aquí se observan varios racks del MareNostrum, donde también se pueden observar las interconexiones entre ellos y a la izquierda de la fotografía uno de los acondicionadores de aire.
Uno de los pasillos que se observa a lo largo de todo el cubo de cristal que encapsula el MareNostrum.
Podemos observar como el propio cubo con el MN, esta elevado más de 1 m del suelo, formando en el cubo un falso suelo.
Vista del techo del cubo
Parte inferior del falso suelo del MN, por aquí se realizan todas las interconexiones de comunicación de datos de fibra óptica, aporte energético, refrigeración y sistema anti incendios de agua nebulizada.
Vista de los ductos de conducción del aire fresco.
En este slide, que me salió un poco borroso, se puede observar el circuito de aire en el interior del cubo de cristal del MareNostrum con diferenciación de pasillo caliente/frío y acondicionadores de aire laterales que cogen el aire caliente por la parte superior y lo expulsan frio por la parte inferior donde se reparte a través del falso suelo perforado.
En este slide, se observa la monitorización llevada a cabo con el sistema de acondicionamiento de aire, donde se controla la temperatura y humedad del aire, la temperatura del agua y la velocidad de los blowers.
Sin embargo, en relación al anterior slide, se hicieron unas mejoras para aumentar la eficiencia de la recirculación del aire. Colocando este especie de ductos de aire en forma de cuña, para evitar que todo el aire fresco se esparza por el medio y que se redirija directamente a los racks.
Al otro lado del cubo, donde se observan otro grupo de racks. Estos racks, a diferencia de lo anteriores, están equipados con Cell’s BroadBand Engine, procesador que también es el alma de la PS3. Esta arquitectura tiene una densidad de computo bastante elevada y una excelente eficiencia energética, sin embargo, su dificultad de programación y ciertos cuellos de botella en el subsistema de memoria de los SPEs han acabado por llevar a la cancelación de futuros proyectos de evolución de dicha arquitectura, no obstante según IBM y el consorcio STI (alianza entre Sony, Toshiba e IBM que desarrollo el CBE) se salvaran ciertas partes de la arquitectura para futuros chips. Tengo previsto hacer un artículo sobre la evolución del hardware de Playstation, en el que comentare bastante sobre esta arquitectura.
Vistas desde la parte superior de la capilla.
FINALIZANDO
En esta pantalla, bajo un sistema PS3, podemos observar diferentes características y datos técnicos en tiempo real sobre MN.
EL FUTURO DEL BSC Y MARENOSTRUM.
Actualmente el MN y el BSC tienen un futuro bastante prometedor. España se encuentra entre los integrantes del proyecto PRACE (Partnership for Advanced Computing in Europe) y el BSC, lidera el Proyecto Mont-Blanc, en el que se pretende construir un prototipo capaz de ofrecer 7 GFLOPS/Watt.
Hoy por hoy, en todo el mundo existe una infraestructura muy poderosa y capaz de supercomputación, pero hay un obstáculo que nos detiene, la Eficiencia Energética.
La mayoría de supercomputadoras actuales están formados por CPUs de Intel y AMD (x86-64), Fujitsu (SPARC) o IBM (POWER). CPUs como las que podemos tener en nuestro PC domestico y que son muy flexibles pero poco eficientes energéticamente hablando. Sin embargo en los últimos años, se han ido añadiendo GPUs de Nvidia (serie Tesla) y AMD (Firestream) o arquitecturas exóticas (Cell) que pueden ofrecer un rendimiento por Wattio (FLOPS/Watt) mucho mayor acosta de un modelo de programación más complejo y limitado (menor flexibilidad) por eso su implantación está siendo un poco lenta.
Sin embargo ya han mostrado su enorme potencial sobre todo en áreas donde la paralelización sea muy intensiva, con pocos branches en el código y con poca dependencia de datos (la mayoría de las tareas en HPC).
Actualmente las supercomputadoras consumen energía en el orden de unidades de MW (como referencia una central nuclear produce en torno a los 1000 MW de energía) .
Según estudios de Nvidia, una GPU actual (a 40nm) consume en torno a 0.2 nanoJoule’s para ejecutar una instrucción, mientras que una CPU consume 2 nanoJoule’s para ejecutar la misma instrucción, donde va entonces toda esa energía de diferencia?
Las CPUs como he dicho, están optimizadas para la ejecución de código serial, este código, tradicionalmente está plagado de branches (que en un momento dado, se requiera dar un salto a otra posición de la memoria), dependencias (que no se pueda ejecutar una instrucción de forma paralela con otra, porque antes necesitas el resultado de otra operación), entre otras características. Para lidiar con todo esto, las CPUs poseen una compleja circuitería (predicción de saltos, ejecución fuera de Orden, ejecución especulativa, grandes caches…) para solucionar todos estos problemas y agendar correctamente las instrucciones hacia el núcleo de ejecución (donde se llevan a cabo las operaciones matemáticas propiamente dichas; sumas, multiplicaciones, divisiones…). Toda esta circuitería consume mucha energía, mientras que la operación propiamente dicha, pongamos una multiplicación en coma flotante consume 0.025 nanoJoules, o una adición en enteros 0.00005 nanoJoules de esos 2 nanoJoules (!!!!)
Las GPUs (tarjetas gráficas, como las que utilizamos en nuestro PC para jugar al Crysis o al Half Life ) en cambio están optimizados para la ejecución de código altamente paralelo y fácil de predecir.
Si hoy, quisiéramos construir una supercomputadora capaz de computar en el orden de los ExaFlops (1018 operaciones en coma flotante por segundo) consumiría 2 GW, lo que producen 2 centrales nucleares o la Presa Hoover de Nevada.
La ley de Moore nos proporciona una reducción de la energía necesaria cada 24 meses, pero se requiere de un cambio de paradigma y programación.
Recuperando el Proyecto Mont-Blanc, el BSC propone la utilización de la arquitectura ARM (la que actualmente ocupa el 99 % de los celulares) como CPU y arquitectura de GPUs de Nvidia como acelerador. Con esto, el BSC ha creado un prototipo con módulos Tegra 3 de Nvidia (4 núcleos ARM Cortex A9 a 1.5 GHz, 4 GB DDR3 de RAM) y tarjetas aceleradoras Nvidia GeForce 520MX (48 CUDA Cores a 900 MHz) con esto se consigue llegar al objetivo de 7.5 GFLOPS/W siendo la supercomputadora más eficiente del mundo, actualmente las más eficientes están basadas en IBM Blue Gene/Q.
Cuando la actualización se lleve a cabo y se complete, lograra situar al MareNostrum (que probablemente pase a llamarse MareIncognito) en el orden de decenas de PFLOPS, situándolo así entre las diez supercomputadoras más potentes del mundo.
Actualización
ANEXO
CPU: Unidad Central de Proceso. Procesador.
GPU: Graphics Processing Unit. Procesador gráfico, tarjeta gráfica o de vídeo.
FLOP: Operación en coma flotante por segundo. Es un tipo de números que existen en la computación, se caracterizan por ofrecer una mayor precisión que los números enteros (de ahí su importancia en cálculos científicos y de ingeniería). Son más "difíciles" de procesar, pensad en ellos en como si fuesen números con decimales. La unidad FLOP/W es una unidad de rendimiento, que muestra cuantos FLOPS pueden ser procesados por la unidad de energía, wattio. Para expresarlos se usan los prefijos de ordenes de magnitud.
-Mega: 106
-Giga: 109
-Tera: 1012
-Peta: 1015
Exaescala: Superordenadores que puedan procesar del orden de ExaFLOPS (1018 operaciones por segundo), actualmente estamos en la Petaescala, es decir; los superordenadores más potentes del mundo (los 10 primeros de la lista TOP500) están en el rango de los PetaFLOPS. Actualmente vamos rumbo hacia la Exaescala, que la alcanzaremos según las predicciones para 2018. En su día postee sobre la "rotura" de la barrera del PetaFLOP
nanoJoule: El Joule es una unidad de energía, como lo son las calorías o los Watt. 1 nanoJoule son 10-9 Joules.