Parallel Programming with Microsoft .NET
Design Patterns for Decomposition and Coordination on Multicore Architectures
Colin Campbell, Ralph Johnson, Ade Miller and Stephen Toub. Foreword by Tony Hey
book that introduces .NET programmers to patterns for including parallelism in their applications. Examples of these patterns are parallel loops, parallel tasks and data aggregation with map-reduce. Each pattern has its own chapter. Each chapter includes a
description of the problem, an example of where the pattern is applicable, and code that implements the solution. On this site you will find; a preliminary draft of the book, the accompanying code samples and answers to the end of chapter questions.
Read the book online in the MSDN Library
- Read the book content for free on MSDN!
Download the samples for each chapter in C#, Visual Basic and F#
The samples are written in C#, F# and Visual Basic and use the new
parallel programming model that shipped with
Visual Studio 2010. The samples use the parallel features of the .NET Framework version 4, which includes the
Task Parallel Library (TPL) and
Parallel LINQ (PLINQ).
Demos and Talks
The demo that does along with the TechEd 2010
parallel patterns talk is also available. This is essentially the sample from Chapter 5 of “Parallel Programming with Microsoft .NET” with additional work to show additional
patterns used within the same sample to enhance performance of the individual steps within the overall workflow. It also has a much nicer UI and checkboxes that allow the user to select parallel and sequential versions of different parts of the application.
Watch a video of Patterns of Parallel Programming talk at TechEd 2010
Talk source code and screenshots
What about C++?
Interested in parallel programming but prefer C++? We have also produced a companion book for C++ developers using the
Parallel Patterns Library (PPL) and
Asynchronous Agents Library. You can find out more about it on our other CodePlex site
Parallel Programming with Microsoft Visual C++.
You will need .NET 4 and at least
Visual Studio 2010 Professional to run the samples. However, you will need
Visual Studio 2010 Ultimate to use some the parallel diagnostic tools such as the Concurrency Visualizer.
Here are some blogs that will keep you up to date with what’s happening with this guide and with parallel programming at Microsoft.
Ade Miller: #2782 - patterns & practices development manager and book author.
Stephen Toub: .NET, MSDN Magazine, and other Adventures in Life Parallel Extensions for .NET team Program Manager and book author.
TomasP.NET - F# programming, including a series of blog posts on the F# versions of the book samples.
Parallel Programming with .NET – The Parallel Extensions for .NET Team blog.
Patterns for Parallel Programming: Understanding and Applying Parallel Patterns with the .NET Framework 4 - Stephen Toub – A white
paper from one of the book’s authors.
Samples for Parallel Programming with the .NET Framework 4 – Additional samples provided by the Parallel Extensions for .NET team.