Programación paralela en C++ con MPI y OpenMP
552 páginas
Spanish
PDF
4.5

Programación paralela en C++ con MPI y OpenMP

Programación paralela en C++ con MPI y OpenMP

Autor:

Año:

Resumen:

Introducción

El libro de Michael Quinn «Parallel Programming in C++ with MPI and OpenMP» (2003) es un libro de texto clásico sobre programación paralela que sigue siendo relevante hoy en día. A pesar de que han pasado más de 20 años desde su publicación, los conceptos fundamentales de memoria distribuida (MPI) y memoria compartida (OpenMP) no han sufrido cambios radicales. El libro ofrece un enfoque equilibrado: desde la teoría del paralelismo hasta ejemplos prácticos en C++. Es ideal para estudiantes, ingenieros y desarrolladores que deseen dominar la computación paralela a un nivel serio.

De qué trata el libro

El libro consta de 15 capítulos que cubren todos los aspectos clave de la programación paralela. La primera parte está dedicada a los fundamentos: modelos de computación paralela, evaluación del rendimiento, problemas de sincronización y condiciones de carrera. Luego, el autor pasa a las dos tecnologías principales:

  • MPI (Message Passing Interface) — para clústeres y sistemas distribuidos. Se analizan en detalle las comunicaciones punto a punto y colectivas, tipos de datos derivados y topologías virtuales.
  • OpenMP — para procesadores multinúcleo y memoria compartida. Se cubren directivas del compilador, gestión de hilos, sincronización y paralelización de bucles.

Capítulos separados están dedicados a la programación mixta (MPI+OpenMP), depuración, perfilado y optimización. Cada tema va acompañado de ejemplos de código que se pueden ejecutar y modificar inmediatamente.

Para quién es este libro

El libro está dirigido a lectores que ya conocen C++ (preferiblemente al menos a un nivel intermedio). Conocimientos útiles: trabajo con punteros, memoria dinámica, plantillas. No se requieren conocimientos previos de paralelismo: el autor introduce los conceptos gradualmente. El público principal:

  • estudiantes de carreras técnicas (informática, matemática computacional);
  • desarrolladores de sistemas de alto rendimiento (HPC);
  • ingenieros que trabajan con simulaciones, procesamiento de datos, aprendizaje automático;
  • profesores de cursos de programación paralela.

Qué aprenderá el lector

Después de estudiar el libro, el lector podrá:

  • comprender los modelos de computación paralela (SIMD, MIMD, SPMD);
  • escribir programas con MPI para intercambiar datos entre procesos;
  • usar OpenMP para paralelizar bucles y tareas;
  • combinar MPI y OpenMP para aplicaciones híbridas;
  • medir la aceleración, eficiencia y escalabilidad;
  • evitar errores típicos: deadlock, race condition, false sharing;
  • aplicar perfiladores (gprof, Intel VTune) para optimización.

Fortalezas

  • Enfoque práctico. Cada concepto está respaldado por código funcional. Los ejemplos van desde simples (suma de un array) hasta complejos (multiplicación paralela de matrices, algoritmo de Floyd).
  • Estructuración. Los capítulos están lógicamente conectados: de lo simple a lo complejo. Al final de cada capítulo hay un resumen y ejercicios (con respuestas en internet).
  • Profundidad. El autor no solo enumera las funciones de MPI/OpenMP, sino que explica por qué funcionan de esa manera. Se abordan cuestiones de rendimiento, latencia y ancho de banda.
  • Independencia de plataforma. Los ejemplos se compilan en Linux, Windows (MSVC, MinGW) y macOS. Solo se utilizan bibliotecas estándar.
  • Actualidad. A pesar de ser de 2003, MPI-2 y OpenMP 2.0 siguen siendo la base de los estándares modernos (MPI-4, OpenMP 5.x). El libro proporciona una base sólida.

A quién se recomienda

El libro será útil para todos aquellos que quieran dedicarse seriamente a la programación paralela. Si eres principiante, comienza con los primeros capítulos, donde se explican los conceptos básicos. Si ya tienes experiencia, omite la introducción y concéntrate en los capítulos sobre programación híbrida y optimización. Lo recomiendo especialmente a los profesores: la estructura del libro es ideal para un curso semestral con

Recommendations