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.