Parallel Extensions to the .NET FX CTP

The shift to multi- and many-core processors that is currently underway presents an exciting opportunity for everyone in the software industry. With an expected increase of 10 to 100 times today’s compute processing power, the opportunities to deliver powerful and immersive new user experiences and business value are just awesome.

Today we released an early preview of the Parallel Extensions to the .NET Framework technology, available for download on MSDN. This release contains new APIs to make programming on the .NET Framework simpler as well as supporting documentation and samples.

Parallel Extensions runs on .NET FX 3.5, and relies on features available in C# 3.0 and VB 9.0 and includes:

  • Imperative data and task parallelism APIs, including parallel for and foreach loops, to make the transition from sequential to parallel programs simpler.
  • Declarative data parallelism in the form of a data parallel implementation of LINQ-to-Objects. This allows you to run LINQ queries on multiple processors.
  • First class tasks that can be used to schedule, wait on, and cancel parallel work.
  • New concurrency runtime used across the library to enable lightweight tasks and effectively map and balance the concurrency expressed in code to available concurrent resources on the execution platform.
  • Several great examples of how to use parallelism in real world problems to obtain impressive speedups, including a raytracer, Sudoku puzzle generator, and other simple puzzle solvers and smaller samples.

Along with the Parallel Extensions release, we have also launched a new MSDN dev center dedicated to concurrent programming. It has a collection of whitepapers (including a whitepaper that describes the broader vision for parallel computing at Microsoft) and will be used to announce and house future developments in the parallel computing space.

Our work on concurrent programming is another great example of close, ongoing collaboration between product teams and Microsoft Research. Although we understand the shift to parallel computing is a gradual road ahead for our whole industry, we are excited by the prospect and believe that the Parallel Extensions library is a large step in the right direction.

Looking forward to hearing your feedback as you start getting your feet wet in this space.