Designed for undergraduate/graduate-level parallel programming courses. This nontheoretical, highly accessible text-which is linked to real parallel programming software-covers the techniques of parallel programming in a practical manner that enables students to write and evaluate their parallel programs. Supported by the National Science Foundation and exhaustively class-tested, it is the first text of its kind that does not require access to a special multiprocessor system, concentrating instead only on parallel programs that can be executed on networked workstations using freely available parallel software tools. The Second Edition has been revised to incorporate a greater focus on cluster programming as this type of programming has become more widespread with the availability of low-cost computers.