Author Peter Pacheco uses a tutorial approach to show students how to develop effective parallel programs with MPI, Pthreads, and OpenMP. The first undergraduate text to directly address compiling and running parallel programs on the new multi-core and cluster architecture, An Introduction to Parallel Programming explains how to design, debug, and evaluate the performance of distributed and shared-memory programs. User-friendly exercises teach students how to compile, run and modify example programs.
Key
Takes a tutorial approach, starting with small programming examples and building progressively to more challenging examples Focuses on designing, debugging and evaluating the performance of distributed and shared-memory programs Explains how to develop parallel programs using MPI, Pthreads, and OpenMP programming models
Eminently readable for a text book, it introduces concepts with thorough examples, and libraries that can be used for parallelization. I do wish a newer edition would be released, since this one is getting a little dated.
NOTE: This review is for the second edition of the book.
The book is splendidly readable, and introduces a variety of essential techniques to working with MPI, PThreads, OpenMP and CUDA. All of these chapters were helpful, and especially chapter 2 summarizing the key issues that come with trying to parallelize your code. I was not a huge fan of the second part of chapter 7, running through sample sort for a variety of algorithms. Compared to the rest of the book it was a bit clunky. All things considered though, I think it did a solid job.