Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Parallel programming patterns for C#?

With Intel's launch of a Hexa-Core(6) processor for the desktop, it looks like we can no longer wait for Microsoft to make many-core programming "easy". I just order a copy of Joe Duffy's book Concurrent Programming on Windows. This looks like a great place to start, though, I am hoping some of you who have been targeting multi/many core systems would point me to some good resources that have or would have helped on your projects?


You have given some great answers but, let me add to what I mean by "good resources". Just because we have 6,12, or 48 cores doesn't mean that our applications will benefit from trying to use all of them. I keep hearing that the current programming paradigm is going to shift when we have a plethora of cores in our systems.

What blogs/books should I be reading to best understand the patterns and when to use them. Are there any good podcasts or webcasts that can help.


Here are a few links I have found interesting:

  • Channel9
  • MSDN Parallel Computing Developer Center
  • PnP team's Parallel Programming Design Patterns book (Work in Progress)

Generally Useful:

  • Dr.Dobb's Go Parallel
  • Concurrency Patterns
  • Synchronization Strategies

Multi-Threading:

  • Joe Albahari's Threading in C#
  • Jon Skeet's Multi-threading in .Net
like image 476
VoidDweller Avatar asked Mar 17 '10 19:03

VoidDweller


2 Answers

Here are some options

  • F# has really good support for concurrent code
  • Parallel LINQ and Tasks in .NET 4 are useful abstractions.

See the pfxteam blog for additional info on new parallel programming tools in .NET 4.

like image 76
Brian Rasmussen Avatar answered Oct 22 '22 15:10

Brian Rasmussen


There is a series of articles by Reed Copsey that's very thorough and extensive. It starts with basic parallel programming principles and continues with how to implement solutions using the new Task Parallel Library in .NET4.

like image 30
Ronald Wildenberg Avatar answered Oct 22 '22 15:10

Ronald Wildenberg