OPTIMIZA: Optimización de aplicacións irregulares en arquitecturas emerxentes de altas prestacións CPU/GPU

OPTIMIZA: Optimización de aplicacións irregulares en arquitecturas emerxentes de altas prestacións CPU/GPU

Descrición

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 o feito de dispoñer de procesadores máis potentes non veu acompañado dun importante incremento no rendemento das aplicacións. Ademais, 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.

Unha das principais razóns para esta diversidade arquitectónica é a necesidade de buscar un equilibrio entre as capacidades da memoria e o procesador. 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. 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.

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ón 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.).

Obxectivos

O obxectivo xeral do proxecto é investigador na paralelización e optimización de aplicacións irregulares no 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. O proxecto ten os seguintes subobxectivos:

  • Avaliar as 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.
  • Estender os modelos da xerarquía de memoria desenrolados previamente polos membros do equipo investigador ás novas arquitecturas híbridas CPU multinúcleo con GPU.
  • 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, investigando o desenvolvemento de técnicas automáticas de migración de páxinas de memoria.
    • No caso das GPUs se desenvolverá unha libraría matemática para códigos irregulares de álxebra matricial dispersa.

Investigadores