Jueves 14 de marzo: OpenACC
El uso de GPUs se ha extendido notablemente en los últimos años, y cada vez más sistemas de HPC incluyen algún tipo de acelerador en sus diseños. Esto ha incrementado la complejidad de estos sistemas, ya que (en general) los aceleradores no comparten el mismo juego de instrucciones ni espacio de memoria que las CPUs, y requieren de lenguajes y entornos de programación diferentes, como CUDA para GPUs de Nvidia o OpenCL para AMD/ATI. Los fabricantes de compiladores más relevantes en este área (PGI, CAPS, Cray …), junto con la propia Nvidia, han acordado promover un estándar de programación basado en directivas, al estilo de OpenMP, para facilitar la programación de los aceleradores. Este estándar, llamado OpenACC, fue publicado durante el Supercomputing de 2011, y desde entonces ha tenido una gran acogida entre fabricantes, universidades y usuarios en general. Además, la similitud de este lenguaje con las propuestas para la extensión de OpenMP con soporte de aceleradores hacen que utilizar OpenACC hoy en día sea una apuesta interesante de cara al futuro. En este curso, después de repasar brevemente los conceptos básicos de GPUs y de los aceleradores en general, describiremos el modelo de programación de OpenACC. A través de una serie de códigos de ejemplo y ejercicios prácticos, el asistente podrá familiarizarse con los detalles del lenguaje.
Ponente: Ruyman Reyes Castro es Application Developer en el Edinburgh Parallel Computing Centre (University of Edinburgh) desde Abril de 2012, donde trabaja principalmente en la migración de códigos a nuevas arquitecturas paralelas. Finalizó su tesis doctoral en 2012 titulada “Directive-based Approach for Heterogeneous Computing” en la Universidad de La Laguna, siendo uno de los resultados de la misma la primera implementación libre del estándar OpenACC.
Viernes 15 de marzo: OmpSs
Dada su naturaleza asíncrona y posibilidades de prever tareas a ejecutar, MPI/OmpSs es un modelo de programación paralelo muy prometedor para sistemas exascale. El modelo tiene un gran potencial para explotar el paralelismo inherente de las aplicaciones, a la vez que oculta la latencia con memoria y con la red o mejora el balanceo de carga entre los diferentes procesos. Un número significativo de aplicaciones están viendo una mejora importante en su rendimiento cuando son adaptados al modelo MPI/OmpSs (por ejemplo, aplicaciones de los proyectos Montblanc o TEXT). En el curso, se describirán primero conceptos básicos del modelo de programación. OmpSs puede considerarse una extensión del estándar OpenMP. Sin embargo, a diferencia de OpenMP las dependencias de datos entre las tareas son determinadas en tiempo de ejecución teniendo en cuenta la direccionalidad de los argumentos de las tareas. La librería de ejecución de OmpSs da soporte a sistemas heterogéneos compuestos de procesadores de propósito general (multicores), GPUs, y clusters. La integración de OmpSs con MPI facilita la migración de aplicaciones actuales y mejora su comportamiento mediante el solape de tareas de computación con comunicación.
Ponentes: Xavier Martorell y Rosa M. Badía.
Xavier Martorell, recibió el titulo de licenciado y doctor en informática por la Universidad Politécnica de Cataluña en 1991 y 1999 respectivamente. Es profesor titular de universidad en el Departamento de Arquitectura de Computadores de la UPC desde 2001, impartiendo docencia en asignaturas de sistemas operativos, conceptos avanzados de sistemas operativos y aspectos internos de los sistemas operativos. Sus áreas de interés en investigación abarcan conceptos de paralelismo, sistemas de ejecución, compiladores y aplicaciones para sistemas multiprocesador de altas prestaciones. Desde el año 2005 es el líder del equipo de Modelos de Programación del Barcelona Supercomputing Center. Ha participado en diversos proyectos Europeos en aspectos relacionados con entornos paralelos (Nanos, Intone, POPO, SARC, ACOTES), y en el proyecto MareIncognito entre el BSC y IBM. En la actualidad participa en la red de excelencia Europea HiPEAC, y en los proyectos Europeos ENCORE, Montblanc y DEEP.
Rosa M. Badia, recibió el titulo de licenciado y doctor en informática por la Universidad Politécnica de Cataluña en 1989 y 1994 respectivamente. Es Investigadora Científica del CSIC y líder del grupo de Grid Computing y Clusters del Barcelona Supercomputing Center. Estuvo afiliada con la Universidad Politécnica de Cataluña desde el año 1989 hasta el 2008, siendo profesora titular de Universidad de la misma desde el año 1997. Sus áreas de interés actual en investigación se centran en los modelos de programación paralelos para plataformas complejas (multicore, GPUs, computación distribuida y Cloud). Ha participado en diversos proyectos Europeos (BEinGRID, Brein, CoreGRID, OGF-Europe, SIENA, VENUS-C y TEXT) y en la actualidad participa en el proyecto Severo Ochoa del BSC, y en los proyectos Europeos TERAFLUX, OPTIMIS, EU Brazil OpenBIO y transPLANT y es miembro de la red de excelencia europea HiPEAC.