Workshop en Computación de Altas Prestaciones sobre Arquitecturas Heterogéneas - Escuela de Invierno CAPAP-H



Universidad de Alicante
28 y 29 de enero de 2010



Presentación



Un gran número de computadores actuales presentan un sistema de memoria con una estructura jerarquizada y, a menudo, no uniforme, e incorporan aceleradores hardware lo que los convierte en arquitecturas heterogéneas. La programación eficiente de estos sistemas constituye un difícil reto, incluso para los expertos en computación paralela.

Este Workshop/Escuela pretende ser un punto de encuentro para los participantes en la red CAPAP-H, aprovechándose el evento para impartir seminarios sobre CUDA y UPC, dos de las herramientas con futuro más prometedor para atacar el problema de la programación de estas arquitecturas.



Programa




Hora inicio Hora fin Jueves, 28-1-2010 Viernes, 29-1-2010
09:00 09:30 Tutorial UPC
09:30 10:00 Acreditación e inauguración
10:00 10:30 Tutorial CUDA
10:30 11:00
11:00 11:30 Café
11:30 12:00 Café Tutorial UPC
12:00 12:30 Tutorial CUDA
12:30 13:00
13:00 13:30 Almuerzo Almuerzo
13:30 14:00
14:00 14:30
14:30 15:00
15:00 15:30 Tutorial CUDA Tutorial UPC
15:30 16:00
16:00 16:30
16:30 17:00 Café
17:00 17:30 Tutorial CUDA
17:30 18:00
18:00 18:30 Reunión miembros de CAPAP-H
18:30 19:00
19:00 19:30
19:30 20:00



Tutorial CUDA. Manuel Ujaldón (Universidad de Málaga)

Tras casi una década de evolución hacia la computación de propósito general, la GPU ha terminado consolidándose
como plataforma alternativa para la ejecución de multitud de aplicaciones científicas con una envidiable relación
rendimiento/coste.

A lo largo de este tutorial repasaremos brevemente la trayectoria de la GPU para después detenernos en su estado actual, complementando sus vertientes hardware y software desde el punto de vista del paradigma CUDA ideado por Nvidia y recientemente apadrinado por OpenCL. En la segunda parte abordaremos la programación de código CUDA
en sus distintas facetas: sintaxis, compilación, depuración, optimización y análisis de rendimiento. Finalizaremos con una serie de ejemplos sobre los que aplicaremos las principales técnicas descritas, siempre partiendo de una versión base sencilla que iremos refinando de forma sucesiva.

Material del curso:            Sesiones 1 y 2 (GPU)                Sesiones 3 y 4 (CUDA)




Tutorial UPC. Basilio Fraguela y María José Martín (Universidad de A Coruña)


Ni el paradigma de programación de pase de mensajes ni el de memoria compartida se adaptan de forma óptima a los sistemas distribuidos de nodos multinúcleo a los que tienden las arquitecturas actuales de alto rendimiento. Recientemente se ha propuesto el paradigma de memoria compartida-distribuida, que intenta responder a esta problemática aunando lo mejor de los paradigmas existentes, de forma que mejora sustancialmente la productividad en el desarrollo de aplicaciones paralelas, así como el rendimiento en arquitecturas multicore.

En este tutorial introduciremos este nuevo paradigma de programación, para luego centrarnos en uno de los lenguajes más populares que lo soporta. Se trata de Unified Parallel C (UPC), una extensión del ISO C para la que ya existen varios compiladores tanto comerciales como académicos. Empezaremos con una visión general del lenguaje, repasando sus principales características, para continuar con una visión en profundidad de toda la especificación, ilustrándola con ejemplos. Finalizaremos con una sesión de prácticas guiadas sobre el supercomputador Finis Terrae facilitado por el Cesga.

Material del curso:            Introducción a UPC                Turorial UPC               Prácticas de UPC