Designing and Building Parallel Programs is a book for students and professionals who need to know how to write parallel programs. It is neither a programming language manual nor an academic treatise on algorithms. Instead, it approaches parallel programming as an engineering activity, in which programs are developed in a methodical fashion and both cost and performance are considered at each stage in a design. It is intended as both an introduction to parallel programming and a practitioner's guide for programmers, engineers, and scientists developing programs for parallel and distributed computer systems.
The book comprises three parts, covering design, tools, and resources. The first part provides a thorough discussion of parallel algorithm design, performance analysis, and program construction, illustrating fundamental principles with numerous examples. The second part provides a practitioner's guide to four parallel programming tools: the languages CC++ and Fortran M, and the de facto standards High Performance Fortran and Message Passing Interface. It also desribes a number of performance tools. The third part provides extensive references to the literature.
Designing and Building Parallel Programs (Online) is what you are reading now: a larger, constantly-evolving companion resource accessible via the Internet. In addition to the content of the book, the online version gives access to example programs, parallel tools, online bibliographies, educational material, and a wealth of other information. The online version had been made possible by the help of some wonderful people, whom it is my pleasure to acknowledge. In addition, here is some information about the author.
Designing and Building Parallel Programs / dbpp@mcs.anl.gov