Posts etiquetados con ‘multicore’

El Jaguar se transforma en Titan

Jaguar, el supercomputador de Oak Ridge National Laboratory que en noviembre de 2009 fue líder mundial del ranking Top500 y que quedó relegado a sexta posición el pasado junio, se reconvierte para luchar por la posición de cabeza a mediados del mes que viene con el nombre de Titan. Jaguar permaneció líder del ranking durante dos convocatorias, noviembre 2009 y junio 2010 (el Top500 es un ranking semestral), pero cedió su puesto en noviembre 2010 a la supremacía china con su Tianhe-1A y de la que dimos buena cuenta por estas línea.

En 2008 Jaguar contenía del orden de 150.000 núcleos de procesamiento y llegó a la segunda posición del ranking. En 2009 ya sufrió un upgrade para escalar a la primera posición, montando una arquitectura Cray XT5 formada por 18688 nodos de 2 CPUs AMD Opteron, cada una de las cuales contaba con 6 cores, y haciendo un total de 224256 núcleos de procesamiento para ofrecer casi 2 Petaflops (2×10^15 operaciones en coma flotante por segundo). La nueva mejora a Titan supone la migración a la arquitectura más reciente Cray XK5 obteniendo un factor x10 en capacidad computacional y llegando a los 20 Petaflops. En una primera fase se sustituían las CPUs de 6 núcleos por unas de 16, pasando a 299008 núcleos de procesamiento. Posteriormente, se incluyeron racks de procesadores gráficos NVIDIA Tesla M2090 de la familia Fermi que terminarán evolucionando a Tesla K20 de la familia Kepler, la más moderna de NVIDIA y que aquí ya presentamos.

La inclusión de procesadores gráficos (GPUs) en los supercomputadores para mejorar las cotas de procesamiento no es nueva, el citado Tiahne-1A ya presumía de ello con sus Tesla M2050 de la familia Fermi en 2011. Por su parte el anterior IBM Roadrunner, líder del ranking de junio de 2008 a noviembre de 2009 (3 convocatorias), incluía una arquitectura basada en procesadores Cell, más conocidos por ser el motor de la videoconsola Sony Playstation3. Sin embargo, la renovada imagen de Jaguar para conseguir el liderato con la inclusión de mayor número de procesadores gráficos ha sido tan espectacular (18688 GPUs, una por nodo, haciendo una arquitectura absolutamente híbrida) que la noticia ya ha aparecido en diferentes medios de información generalista (CNN, BBC, National Geographic). Cabe destacar que esta renovación no se diseña de un día para otro, y que ya estaba prevista desde mediados del año pasado.

Teniendo en cuenta que el consumo energético de Jaguar fue de 7 millones de dólares en 2011 (alrededor de 7MW de consumo), un aspecto quizá más importante que la mejora computacional del x10 que supone Titan respecto a su predecesor, es su eficiencia energética, pues sus procesadores así como las arquitecturas gráficas son más eficientes y ocupando el mismo espacio, así como mejorando un factor x10 su capacidad computacional, no requerirá mucho mayor consumo energético (alrededor de 9 MW). La arquitectura CrayXK5 dará paso en un futuro próximo a una nueva generación XK6 y está previsto que en 2016 Titan vuelva a mejorarse para conseguir otro factor 10 llegando a los 200 Petaflops, camino constante hacia la “Computación Exascala” (de la que ya hablamos en Junio 2011).

Este supercomputador será utilizado de manera abierta por la comunidad científica, para predecir el clima a través de complejos modelos, estudiar nuevos materiales y combustibles, simular procesos nucleares y, en definitiva, buscar nuevas aplicaciones y fuentes de energía para la humanidad.

 

Enlaces de interés sobre la noticia:

Titan: http://www.olcf.ornl.gov/titan/

Top500: http://www.top500.org

Cray: http://www.cray.com

NVIDIA Kepler: http://www.nvidia.com/object/nvidia-kepler.html

Grupo de investigación CAPO: http://www.gavab.es/capo

Etiquetas: , , , , , , , ,
Categorias: General, Hardware

Multicores, ¿por qué?

Hace 20 o 25 años era fácil elegir un ordenador y saber de manera aproximada cómo se iba a comportar tan sólo leyendo el nombre del procesador. Podíamos leer 286, 386, 486 (en el generalista mundo de Intel), y para mayor información solía ir acompañado de unos valores mágicos, 20 MHz, 33 MHz, 40 MHz, etc., que nos daban idea de la frecuencia a la que harían las operaciones necesarias para hacer funcionar las aplicaciones. Es decir, que una vez asumida una familia de procesadores, el valor que lo acompañaba nos indicaba de alguna manera la velocidad del ordenador. Ya en los 90 aparecieron los modelos Intel Pentium y ahí la cosa también parecía fácil, con versiones estándar, versión Pentium II, Pentium III, Pentium 4, que a su vez llevaban cada vez más elevados números mágicos de 266 MHz, 700 MHz, 1.2 GHz.

Pero en la pasada década algo debió ocurrir, porque alrededor de 2005, llegados a las últimas versiones de los Pentium 4, con frecuencias de reloj de 3.0 GHz a 3.6 GHz en los más extremos, todo se hizo más complejo para el que quería comprarse un ordenador de sobremesa.

Y entonces aparecieron los multicores

Los fabricantes empezaron a utilizar valores menores en las frecuencias de reloj, y de un 3.2GHz se pasaba a rondar los 1.8-2.8 GHz. La sencilla nomenclatura de las familias anteriores empezaron poco a poco a complicarse con los Intel Core Duo, Core 2 Duo, Core 2 Quad, Core i7, Core i5, i3 y en ninguno (o salvo casos muy excepcionales) no se ven acompañados por aumentos en frecuencias de reloj. La razón ya la hemos comentado en este blog de vez en cuando, y tiene que ver con los aumentos de potencia y problemas de disipación de calor que tendrían estos equipos al disminuir los procesos de integración y aumentar las frecuencias de reloj.

Como dato orientativo, aumentar un 1% la frecuencia de reloj implica aumentar alrededor de un 3% el consumo energético (y por tanto el calor) y tan solo produce aproximadamente un 0.66% de mejora en rendimiento. Así, aumentar un 15% la frecuencia de reloj, implicaría aumentar un 45% el consumo energético y solo mejorar un 9% el rendimiento. Continuar con esta línea haría insostenible el consumo energético de grandes equipos así como las necesidades de refrigeración de los mismos. No, no es el camino. ¿Qué pasa si disminuimos la frecuencia de reloj una vez que alcanzamos un tope? Pues a la inversa. Si bajamos un 15% la frecuencia de reloj (por ejemplo de 3 GHz a 2.5 GHz) reducimos consecuentemente un 45% el consumo energético (aproximadamente la mitad) y nos quedamos al 90% de rendimiento. Eso de disminuir el rendimiento no es lo que buscábamos, pero ¿qué pasa ahora si duplicamos el número de procesadores? Bueno, entonces la cosa cambia porque pasamos a tener un sistema que aproximadamente consume lo mismo (2 procesadores que consumían aproximadamente la mitad) y sin embargo obtenemos un incremento del 180%, es decir, casi el doble de rendimiento.

Por tanto, y como hemos incidido en más de una ocasión, se acabaron los procesadores mononúcleos, o de un único núcleo de procesamiento, se acabaron los aumentos infinitos en las frecuencias de reloj, excesivo consumo y calor, y recibimos con los brazos abiertos las tecnologías multicore y manycore.

Como Mourinho puede seguir preguntando con su característico “¿por qué?”, seguro que mucho mejor que nosotros lo explica el siguiente vídeo de escasos 9 minutos de Intel.

Imagen de previsualización de YouTube
Etiquetas: , ,
Categorias: General

Sandy Bridge no es una nueva cerveza

Aunque de sugerente nombre, Sandy Bridge no es la última modalidad de cerveza o bebida refrescante, sino el “nombre artístico” de la última propuesta de Intel para los ordenadores de consumo. Anunciado en su propia conferencia (IDF, Intel Developer Forum 2010) el pasado mes de septiembre, la Sandy Bridge es la segunda generación de la familia de procesadores Intel Core que irrumpirá en el mercado tras la feria anual CES (Consumer Electronic Showcase) a principios del nuevo año 2011.

Recientemente ha salido a la prensa que Apple dejará de incluir procesadores gráficos NVIDIA para embarcarse en una alianza con Intel gracias a esta arquitectura Sandy Bridge y no hemos querido dejar la oportunidad de describir ligeramente a la misma.

Sandy Bridge es una arquitectura cuya mayor novedad es la inclusión de un procesador gráfico físicamente en el mismo chip que el procesador central así como con un número de innovaciones adicionales en torno a esta idea (por ejemplo nuevos juegos de instrucciones multimedia de 256 bits), y se sigue fabricando sobre un proceso de 32 nm, igual que la última generación anterior (Westmere para los Intel Core), para continuar con la filosofía de Intel denominada Tick-Tock en la que hay una reducción del proceso de fabricación, unos meses después (alrededor de 6) de cada lanzamiento de una microarquitectura nueva. Es decir, que ahora toca el lanzamiento de la nueva arquitectura Sandy Bridge con igual proceso de fabricación que la última anterior, y dentro de unos meses se mejorará para reducir de 32 nm a 22 nm el proceso de fabricación, más tarde se lanzará otra nueva arquitectura de 22 nm (Haswell) y posteriormente se reducirá su proceso de fabricación, etc.

La idea de integrar los gráficos en la CPU no es algo nuevo, y de hecho, parece una vuelta atrás, sin embargo se diferencia en que ahora sí que hay (o eso nos dicen) unos procesadores gráficos externos a la CPU, aunque incluidos en el mismo chip. Unos gráficos sobre esta geometría se pueden ver en el siguiente vídeo.

Imagen de previsualización de YouTube

Enlaces de interés:

http://www.intel.com/idf

http://software.intel.com/en-us/avx/

http://en.wikipedia.org/wiki/Intel_Tick-Tock

http://www.xataka.com/otros/intel-sandy-bridge-se-confirma-para-2011-como-una-pequena-evolucion-de-los-nehalem

http://www.youtube.com/watch?v=vliLjL4SSsA

Etiquetas: , , , , ,
Categorias: General

Cinco años desde la aparición de los ordenadores “multicore”

En 2010 se hacen cinco años desde que se lanzaron al mercado los primeros sistemas de varios núcleos de procesamiento. Básicamente todo programa sobre una plataforma de consumo anterior se ejecutaba a una cierta velocidad debido a la frecuencia de reloj a la que se sometía el procesador. Todos hemos sido testigos de los aumentos en las prestaciones de los equipos, desde 1 MHz, 16 MHz, 20 MHz (¿os acordáis del botón turbo?), 33 MHz, 233MHz, 900MHZ, 1.2GHz, 2.0GHz, 2.4GHz, 3.0GHz, 3.2 GHz, 3.6GHz y muchos otros valores intermedios. Un mismo programa mejoraba sus prestaciones y su ejecución era más rápida, el videojuego era más interactivo o la gráfica se calculaba más rápidamente. En 2005 se empezaron a lanzar procesadores de consumo que incluían 2 núcleos de cómputo. Compartían ciertos recursos hardware pero de manera eficiente se podían ejecutar 2 programas simultánemente sin compartir tiempo de procesador, o que un mismo programa se ejecutara desde 2 núcleos de procesamiento. La pregunta ahora sería, ¿ha cambiado mucho desde entonces?

compaq386sx25

Quizá la respuesta sea que no demasiado, no hemos sido testigos de grandes mejoras en el rendimiento de una misma aplicación porque ha habido dos barreras importantes. Una es que a mayor número de núcleos, resultaba más eficiente mantener la frecuencia de reloj por debajo de sus máximos históricos, y la segunda es que los programas no estaban preparados para ejecutarse desde dos núcleos de procesamiento relativamente independientes. Lo que sí que hemos podido percibir es que pudiéramos ejecutar más aplicaciones sobre un mismo equipo. Inicialmente, los primeros multinúcleos o multicores estaban basados en dos unidades de procesamiento y poco a poco se reemplazará toda la base instalada para alojar dual cores , quad cores, hexa cores, etc. Será entonces cuando la mentalidad de todo desarrollador se vea modificada, y necesariamente los programas se desarrollen para trabajar con los varios núcleos de cómputo de la plataforma estándar.

Las herramientas de consumo para el desarrollo de software están incluyendo progresivamente soporte para la programación paralela, el cambio está a la vuelta de la esquina. Dejamos al lector un enlace interesante que habla de esto mismo: http://www.drdobbs.com/go-parallel/blog/archives/2010/03/think_parallel_1.html

Etiquetas: , , ,
Categorias: General

Universo Paralelo de Intel

No es la última película de ciencia ficción, de hecho no hablamos del futuro, sino del presente. En este blog ya se han hecho múltiples referencias sobre el potencial problema que trae consigo que las arquitecturas de cómputo (los ordenadores) evolucionen de una manera que no se había augurado hace una década (ver ejemplo). En lugar de ser más rápidos, cada vez son más paralelos, capaces de realizar tareas simultaneamente pero no necesariamente más rápido si dichas tareas son independientes. Si las tareas son dependientes, o directamente es solo una, entonces se puede incrementar la velocidad final de la solución dividiendo el problema y resolviéndolo de forma parcial desde diferentes núcleos de cómputo (cores). Sin embargo, esta división en general no es automática, y el programador debe ser consciente de ello para poder sacar partido a los nuevos sistemas de cómputo.

El fabricante de procesadores Intel lleva un tiempo interesado en concienciar a los programadores en las nuevas necesidades y buenas prácticas de programación con vistas al presente y futuro inmediato. En este sentido ha lanzado un servicio web de exploración de código denominado Intel Parallel Universe. La herramienta está disponible desde http://paralleluniverse.intel.com/ y está pensada para recabar información de manera automática de un código fuente de un programa informático para conocer su posible escalabilidad en plataformas de varios núcleos de cómputo. De hecho, el sistema ofrecerá gráficas para mostrar la escalabilidad (lo bien que se portará la aplicación) en sistemas de 1, 2, 4, 8 y 16 núcleos de cómputo. El uso de la herramienta es gratuito, solamente se necesita estar registrado y subir los códigos (de menos de 20MB) en versión final de 32 bits. Intel ha anunciado que en breve estará disponible para otras plataformas.

Dejo por aquí un vídeo demostrativo:

Imagen de previsualización de YouTube
Etiquetas: , , ,
Categorias: General

OpenCL nuevo interfaz de programación paralela

OpenCL, Open Compute Language, es la primera propuesta abierta y estándar de programación paralela sobre dispositivos heterogéneos de consumo, como sistemas multicore, GPUs, móviles, procesadores basados en Cell, etc. El objetivo de OpenCL es crear un punto de encuentro entre fabricantes para que adopten una estrategia común,  simplificar la programación de estos dispositivos y poder sacar provecho a arquitecturas heterogéneas con menores tiempos de desarrollo. OpenCL fue una iniciativa propuesta por Apple y posteriormente impulsada por Khronos, el grupo de empresas del sector que mantiene el interfaz de acceso gráfico OpenGL entre otros.

(más…)

Etiquetas: , , ,

Paralelismo de consumo: ¿el futuro de la computación?

Hasta hace pocos años, los ordenadores personales han venido aumentando su poder de cómputo casi exclusivamente por un aumento en las frecuencias de reloj que repercutían en disparados consumos energéticos y calentamientos del sistema. Ante esta situación, que incluso alarmaba al sector energético mundial, los fabricantes lanzaron productos multinúcleos (multicore) con gran éxito en el mercado, que reducen el consumo energético del sistema de manera sustancial. Someramente, se basan en la posibilidad de realizar cálculos en paralelo sobre varios procesadores de forma simultánea, reduciendo en promedio el tiempo de ejecución del proceso. Sin embargo, un programa preparado para un único procesador no se ejecuta más rápido por correr en un sistema de doble núcleo sin más, puesto que realmente el programa no está preparado para ese sistema doble, o multinúcleo. (más…)

Etiquetas: , , , , ,
Categorias: General, Hardware