Ficha de proxecto

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

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

Entidad financiadora: Xunta de Galicia

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

OPTIMIZA: OPTIMIZACIÓN DE APLICACIÓNS IRREGULARES EN ARQUITECTURAS EMERXENTES DE ALTAS PRESTACIÓNS CPU/GPU

A transición da industria cara os procesadores multinúcleo (multicore) está considerado como un dos fitos máis importantes na historia da computación. Sen embargo, por un lado, o feito de dispoñer de procesadores máis potentes non veu acompañado dun importante incremento no rendemento das aplicacións. Polo outro, os sistemas multinúcleo actuais son tan diversos arquitectonicamente que as aplicacións deben especializarse usando técnicas de optimización específicas para a arquitectura considerada. Estes dous problemas serán
abordados dentro do marco deste proxecto de investigación.

Unha das principais razóns para esta diversidade arquitectónica é a necesidade de buscar un equilibrio entre as capacidades da memoria e o procesador. Así, a Lei de Moore móstranos coma cada ano e medio o rendemento dos procesadores multiplícase por dous, mentres que a memoria precisa de dez anos para duplicar as súas prestacións (problema coñecido como o da Barreira da Memoria Memory Wall-). Deste xeito, o ancho de banda e a latencia nos accesos á memoria foron unhas das principais limitacións no rendemento nas arquitecturas tradicionais. No caso das arquitecturas multinúcleo, por temas de custo e eficiencia, a tendencia na industria do hardware é a de incrementar o número de núcleos (cores) fronte ó aumento do ancho de banda. Polo tanto, a xerarquía de memoria manterase como a chave fundamental no rendemento das
aplicacións nas futuras arquitecturas multinúcleo [1].

Especialmente grave é o caso das aplicacións irregulares. Nestas aplicacións o principio de localidade, no que se basea o funcionamento eficiente da xerarquía de memoria, non se cumpre. Polo tanto, o rendemento que se vai obter cando se executen estas aplicacións en arquitecturas multinúcleo será moito máis baixo que o das aplicacións estándar (tipicamente, en torno a un 10% do rendemento pico da máquina). As aplicacións irregulares son das aplicacións científicas máis demandadas, estando presentes, entre outros, en problemas de simulación de dispositivos electrónicos, mecánica de fluídos ou problemas de n-corpos (astrofísica, dinámica molecular, etc.). Podemos tomar como exemplo o uso do supercomputador FinisTerrae do CESGA no último ano, onde 3 das 5 aplicacións con máis horas dedicadas de computo son irregulares. Así mesmo, están moi presentes en industrias como as de deseño de compoñentes electrónicos (p. ex., simulación de transistores), farmacéutica (p. ex., análise de proteínas e biomoléculas), audiovisual (p. ex., renderizado de imaxes 3D) ou aeronáutica, entre moitas outras.

Neste contexto, o obxectivo que se propón no proxecto é o de aplicar a experiencia do grupo investigador na paralelización e optimización de aplicacións irregulares ó contexto das novas arquitecturas que dominarán o mercado da computación de altas prestacións nos próximos anos: os sistemas híbridos multinúcleo CPU/GPU. Neste tipo de sistemas, ademais de procesadores multinúcleo estándar (CPUs) existen unha ou máis unidades de procesamento gráfico (GPUs). As GPUs actuais posúen varias decenas de sinxelos procesadores (tipicamente, máis de 100) que permiten a súa utilización, ademais de como unidades específicas para o renderizado de gráficos, para a computación paralela de propósito xeral. Así, este tipo de sistemas supoñen un auténtico reto para os programadores debido a incorporación de novos niveis na xerarquía de memoria, situando no desenvolvemento do software a chave para obter altos rendementos. Polo tanto, o desenvolvemento de ferramentas e librarías que, por un lado, simplifiquen o uso destes sistemas e, por outro, sexan capaces de obter un alto rendemento, revélase de gran importancia para a comunidade científica e a industria. En concreto, no proxecto vanse desenvolver técnicas de migración automática de páxinas en memoria guiadas pola información aportada polos contadores hardware dos procesadores, e unha libraría matemática de códigos irregulares de álxebra matricial adaptada e optimizada para o seu uso con GPUs.

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

OBXECTIVOS DO PROXECTO

O presente proxecto enmárcase no ámbito da computación de altas prestacións (High Performance Computing), das novas arquitecturas do procesador para supercomputadores e da súa aplicación a problemas da industria e da comunidade científica cunha necesidade de elevados recursos computacionais.
O obxectivo xeral do proxecto é o de aplicar a experiencia do grupo investigador na paralelización e optimización de aplicacións irregulares ó contexto das novas arquitecturas que dominarán o mercado da computación de altas prestacións nos próximos anos: os sistemas híbridos multinúcleo CPU/GPU. Con esta finalidade se desenvolverán para a industria e a comunidade científica ferramentas e librarías matemáticas que, por un lado, simplifiquen o uso destes sistemas e, por outro, sexan capaces de obter un alto rendemento.

Dunha forma máis concreta podemos resumir os obxectivos do proxecto da seguinte forma:

1. Avaliación das GPUs e os seus modelos de programación como plataforma adecuada para o desenvolvemento/optimización de aplicacións irregulares no ámbito da computación de altas prestacións.

2. Extensión dos modelos da xerarquía de memoria desenrolados previamente polos membros do equipo investigador ás novas arquitecturas híbridas CPU multinúcleo con GPU.

3. Desenvolver ferramentas software que permitan o aproveitamento da xerarquía de memoria por parte das aplicacións irregulares e faciliten a programabilidade deste tipo de sistemas:
- No caso das CPUs multinúcleo centrarémonos no desenvolvemento de técnicas automáticas de migración de páxinas de memoria. Estas técnicas basearanse nos novos modelos e permitirán a súa aplicación nos sistemas multiprocesador NUMA (Non-Uniform-Memory-Access). A técnica de migración será transparente ó usuario.
- No caso das GPUs se desenvolverá unha libraría matemática para códigos irregulares de álxebra matricial dispersa. Os códigos de álxebra matricial dispersa son os núcleos computacionais fundamentais da maioría das aplicacións irregulares presentes na industria e nas aplicacións científicas. Esta libraría permitirá o uso de funcións matemáticas optimizadas para GPUs explotando as capacidades que brindan este tipo de sistemas en termos de rendemento e paralelismo. Prestarase especial atención á optimización nos accesos a memoria.

4. Finalmente, o proxecto vai permitir avaliar e mellorar o coñecemento sobre este tipo de arquitecturas híbridas de nova xeración, facilitando a toma de decisións sobre a arquitectura do futuro supercomputador FinisTerrae2 do CESGA.