Sistemas Complejos en Máquinas Paralelas

Profesor: Dr. Guillermo Marshall marshalg en retina.ar


 

Contenido General

  1. Introducción a la simulación numérica de sistemas dinámicos: ecuaciones diferenciales no lineales, ordinarias y en derivadas parciales, como sistemas complejos de la fIsica computacional; sistemas dinámicos determinísticos, coherentes y caóticos, sistemas dinámicos estocásticos. Etapas de la simulación numérica: modelo fenomenológico, modelo físico, modelo matemático, modelo numérico e implementación computacional en máquinas secuenciales y en paralelo. Necesidad de la computación científica en gran escala: el sistema super escalar.

  2. Introducción a la computación en paralelo. Arquitectura de computadoras. La computadora básica. Procesadores. Memoria. Cache. Memoria Virtual. Memoria Inter-leaved. Bus y ancho de banda de I/O.

  3. Computación de alta performance(HPC). Paralelismo. Granularidad. Taxonomía de Flynn. Arquitectura de procesadores. Procesadores en pipeline. Procesadores Vectoriales. Procesadores Superescalares. Arquitecturas SIMD y MIMD. Organización de la memoria: memoria compartida y memoria distribuída. 

  4. Introducción al sistema operativo Linux: panorama de distribuciones existentes, comandos básicos de Linux. Organización de los datos. Configuración del sistema (solo de ser necesario).

  5. Paradigma de programación mediante pasaje de mensaje: MPI (Message Passing Interface). La arquitectura Beowulf. Funciones de MPI básicas. Conexión con C y Fortran. Inicialización y finalización de un programa MPI. Construcción de un código MPI elemental. Ejecución de un código MPI. Cálculo elemental de la escalabilidad.

  6. Pasaje de mensajes. Contenido del mensaje. Tipo de datos en Fortran y en C. Protocolos de comunicación. Comunicación punto a punto. Modos de comunicación. Envoltura de la comunicación. Bloqueo. Medición del tiempo. Costo de la comunicación. Ejemplos: descomposición por subdominios y métodos sincrónicos, solución de la ecuación de Laplace unidimensional por el método de Jacobi. Algoritmos explícitos para problemas evolucionarios unidimensionales. El método multigrilla secuencial y paralelo.

  7. Estrategias de programación. Algoritmos paralelos. Comunicaciones y balance de carga. Balance de carga estático.y estático-dinámico.  La programacón de problemas determinísticos y estocásticos. El método de Monte Carlo. Ejemplos de fractales determinísticos y estocásticos. El método de Witten y Sander. Generación de números aleatorios en máquinas paralelas.

  8. Estrategias de  programación. Ejemplos: métodos implícitos para la solución de la ecuación de Laplace o Poisson 2D. Métodos directos y métodos iterativos. Solución de la ecuación de difusión 1D y 2D.

  9. Operaciones globales. Broadcast. Reducción global. Ejemplos,  Laplace o Poisson. MPI avanzado: Comunicaciones no bloqueantes.  Cálculo y comunicación simultánea. Ejemplos. Comunicación en anillo. Ecuación de Poisson. Tipo de datos derivados y Buffering.

  10. Paradigma de programación con memoria compartida.

  11. Introducción a los fractales físicos y matemáticos, determinísticos y estocásticos. Crecimiento de formas dendríticas y fractales en física y biología, ejemplos. Introducción a los autómatas celulares.  Redes de autómatas. Autómatas celulares 1D y 2D. El juego de la vida de Conway. Ejemplos elementales de computación secuencial y paralela de fractales determinísticos y estocásticos y autómatas celulares.

  12. Panorama de bibliotecas de soporte para el cálculo científico paralelo: LAPACK y ScaLAPACK (Scalable Linear Algebra Package). Ejemplo de extensión de lenguajes para soporte de paralelismo: PETSc (Portable Extensible Toolkit for Scientific Computation). Ejemplos de bibliotecas para resolución en paralelo de sistemas algebraicos y generación de malla: LINDA y PARAMESH.

  13. Utilización de placas de video para cómputo(GPGPU).

Proyectos finales:
  • Soluci´o;n numérica de ecuaciones diferenciales parabólicas en dominios cilíndricos: Burgers, Navier-Stokes (2D y 3D), Benard (2D), recirculación con transferencia de calor y masa(2D).

  • Solución numérica de ecuaciones diferenciales en dominios no cilíndricos: problemas de Stefan(1D).

  • Solución numérica de sistemas hiperbólicos no lineales: problema de Riemann en dinámica de gases (tubo de ondas de choque) y su analogía hidráulica (rotura de presas). Las ecuaciones de Buckley-Leverett para flujos en medios porosos.

  • Ecuación de difusión 3D. Ecuación de Navier-Stokes 3D. Ecuación de Stefan 2D.

  • Autómata celular 2D. Ejemplos de atractores fractales (solución de sistemas de ecuaciones diferenciales ordinarias). Problemas de agregación ramificada (2D), el modelo DBM.

  • Problemas de deposición electroquímica, las ecuaciones de Nernst-Planck. El problema de la adimensionalización. Simulación del modelo 1D. Las ecuaciones de transporte. El modelo de agregación. Electroconvección y gravito-convección, modelo 3D y su simulación numérica en cuasi-3D. Mecanismos determinísticos y estocásticos de agregación. Programación en paralelo de un código secuencial de electrodeposición (1D y 2D).

  • El método PIV (Particle Image velocimetry): velocimetría de partículas por imágenes de video : cálculo secuencial y en paralelo de las velocidades de un conjunto de partículas trazadoras arrastradas en un fluido para determinar su régimen hidrodinámico.