We’re very excited to announce our 2nd Community Technology Preview (CTP) for Parallel Extensions to the .NET Framework 3.5. We released the Dec07 CTP on 11/29/2007, and from that we have received a lot of feedback from the community and customers. While you have been using our bits, participating in our forums, sharing your insights and experiences, and following along on our blog, we have been hard at work preparing this CTP, incorporating your feedback into it.
Download the Parallel Extensions June 08 CTP (UPDATE 11/30/09: The June 2008 CTP is no longer available. For an unsupported release of Parallel Extensions compatible with the .NET Framework 3.5 SP1, please see the Reactive Extensions release on DevLabs at http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx.)
There are some large changes in there that should provide a lot of benefits. First off, we have begun to add the third major API component, the Coordination Data Structures, to the technology package. As we build PLINQ and the Task Parallel Library, we use a lot of components under the covers to handle synchronization, coordination, and scale to contain data reads and writes from multiple procs. We see these as widely useful, so we’re sharing them here with you.
We incorporated a brand-new user-mode, work-stealing, run-time scheduler (those modifiers essentially mean that it’s light, fast, and flexible) to the system, completely over-hauling the infrastructure. This is a very important piece of technology for making the most of the resources available on your machines. This has been in research and incubation for a long time, and it will allow for improved performance and future-proof scalability (e.g. cache consciousness) as we stabilize and improve it. Expect to hear us talk a lot more about this in the future. There are still likely to be some growing pains in this release, so please pass along that feedback and expect this to improve. Additionally, The Task Parallel Library is now built directly on top of this scheduler. And to add to the excitement, PLINQ is in the first stages of building on top of the Task Parallel Library.
There are a number of other changes that we have made, some notables include: new ordering implementation for PLINQ, change of Parallel.Do to Parallel.Invoke, continuations in Tasks. A much more detailed list of updates is coming soon.
Subscribe to the feed or come back to this blog often as we release a flurry of posts regarding the new and exciting work surrounding this CTP.