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

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.

Tutorial UPC

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

Ni el paradigma de programación de paso 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.