More Parallelism: Congratulations to Microsoft on their Visual Studio* 2010 launch

Microsoft's Visual Studio 2010 development environment has, for the first time, several new parallelism capabilities built-in.  Combined with Intel® Parallel Studio, I think it is reasonable to say that Windows has the richest and most complete set of tools for multicore programming.  Microsoft has worked with Intel and others, to help tools from both companies interoperate well, and provide a well conceived set of key capabilities for other tools as well. Many of the key features have been discussed at both Microsoft PDC 2008 and PDC 2009, allowing tool vendors time to jump on-board.

A very significant advancement, that helps all tools, is the Concurrency Runtime layer (ConcRT) Resource Manager. The ConcRT resource manager is an abstraction over the hardware that allows vendors including Microsoft and Intel (OpenMP, TBB) to program at a higher layer and compose these platforms, as well as coming up with one set of concepts for providing parallel code such as tasks, task groups and so forth.

Intel are big fans of the ConcRT resource manager because it allows multiple parallel programming models used within a single program to cooperate in a straight forward manner and avoid oversubscription. This is important, because all parallel programming models should compose well with each other. That is where Intel needs to be heading and Microsoft has produced a solution Intel  happily supports.

Previously, use of multiple models ran the risk of oversubscription because each model would start its own thread pool with a size equal to the number of hardware threads on a machine. This was sometimes not the case if you used models from one vendor (such as the Intel® Math Kernel Library (MKL) used in parallel mode along with uses of OpenMP from the Intel compiler). However, it was destined to be the case when mixing models from multiple companies (such as OpenMP from the Microsoft compiler and Intel® Threading Building Blocks (Intel® TBB)). Now, with the ConcRT resource manager, these tools can be coordinated and use a common thread pool. Microsoft uses this with their PPL and TPL, and Intel for Intel® TBB and our support for OpenMP in the Intel Compiler (v12.0+).  You can learn more about ConcRT on the Microsoft website.

Intel® Threading Building Blocks (TBB) has served developers for many platforms with C++ since 2006, and now Microsoft offers their Task Parallel Library (Microsoft TPL) for .NET developers to do much the same in .NET languages (TBB does not have .NET support, it is C/C++ only). Also based on a task-stealing scheduler, and using the ConcRT resource manager, this adds important capabilities such as "parallel for" for .NET programmers. To not leave out C++ programmers, Microsoft has a related Parallel Patterns Library (Microsoft PPL) for C++ developers. It offers some of the functionality of Intel® TBB in a compatible fashion. Therefore, we can use Microsoft PPL on Windows and Intel TBB on other platforms, or Intel TBB everywhere, because the compatibility is well thought out to avoid unnecessary anxiety for software developers. This is a wonderful thing for the developer community.

To complement, Visual Studio, Intel has offered Intel® Parallel Studio for the past year. Unique features include data race and deadlock detection capabilities, memory leak detection specifically designed to do well with threaded programs, profiling capabilities including lock-wait analysis, Intel® Threading Building Blocks and a highly optimizing compiler. This fall, the highly anticipated product version of Intel® Parallel Advisor will offer assistance in Intel Parallel Studio during the design stages of parallel programs. A free experimental early version is one of the most popular downloads on WhatIf. Intel will also have a number of wonderful additional features in the fall as well, including support for Intel® Cilk™... I'll blog next month about what we are adding in more detail.

Intel Parallel Studio is compatible with Microsoft Visual Studio 2005 and 2008 today and, in a forthcoming update, supports Visual Studio 2010.  Information and evaluation copies of Intel® Parallel Studio can be found at including information on the beta for the Visual Studio 2010 support.

Seems like just yesterday, Steve Teixeira of Microsoft, and I were talking about the strong combination of Visual Studio 2010 and Intel® Parallel Studio at IDF2009. Steve and I will be talking about this again in Barcelona and Paris later this week too (the things we do for our jobs!).  If you miss us in Europe, celebrating the Visual Studio launch, I'll do a webinar with Q&A in mid-May (more on that in a future blog).

Now, you can try the products together for yourself. Congratulations to the Microsoft team - for tools, and an open and compatible approach to parallel models that lets the Visual Studio environment benefit from the great combination of Visual Studio and Intel® Parallel Studio together.

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.