Microsoft has updated its Visual Studio tool set with new capabilities to better support parallel programming.
With its new add-in for Visual Studio 2008, Microsoft is providing support for debugging Message Passing Interface (MPI) programs. The VS 2008 add-in technology will be included in Visual Studio 2010.
MPI is a language-independent communications protocol used to program parallel computers. Moreover, MPI is a specification for an API that allows many computers to communicate with one another. It is used in computer clusters and supercomputers.
In a blog post on Microsoft's new parallel programming support, S. "Soma" Somasegar, senior vice president of Microsoft's Developer Division, said the new capability "allows you to select a cluster head node, how many cores you want, and hit F5 to debug your MPI program."
Somasegar also said:
""Any time a programming model is introduced, developers need robust tooling support for learning, writing, debugging and optimizing their code to make use of it. This is particularly true for parallel programming, which adds a set of new variables to the equation.""
For his part, Somasegar noted, "Visual Studio is becoming a rich and productive environment for writing parallel programs of all types."
Somasegar also said in addition to the core work that the Microsoft debugger team has done, "Allinea, a leader in parallel debugging technologies, has ported their environment to Visual Studio. Allinea's add-in enables even further streamlined MPI-specific debugging, including rank-based context switching, group-wise step, pause and run, parallel stack view, and lamination."
Meanwhile, Microsoft has enabled support for MPI-aware profiling. With Windows HPC Server 2008, tools such as XPerf enabled MPI profiling as well as system-level profiling and troubleshooting, Somasegar said. However, in addition to XPerf, Vampir, the premier MPI message traffic viewer, has been ported to Windows, he said. And various open-source HPC tools are available as well, such as JumpShot, a free Java-based MPI message viewer, Somasegar said.
Added Somasegar in his post: "Often times, the built-in VS Profiler can offer insight into performance issues. In Visual Studio 2010, this capability has been fully integrated with the HPC job scheduler to help analyze the behavior of a particular MPI rank or node. The Visual Studio MPI profiler shows line-level profile information, including a temperature view of execution, side-by-side with source view."
In addition, Somasegar said, "Beyond debuggers and profilers, sometimes you need specialized analysis tools to help with the complexities of large scale parallel programs." He noted that HLRS/ZIH, the High Performance Computing Center Stuttgart (HLRS) of the University of Stuttgart, has ported Marmot, its dedicated MPI analysis tool, to Visual Studio 2008. Marmot can be used to check the validity of parameters passed to MPI calls and detect irreproducibility, deadlocks and incorrect management of resources, Somasegar said.
Moreover, as Microsoft is adding new parallel programming support to Visual Studio, the company is continuing its work on a new parallel programming language named Axum. Axum is an incubation project that Microsoft is working on to help programmers tackle the issue of parallel programming in the .NET environment.
And Intel has delivered Intel Parallel Studio, a tool set designed to help Windows developers write parallel computing applications. Intel Parallel Studio brings parallelism to C/C++ developers using Microsoft Visual Studio.