(N3) Programación Distribuida y Paralela usando MPI
-
Profesor: Arzhan Kinzhalin (Intel Software, Córdoba, Argentina)
Docentes de prácticas: Víctor Rosales y Facundo Ferrer (Intel Software, Córdoba, Argentina) - Horario: Lunes a viernes de 19 a 22 horas
- Aula: A definir (Pabellón 1)
- Idioma: Castellano
- Evaluación: Trabajo Práctico en clase el sábado 30 de julio
Resumen breve: El curso introduce los conceptos de
programación distribuida y modelos de computación actuales: Message
Passing Interface, MapReduce y PGAS entre otros. MPI, el modelo más
popular para modelar los problemas en física, biología e ingeniería, se
utilizará durante el curso como la plataforma para desarrollar los
ejemplos prácticos. Los alumnos interesados deben contar con
conocimientos de lenguaje de programación C y conceptos de compilación
utilizando las herramientas GNU, ya que el curso será evaluado por un
trabajo práctico.
Programa tentativo: Día 1: Sistemas paralelos. Para esta
parte llevaremos un cluster portátil de 4 nodos para que los alumnos
puedan armar un cluster incluido los diferentes componentes de HW. Día
2: Programación Básica MPI. Día 3: Tópicos más avanzados de MPI. Día 4:
Programación avanzada: Deadlocks, MPI_Barrier, topologías virtuales,
etc. Día 5: Trabajo práctico.
- Bibliografía recomendada:
• Peter Pacheco "An Introduction to Parallel Programming", 2011.
• Thomas Sterling, Daniel F. Savarese, Donald J. Becker and John Salmon "How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (Scientific and Engineering Computation)", 1999.
• Joseph D Sloan "High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI (Nutshell Handbooks)", 2005.
• Michael J. Quinn "Parallel Programming in C with MPI and OpenMP", 2004.