on 29 December 2012
The first thing you notice about this book is that each of the authors are Intel engineers. The material they present is aimed squarely at software engineers who wish to master the craft of parallel processing, and they go about teaching in a pleasingly methodical manner. Whilst there is a slant towards Intel technology, one cannot refute that Intel are ahead of the curve in this field, and provide some very compelling tools, which this book covers with great skill and sufficient depth to be useful, however the authors also make an admirable attempt at covering other tools and specifically open source technology, which helps to make this a more balanced read.
Readers who are familiar with the GoF Design Patterns book will be relieved to learn that this book breaks the mold of the patterns books of old, and introduces a style that is both educational and generalised yet immediately applicable. The code samples, of which there are several, are all written in C++, and so I would recommend that readers who are not experienced with C++ think twice when considering this book. The patterns themselves are language agnostic, but the sample implementations build upon C++ libraries which provide abstractions from the low-level workings of the implementation, which will make it difficult to translate to other languages.
As a reader you get an impression that the authors are not merely presenting parallel patterns, but also divulge a wealth of knowledge on the particulars of getting the best performance out of your code, by explaining in detail the architectural properties of the Intel processors and how these relate to parallel performance. For this reason, developers of all skill levels could learn something from this book, though I would not consider this book for the novice. Prerequisite knowledge of parallel processing is covered in the introduction, but the details are skimmed, as a full introduction to this topic would no doubt fill several entire books all on its own. I would recommend readers read at least one other book on parallel processing before engaging this one.