Conversions with Microsoft Parallel Computing Team at SC09: My first experience on Parallel Technologies in Microsoft Visual Studio 2010 Beta

By Tao B Wang (Intel) (25 posts) on December 8, 2009 at 11:07 am

During the SC09 at Portland Expo Center, I stopped by the Microsoft Booth, and met with Danny, MS program manager for concurrency development platform, and Erika of common language Runtime team on Parallel Technologies in Microsoft Visual Studio 2010. We had some very informative and productive discussions, and I had an opportunity to see some demos and hands-on exercise of Beta Parallel Studio 2010. Danny and Erika demoed to me the parallelization of a specific loop in the very famous Mandelbrot application (given a different name by Microsoft Parallel team) that we used in our Academic Community courseware, then used Profiler Concurrency Analysis in Parallel Studio 2010 to evaluate the performance of the parallel version as compared to the serial version. Danny and Erika told me that their team have been working closely with Intel MKL and IPP team, and have very beneficial relationship.

As we have realized in the past couple of years that sequential application that had previously benefited from faster processors do not see the same scaling as the number of cores grows, and leveraging this multi-core shift will require transition from writing serial programs to writing parallel programs. To accommodate this environment changes, After Parallel Extensions, The Parallel Debugger Tool windows and Profiler Concurrency Analysis seems the solutions that Microsoft is offering in the coming Visual Studio 2010 ( I was told the final release is around March 2010) which enable parallel application execution, new parallel programming models and simplified development experience that ease the process of debugging and optimizing parallel applications.

For managed code developers, parallel programming was supported by the .NET Framework 4, previously referred to as Parallel Extensions, which include:

  • Task Parallel Library (TPL), which provides support for imperative data and task parallelism.
  • Parallel LINQ (PLINQ), which provides support for declarative data parallelism, and
  • New coordination and synchronization primitives, which provide support for work coordination and managing shared state.

For native code developers, Visual C++ 2010 includes:

  • Parallel Pattern Library (PPL), which provides a parallel programming model abstraction for C++.
  • Asynchronous Agents library, which provides support for a high-level, actor-based programming model and in-process message passing, and
  • Concurrency Runtime ( ConRT), which provides a common task scheduling and resource management infrastructure.

Two new parallel debugger toolwindows, Parallel Stacks and Parallel Tasks was included in Visual Studio 2010 integrated Development Environment (IDE), a suite of tools enables developers to analyze their parallel applications, both those written using the new programming models and those using traditional threading paradigms. Visual Studio also includes a new concurrency profiling support in utilizes Event Tracing for Windows ( ETW) to collect trace data and present it in a series of graphical views that provide microscopic insight into the runtime patterns of an application relative to core utilization, thread locking behavior, and thread migration across cores.

After SC09, I spent some time digging on the following Parallel Programming resource and related team blogs and found out these are very active corners and mind-opened for me to broaden my knowledge on multi-core and parallel programming arena:

Resource:

Team Blogs

Forum

Video

Categories: Academic, Parallel Programming
Tags:

For more complete information about compiler optimizations, see our Optimization Notice.

Comments (0)

Trackbacks (1)


Leave a comment  

To obtain technical support, please go to Software Support.
Name (required)*

Email (required; will not be displayed on this page)*

Your URL (optional)


Comment*