Approaching Parallelism
Reed Copsey has written a series of blog postings on how to look at your application to make it run on multi-core processors. He approaches the issue by focusing on what you are trying to accomplish. This is an indepth series that shows code and details in how you can
Here’s a list of his posts so far:
- Parallelism in .NET – Introduction
- Parallelism in .NET – Part 1, Decomposition
- Parallelism in .NET – Part 2, Simple Imperative Data Parallelism
- Parallelism in .NET – Part 3, Imperative Data Parallelism: Early Termination
- Parallelism in .NET – Part 4, Imperative Data Parallelism: Aggregation
- Parallelism in .NET – Part 5, Partitioning of Work
- Parallelism in .NET – Part 6, Declarative Data Parallelism
- Parallelism in .NET – Part 7, Some Differences between PLINQ and LINQ to Objects
- Parallelism in .NET – Part 8, PLINQ’s ForAll Method
- Parallelism in .NET – Part 9, Configuration in PLINQ and TPL
- Parallelism in .NET – Part 10, Cancellation in PLINQ and the Parallel class
- Parallelism in .NET – Part 11, Divide and Conquer via Parallel.Invoke
- Parallelism in .NET – Part 12, More on Task Decomposition
Each post is a short, concise, thought-provoking way to look at your application to run in parallel.
See Also
See also my screencast series on Channel 9 which serves as an introduction to Parallel Computing on Windows:
- In Part 1 of the series, we show why you care about multiple processors and how it can effect the performance in your application. See How to Parallelize Your Application - Part 1 Why Do It?
- In Part 2 we compare the new Tasks feature in .NET with threads. See How to Parallelize Your Application - Part 2 Theads v Tasks
- In Part 3 we show three ways of using the parallel features to enable your application for multi-core processors. See How to Parallelize Your Application - Part 3 Using Tasks
For more information and to see the code used in the video, see How to Get Started with Multi-Core: Parallel Processing You Can Use.
Bruce D. KyleISV Architect Evangelist | Microsoft Corporation