An Introduction to Parallel Programming is the first undergraduate text to directly address compiling and running parallel programs on the new multi-core and cluster architecture. It explains how to design, debug, and evaluate the performance of distributed and shared-memory programs. The author Peter Pacheco uses a tutorial approach to show students how to develop effective parallel programs with MPI, Pthreads, and OpenMP, starting with small programming examples and building progressively to more challenging ones. The text is written for students in undergraduate parallel programming or parallel computing courses designed for the computer science major or as a service course to other departments; professionals with no background in parallel computing.
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.