You are here: TWiki> Cimec Web>CursoHPCenMC (2016-11-14, MarioStorti)

Curso de Posgrado: Computación de Alto Rendimiento en Mecánica Computacional

Novedades

[New] feed

  • [No hay novedades por el momento...]

More PETSc-FEM results...

Más novedades HPCMC...


Related pages:

Objetivo

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.

  • CUDA: Introducción a la programación en GPGPU's. Arquitectura de una GPGPU's. Performance. Elementos de programación en CUDA.

Docentes

  • Dr. Mario Storti Investigador Principal CONICET, Profesor Asociado UNL. Áreas de Especialización: Mecánica Computacional; Mecánica de Fluidos; Cálculo Paralelo

  • Dr. Rodrigo Paz Investigador Adjunto en CONICET, Profesor Adjunto. Áreas de Especialización: Mecánica Computacional; Mecánica de Fluidos; Cálculo Paralelo

  • Dr. Lisandro Dalcín Investigador Asistente CONICET. Áreas de Especialización: Mecánica Computacional; Mecánica de Fluidos; Cálculo Paralelo

  • MSc. Victorio Sonzogni Profesor Asociado, Investigador Independiente CONICET. Áreas de Especialización: Mecánica Computacional; Dinámica Estructural; Cálculo Paralelo

  • Dr. Jorge D'Elía Investigador Independiente CONICET, Prof. Adjunto. Áreas de Especialización: Mecánica Computacional; Mecánica de Fluidos; Cálculo Paralelo

Horarios

  • Comienza: Miércoles 6/4 830hs
  • Horario: miércoles 830 a 1200hs.
  • Lugar: Aula Este del CIMEC, Predio Conicet Santa Fe (Cómo llegar?)

Material

Topic attachments
I Attachment Action Size Date Who Comment
pdfpdf cudamc.pdf manage 578.4 K 2013-07-10 - 19:20 MarioStorti Curso CUDA (Santi Costarelli)
Topic revision: r53 - 2016-11-14 - 21:59:40 - MarioStorti
 

TWIKI.NET
This site is powered by the TWiki collaboration platformCopyright � by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback