Descripción del proyecto

Optimiza – Optimización de aplicacións irregulares en arquitecturas emerxentes de altas prestacións CPU/GPU

Periodo: 2010-01-01 – 2012-12-30 (36 meses).

Entidad financiadora: Xunta de Galicia

http://forge.cesga.es/projects/optimiza

OPTIMIZA: OPTIMIZACIÓN DE APLICACIONES IRREGULARES EN ARQUITECTURAS EMERGENTES DE ALTAS PRESTACIONES CPU/GPU

La transición de la industria cara los procesadores multinúcleo (multicore) está considerado cómo uno de los hitos más importantes en la historia de la computación. Sin embargo, por un lado, el hecho de disponer de procesadores más potentes no vino acompañado de un importante incremento en el rendimiento de las aplicaciones. Por el otro, los sistemas multinúcleo actuales son tan diversos arquitectonicamente que las aplicaciones deben especializarse usando técnicas de optimización específicas para la arquitectura considerada. Estos dos problemas serán abordados dentro del marco de este proyecto de investigación.

Una de las principales razones para esta diversidad arquitectónica es la necesidad de buscar un equilibrio entre las capacidades de la memoria y el procesador. Así, la Ley de Moore muestra como cada año y medio el rendimiento de los procesadores se multiplica por dos, mientras que la memoria precisa de diez años para duplicar sus prestaciones (problema conocido cómo Barrera de Memoria ó Memory Wall). De este modo, el ancho de banda y la latencia en los accesos a la memoria fueron unas de las principales limitaciones en el rendimiento en las arquitecturas tradicionales. En el caso de las arquitecturas multinúcleo, por temas de costo y eficiencia, la tendencia en la industria del hardware es la de incrementar el número de núcleos (cores) frente al aumento del ancho de banda. Por lo tanto, la jerarquía de memoria se mantendrá cómo la llave fundamental en el rendimiento de las aplicaciones en las futuras arquitecturas multinúcleo [1].

Especialmente grave es el caso de las aplicaciones irregulares. En estas aplicaciones el principio de localidad, en el que se basa el funcionamiento eficiente de la jerarquía de memoria, no se cumple. Por lo tanto, el rendimiento que se va a obtener cuándo se ejecuten estas aplicaciones en arquitecturas multinúcleo será mucho más bajo que lo de las aplicaciones estándar (típicamente, en torno la un 10% del rendimiento pico de la máquina). Las aplicaciones irregulares son de las aplicaciones científicas más demandadas, estando presentes, entre otros, en problemas de simulación de dispositivos electrónicos, mecánica de fluidos o problemas de n-cuerpos (astrofísica, dinámica molecular, etc.). Podemos tomar como ejemplo el uso del superordenador Finisterrae del CESGA en el último año, donde 3 de las 5 aplicaciones con más horas dedicadas de computo son irregulares. Asimismo, están muy presentes en industrias como las de diseño de componentes electrónicos (p. ej., simulación de transistores), farmacéutica (p. ej., análisis de proteínas y biomoléculas), audiovisual (p. ej., renderizado de imágenes 3D) o aeronáutica, entre muchas otras.

En este contexto, el objetivo que se propone en el proyecto es lo de aplicar la experiencia del grupo investigador en la paralelización y optimización de aplicaciones irregulares al contexto de las nuevas arquitecturas que dominarán el mercado de la computación de altas prestaciones nos próximos años: los sistemas híbridos multinúcleo CPU/GPU. En este tipo de sistemas, además de procesadores multinúcleo estándar (CPUs) existen una o más unidades de procesamento gráfico (GPUs). Las GPUs actuales poseen varias decenas de sencillos procesadores (típicamente, más de 100) que permiten su utilización, además de como unidades específicas para el renderizado de gráficos, para la computación paralela de propósito general. Así, este tipo de sistemas suponen un auténtico reto para los programadores debido la incorporación de nuevos niveles en la jerarquía de memoria, situando en el desarrollo del software la clave para obtener altos rendimientos. Por lo tanto, el desarrollo de herramientas y librerías que, por un lado, simplifiquen el uso de estos sistemas y, por otro, sean capaces de obtener un alto rendimiento, se revela de gran importancia para la comunidad científica y la industria. En concreto, en el proyecto se van a desarrollar técnicas de migración automática de páginas en memoria guiadas por la información aportada por los contadores hardware de los procesadores, y una librería matemática de códigos irregulares de álgebra matricial adaptada y optimizada para su uso con GPUs.

[1] K. Asanovic et al. The Landscape of Parallel Computing Research: La View from Berkeley. Technical Report. Univ.of California, Berkeley (USA), 2006.

OBJETIVOS DEL PROYECTO

El presente proyecto se enmarca en el ámbito de la computación de altas prestaciones (High Performance Computing), de las nuevas arquitecturas del procesador para superordenadores y de su aplicación a problemas de la industria y de la comunidad científica con una necesidad de elevados recursos computacionales.
El objetivo general del proyecto es aplicar la experiencia del grupo investigador en la paralelización y optimización de aplicaciones irregulares al contexto de las nuevas arquitecturas que dominarán el mercado de la computación de altas prestaciones en los próximos años: los sistemas híbridos multinúcleo CPU/GPU. Con esta finalidad se desarrollarán para la industria y la comunidad científica herramientas y librerías matemáticas que, por un lado, simplifiquen el uso de estos sistemas y, por otro, sean capaces de obtener un alto rendimiento.

De una forma más concreta podemos resumir los objetivos del proyecto de la siguiente forma:

1. Evaluación de las GPUs y sus modelos de programación como plataforma adecuada para el desarrollo/optimización de aplicaciones irregulares en el ámbito de la computación de altas prestaciones.

2. Extensión de los modelos de la jerarquía de memoria desarollados previamente por los miembros del equipo investigador a las nuevas arquitecturas híbridas CPU multinúcleo con GPU.

3. Desarrollar herramientas software que permitan el aprovechamiento de la jerarquía de memoria por parte de las aplicaciones irregulares y faciliten la programabilidad de este tipo de sistemas:
– En el caso de las CPUs multinúcleo nos centraremos en el desarrollo de técnicas automáticas de migración de páginas de memoria. Estas técnicas se basarán en nuevos modelos y permitirán su aplicación en los sistemas multiprocesador NUMA (No-Uniform-Memory-Access). La técnica de migración será transparente al usuario.
– En el caso de las GPUs se desarrollará una librería matemática para códigos irregulares de álgebra matricial dispersa. Los códigos de álgebra matricial dispersa son los núcleos computacionales fundamentales de la mayoría de las aplicaciones irregulares presentes en la industria y en las aplicaciones científicas. Esta librería permitirá el uso de funciones matemáticas optimizadas para GPUs explotando las capacidades que brindan este tipo de sistemas de rendimiento y paralelismo. Se prestará especial atención a la optimización en los accesos a memoria.

4. Finalmente, el proyecto va a permitir evaluar y mejorar el conocimiento sobre este tipo de arquitecturas híbridas de nueva generación, facilitando la toma de decisiones sobre la arquitectura del futuro superordenador Finisterrae2 del CESGA.