Intended for undergraduate/graduate-level parallel programming courses, this title covers the techniques of parallel programming in a practical manner that enables students to write and evaluate their parallel programs. It focuses on cluster programming as this type of programming has become widespread with the availability of low-cost computers.