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).