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. This title: 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; and, explains how to develop parallel programs using MPI, Pthreads, and OpenMP programming models.