La V Escuela de Invierno se celebraró conjuntamente con las Primeras Jornadas de Programación Paralela Multicore y GPU (http://tecdis.uca.es/ppmg14/).
Jueves 5 de febrero: Intel Xeon Phi
El coprocesador Intel(r) Xeon Phi(tm) es el primer producto de la nueva arquitectura Intel(r) Many Integrated Core (MIC). Esta nueva arquitectura es una pieza clave en el roadmap de Intel hacia la computación Exascale. Al contrario que otras arquitecturas con objetivos similares, la arquitectura MIC de Intel mejora la programabilidad de estos dispositivos ya que permite utilizar los mismos modelos de programación que se utilizan actualmente en la mayoría de los sistemas HPC convencionales. En esta presentación conoceremos las características clave de esta arquitectura y que aspectos hay que tener en cuenta para obtener un buen rendimiento. Así mismo también exploraremos los modelos de programación para la paralelización y vectorización de aplicaciones.
Ponente: Alex Durán, Intel. Alex Durán pertenece al Software and Services Group de Intel donde trabaja como Application Engineer en el equipo de High Performance and Throughput Computing optimizando el rendimiento de aplicaciones, en particular, para la Intel(R) MIC Architecture. Alex tiene un doctorado en Arquitectura de Computadores por la Universidad Politècnica de Catalunya. Antes de trabajar en Intel, fue Investigador Senior en el Barcelona Supercomputing Center y profesor colaborador de la UPC. Alex también forma parte de Comité de Lenguaje de OpenMP desde 2005. Sus áreas de interés incluyen los modelos de programación para aplicaciones paralelas y distribuidas y el desarrollo de análisis y optimizaciones para compiladores.
Este curso cuenta con la colaboración del TACC (Texas Advanced Computing Services), de STI Sistemas Interactivos y de Intel.
Viernes 6 de febrero: Optimizaciones de programación para Kepler
Tras la popularidad alcanzada por las GPUs, muchos programadores están familiarizados con el paralelismo que ofrecen los bloques y kernels de CUDA. La tercera generación de arquitecturas CUDA (Kepler) introduce nuevas formas de paralelismo, como la generación de kernels desde la propia GPU (paralelismo dinámico) y la planificación avanzada de hilos mediante streams (Hyper-Q). El curso pretende familiarizar al programador básico de CUDA con estos nuevos mecanismos e ilustrar sus posibilidades sobre la base de seis conocidos algoritmos científicos (keynote de 2 horas). Posteriormente, profundizaremos en las claves de su rendimiento mediante dos sesiones prácticas de laboratorio (hands-on de 4 horas). Para ello, plantearemos una serie de ejercicios sobre un kernel básico de matrices dispersas que admite todas las alternativas de paralelismo descritas. Además, ponderaremos ancho de banda e intensidad aritmética en distintas proporciones para tipificar la influencia del acceso a memoria, ocultación de latencias y número de cores en el rendimiento de la GPU según las propiedades del algoritmo irregular a ejecutar sobre Kepler. El objetivo último del programador será acercar al máximo las cotas de rendimiento de su kernel respecto a las que marca como techo el modelo roofline de la arquitectura.
Ponente: Manuel Ujaldón (Universidad de Málaga) Manuel Ujaldón comenzó su trayectoria investigadora hace 20 años, desarrollando su tesis doctoral sobre compiladores de paralelismo de datos para aplicaciones irregulares, período en el que también formó parte de los estándares HPF y MPI. En 1996 y 1997 continuó con esta labor desde su post-doc en la Universidad de Maryland. Entre 1998 y 2003 escribió una saga de 7 libros sobre la arquitectura del PC y se integró en el equipo directivo de la ETSI Informática de la Universidad de Málaga, logrando una plaza de Profesor Titular en 1999.
A finales de 2003 se unió al movimiento GPGPU utilizando Cg, publicando en 2005 el primer libro en castellano sobre programación de la GPU para propósito general. Desde entonces, ha centrado su investigación en la aceleración de aplicaciones biomédicas e irregulares, áreas en las que ha publicado más de 50 artículos científicos en los últimos 5 años. En 2008 inicia su colaboración con Nvidia como Academic Partnership, logrando en 2011 los CUDA Teaching Center y CUDA Research Center que conserva en la actualidad en la Universidad de Málaga. En 2012, Nvidia le nombró CUDA Fellow, habiendo intensificado desde entonces su labor como instructor de más de 40 seminarios y tutoriales ligados a la programación de CUDA en universidades y congresos ACM/IEEE. Manuel mantuvo entre 2004 y 2008 una posición adjunta en Ohio State University (Estados Unidos), y desde 2012 compagina su plaza en la Universidad de Málaga con la de Conjoint Senior Lecturer en la Universidad de Newcastle (Australia). Finalmente, en 2013 ha logrado la acreditación de la ANECA a Catedrático de Universidad.
Este curso cuenta con la colaboración de NVIDIA, incluyendo el acceso a la computación en la nube, un cluster de GPUs Kepler K40, y la donación de un modelo GForce que se otorgará como premio al ganador del concurso que plantearemos en la sesión de hands-on.