.NET Parallel Programming

All about Async/Await, System.Threading.Tasks, System.Collections.Concurrent, System.Linq, and more…

Parallel patterns in Visual Basic

I previously posted in November about a paper I'd written on patterns for parallel programming.  The original paper had over 200 snippets of C# code to demonstrate and exemplify the ideas being discussed.  Due to popular demand (and in honor of the many Visual Basic MVPs on campus this week for the MVP Summit), we've now posted ...

Want to work on Parallel Computing?

We’re hiring! If you're reading this post, you most likely have an interest in parallel or distributed computing, writing concurrent software, and the like.  Take that interest a step further, and help us make the manycore era a successful reality by coming to work on the Parallel Computing Platform team at Microsoft.We currently ...

FAQ :: Which .NET language is best for parallelism?

The new parallelization support in the .NET Framework 4 is implemented purely in libraries and the runtime and does not require special compiler support.  Therefore, it is available to all compliant .NET languages.  This includes all of the managed languages that ship as part of Visual Studio 2010 (Visual C#, Visual Basic, Visual F...

F# PowerPack supports PLINQ

The F# team has released the F# PowerPack for download on CodePlex, and we're very excited that the PowerPack now has direct support for PLINQ.  From the CodePlex site: F# Parallel LINQ IntegrationFSharp.PowerPack.Parallel.dll provides an F#-style API for parallel operations on sequences that are part of .NET 4.0 as System.Linq....

Maintaining a Consistent Application State with TPL

The aim of this post is to help developers writing applications in which operations may need to be performed and then later undone due to a subsequent failure. It shows a pattern for how to maintain such a consistent application state by utilizing functionality from the Task Parallel Library (TPL) in the .NET Framework 4. For the purposes of ...

Using Parallel Extensions for .NET 4 in ASP.NET apps

ASP.NET applications already get a lot of concurrency for free. The .NET Framework load balances incoming requests among ThreadPool worker threads, striving for optimal use of available CPUs. As long as you minimize blocking in your ASP.NET page code, ASP.NET will process requests concurrently. In most cases, and in particular for Web ...

Gallery of Processor Cache Effects

Igor Ostrovsky is a developer on the Parallel Extensions team.  On his blog, he's documented a great set of examples for how caches can affect application performance; this is important to think through when writing parallel applications, but as Igor demonstrates, it applies equally to serial applications.  Check out his post...

DryadLinq now available also for non-academic use

Several months ago, Microsoft announced for academic customers the availability of DryadLINQ.  DryadLINQ is a LINQ provider developed by Microsoft Research that enables  .NET developers to use the LINQ programming model for writing distributed queries and computations against a cluster of computers using Windows HPC Server. DryadLINQ...