.NET Parallel Programming

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

Parallel Computing at Imagine Cup 2009

On Wednesday, Microsoft announced the Imagine Cup 2009 worldwide winners: https://www.microsoft.com/presspass/press/2009/jul09/07-07ImagineCup2009WinnersPR.mspxCongratulations to Team Biollel that took first place in the Parallel Computing Award for their “Parallel implementation of maximum likelihood method of phylogenetic tree ...

Interested in 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 have several positions...

Parallel.Invoke() vs. Explicit Task Management

  Parallel Extensions offers a large variety of APIs supporting parallelism. During this blog the discussion will be focused on the methodology for making a choice between two of the new Parallel Extensions concepts: parallelism achieved by using Parallel.Invoke() and parallelism achieved through the use of Tasks. Suppose that ...

Processing Streams with PLINQ

In many data-parallel scenarios, all of the data to be processed is available immediately. This blog post addresses the opposite scenario: the inputs arrive gradually (as if in a stream), and we want to start producing results even before reading the last element of the input sequence. There is a variety of scenarios in which inputs ...

Don’t dispose of objects that you don’t own

In concurrent programs, race conditions are a fact of life but they aren’t all bad.  Sometimes, race conditions are benign, as is often the case with lazy initialization.  The problem with racing to set a value, however, is that it can result in multiple objects being instantiated when only one is needed.  Take the ...

Cancellation in Parallel Extensions

One of the great features that crosses all of Parallel Extensions types is a consistent approach to cancellation (see https://blogs.msdn.com/pfxteam/archive/2009/05/22/9635790.aspx). In this post we explore some of the ways cancellation is used in Parallel Extensions and explain the guidance we developed. The new cancellation system is a ...