This non-theoretical text, 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. The second edition has been revised to incorporate a greater focus on cluster programming.