There has been a good amount of focus lately on the importance of Parallel Computing. The shift to multi-core architectures presents many challenges that developers will face in the coming years. The problem is that writing properly safe multi-threaded code is hard, very hard. It’s definitely not “A Good Thing” that the smartest developers in a business today have to dedicate themselves to solving concurrency and scaling issues, rather than focusing on solving business problems.
There are a lot of different pieces and areas that Microsoft is working on to provide a more comprehensive solution to developers targeting parallel hardware. It doesn’t matter whether you are a managed developer, or a native developer, there are plenty of features coming specifically for you!
The first major push in Microsoft’s effort to save developers from the “quagmire of multi-threaded code” will arrive with the upcoming release of Visual Studio 2010.
Visual Studio 2010 will include new .NET Framework libraries such as the Task Parallel Library for managed code development. The Parallel Pattern Library, Asynchronous Agents Library and Concurrency Runtime are for native code development. These are targeted at applications that require task concurrency or data parallelism on the local machine.
Parallel LINQ and the Coordination Data Structures are for use in applications that require local, data parallelism. Microsoft Visual Studio 2010 will also include parallel debugging and profiling tools. Parallel debugging windows provide developers with a view of tasks running in the application, and a graphical view of parallel call stacks. The parallel profiling views give developers an understanding of their application’s core utilization, thread behavior and contention blocking, and thread execution pattern per core.
There’s truly a lot of great technologies in Visual Studio 2010 to get excited about. It couldn’t be a better time to be a developer, especially one passionate about parallel computing!
If you would like more information on Microsoft’s efforts around concurrency and parallelism, the number one resource for you is the Parallel Computing Development Center on MSDN. You can also read this previous ISV blog post: Whitepaper Post in MSDN Library – Parallel Programming and the great white paper that it references as well.
Jason “For The Developers!” Olson