El objetivo del curso es desarrollar las aptitutes del alumno en cuanto a la programación en C++ con los estándares/librerías MPI, PETSc y Open-MP, los cuales son actualmente una combinación efectiva para la resolución de grandes problemas de mecánica computacional en cluster de procesadores multi-core. La orientación del curso es hacia el aprendizaje del uso intensivo de estas tecnologías.
Programa Analítico
Conceptos básicos de MPI. Es MPI pequeño o grande? Uso de MPI en programas simples. Ejemplos en Fortran y C.. Tomando tiempos de programas.. Un ejemplo con self-scheduling. I/O en MPI. Estrategia master/slave en SPMD. Formato de llamadas, códigos de error. Funciones básicas.
Comunicación punto a punto. Envelope de un mensaje, condiciones de recepción. Dead-lock. La función send-recv. Comunicaciones no-bloqueantes. Ejemplos: Cálculo del ancho de banda de una red. Cálculo del ancho de banda de disección de un cluster. Implementación de broadcast lineal y en árbol con comunicación punto a punto.
Comunicación colectivas. Broadcast. Reducción global. Operaciones asociativas. Definición de nuevas operaciones asociativas. Allreduce. Tiempos de comunicación y soncronización. Escalabilidad. Ejemplo:Cálculo de PI por integración. Llamadas colectivas.
MPI en ambientes Unix. MPICH. Utilitarios. Ejemplo: Prime Number Theorem. Estrategia compute-on-demand. MPE logging. Escalabilidad. Usod e jumpshot. Rendimiento en clusters heterogéneos. Paralelismo trivial. Ejemplo: El Problema del Agente Viajero(TSP). Adaptación del algoritmo dinámico. Ejemplo:Cálculo de PI por Montecarlo. Uso de communicators. Ejemplo: producto de matrices en paralelo. Algoritmos estático y dinámico. Escalabilidad. Ejemplo: El Juego de la Vida de Conway. Automatas celulares. Algoritmo estático y dinámico. Comunicación encadenada. Escalabilidad. Comunicación no-bloqueante. Ejemplo: El problema de Poisson. Topologías virtuales. Escalabilidad
Operaciones colectivas avanzadas de MPI. Scatter, gather y all-gather. Versiones vectorizadas. Ejemplo: la función print-par (gather and print). Ejemplo: La función rescatter. Definiendo tipos de datos derivados. Ejemplo: rotar columnas de matrices. Ejemplo: El método iterativo de Richardson.
PETSc. La librería PETSC de álgebra lineal en paralelo. Objetos PETSc. Estructura de la librería PETSc. Usando PETSc. Escribiendo programas que usan PETSc. Ejemplo simple. Ec. de Laplace 1D. Headers. Bases de datos/Opciones.
Vectores y datos distribuidos. Creando vectores. Operaciones básicas sobre vectores. Indiciación. Operaciones de scatter y gather. Matrices. Matrices sparse. Matrices densas. Operaciones básicas sobre matrices. Operaciones `matrix-free'.
SLES: Solvers lineales . Resolviendo secuencias de sistemas lineales.. Familia de métodos de Krylov . Precondicionamiento. Tests de convergencia. Monitoreo de la convergencia. Espectro del operador.
Open-MP. Conceptos básicos de Open-MP. Memoria compartida. Datos privados y públicos. Race conditions. El Open-MP estándar. Threads. Regiones paralelas.Pragmas. Cláusulas.
Interacción con Open-MP: directivas, variables de entorno, entorno en tiempo de ejecución. Compilación condicional. Lazos paralelos. Sincronización. Cláusulas private, shared, first/last private, reduction. Directivas de trabajo compartido: parallel.
Open-MP. Balance de carga: la cláusula `schedule'. Secciones. Directivas huérfanas de trabajo compartido. Sincronización con barreras. Regiones críticas. Directivas single and master. Otras directivas de sincronización. Ejemplo: Productos de muchas matrices. Ejemplo: Producto matriz vector.
Open-MP. Variables de entorno. Funciones de la librería en tiempo de ejecución. Rutinas utilitarias de información y ajuste de parámetros. Rutinas para el manejo de semáforos. Semáforos anidados. Ejemplo: simulando scheduling dinámico con semáforos.
Docentes
Dr. Mario Storti Investigador Principal CONICET, Profesor Asociado UNL. Áreas de Especialización: Mecánica Computacional; Mecánica de Fluidos; Computación de Alto Rendimiento; Método de Elementos Finitos y Volúmenes Finitos; Interacción Fluido Estructura; Termo Fluido-Dinámica Computacional
Dr. Jorge D'Elía Investigador Independiente CONICET, Prof. Adjunto. Áreas de Especialización: Mecánica Computacional; Mecánica de Fluidos; Cálculo Paralelo; Método de Elementos de Contorno
Slides Open-MP.Ruud van der Pas, Senior Staff Engineer, Scalable Systems Group, Sun Microsystems, An Introduction Into Open-MP, IWOMP 2005, University of Oregon, Eugene, Oregon, USA, June 1-4, 2005, (download[original site])
SC14 Advanced OpenMP Tutorial, Christian Terboven, Michael Klemm, Ruud van der Pas, Eric Stotzer, Bronis R. de Supinski