Parallel Programming with Microsoft .NET: Design Patterns for Decomposition and Coordination on Multicore Architectures Book Review
|This is a book of patterns that achieve potential parallelism. It is very important concept that all developers should have a decent grasp on. The patterns teach you how to write programs that run faster when parallel hardware is available and about the same as an equivalent sequential program when it is not.|
The book starts with an introduction to potential parallelism, tasks, coordinating tasks, shared data, and the limits of parallelism. It then has a chapter on each pattern which include Parallel Loops, Parallel Tasks, Parallel Aggregation, Futures, Dynamic Task Parallelism, and Pipelines.
It continues with some awesome appendices- Adapting Object-Oriented Patterns, Debugging and Profiling Parallel Applications, and Technology Overview. It ends with a nice glossary, references, and indexes.
The book does a nice job of giving examples in PLINQ (Parallel LINQ) and TPL (Task Parallel Library).
There is a great companion site located on CodePlex. You can download Answers to end of chapter questions, C#, F#, and VB code samples, Appendix B Color Figures, and a nice demo application.
The book is very well written and the authors do a great job of making what would seem like a complex topic easy to understand.
The thing I like most about this book is that there is no fluff. The book is all about getting you up and running, but up and running the right way with the right tools.
This book is a must read for anyone considering moving into parallel programming with the .NET framework.
Parallel Programming with Microsoft .NET: Design Patterns for Decomposition and Coordination on Multicore Architectures (Patterns & Practices)