An Introduction to Parallel Programming
An Introduction to Parallel Programming is an elementary introduction to programming parallel systems with MPI, Pthreads, and OpenMP. It is intended for use by students and professionals with some knowledge of programming conventional, single-processor systems, but who have little or no experience programming multiprocessor systems.
The source code that's used in the book can be downloaded from this link. (Updated 01/15/12.)
A list of errata can be downloaded from this link. (Updated 02/27/12.)
Information on obtaining a copy of the book can be obtained from Morgan Kaufmann Publishers Inc.