The Parallel Programming Guide for Every Software Developer From grids and clusters to next-generation game consoles, parallel computing is going mainstream. Innovations such as Hyper-Threading Technology, HyperTransport Technology, and multicore microprocessors from IBM, Intel, and Sun are accelerating the movement's growth. Only one thing is programmers with the skills to meet the soaring demand for parallel software. That's where Patterns for Parallel Programming comes in. It's the first parallel programming guide written specifically to serve working software developers, not just computer scientists. The authors introduce a complete, highly accessible pattern language that will help any experienced developer "think parallel"-and start writing effective parallel code almost immediately. Instead of formal theory, they deliver proven solutions to the challenges faced by parallel programmers, and pragmatic guidance for using today's parallel APIs in the real world. Coverage Patterns have helped thousands of programmers master object-oriented development and other complex programming technologies. With this book, you will learn that they're the best way to master parallel programming too.
This is an excellent book for getting a formal understanding of processes and tools for parallel programs. It is definitely dated, the most advanced high level programming language driving examples being Java 2. Nevertheless, it is informative and well-written.
The patterns are more conceptual and less driven by interfaces and blocks, as are many programming pattern books. But the examples of real problems implemented or stubbed (Mandelbrot algorithms, sorting algorithms, molecular processing, force processing, etc.) are delightful, and go well beyond those in other pattern books (in my experience).
This book is very consistent, it took me just 2 days to overview it and order my knowledge about parallel programming. It really learns you about the space of possible solutions when you're going to work with parallel systems. What's notable is one of authors (Tim Mattson) is not a programmer, he is chemist and reading the book you are touching real science.
Quite a decent book introducing several high level concepts with a focus on OpenMP/MPI. As with so many programming patterns they often kick in an open door. The introductory appendices (covering OpenMP and MPI) at the back are a bit thin and not sufficient.
I wasn't actively working on a parallel problem when I picked Patterns for Parallel Programming. I think that contributed to my difficulty getting into it.