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

Parallel Programming with Microsoft .NETA 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

A-Dash DemoThe 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++.

System Requirements

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.

Relevant Blogs

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.

Last edited Jun 29, 2012 at 5:50 AM by AdeMiller, version 67