The evolving requirements for the use of high-performance parallel
computing systems are presenting new challenges for programming environment
technology.
The environment is representative of a new class of collaborative
program and performance tools that, fundamentally, are integrated into a
parallel programming system and support portable, high-level program
observation, analysis, and interaction.
In this paper, we demonstrated how the
tools can be used to explore
the static program structure (class hierarchy, source code, and call
graphs) and how the performance profiling tools can answer questions
about dynamic system and algorithm behavior.
In particular, we saw the importance of coupled program and performance
analysis wherein serious bottlenecks in a code can be linked back to
high-level algorithm design choices, as in the case of bitonic sort where a
replacement of quicksort with bitonic merge at each merge step increased
performance by nearly an order of magnitude.
Although the experience with has been exceedingly positive,
there are still several important directions we want to pursue.
First, there is the obvious need for a parallel debugging system that
provides high-level access to program objects.
Hence, much of our current work focuses
on breezy, a parallel barrier breakpoint debugger that supports
runtime access to pC++ program state.
The breezy tool actually implements a robust infrastructure for
program access upon which several external runtime tools can be built.
A second direction is towards more expanded support for performance
experimentation and diagnosis, particularly for scalability analysis.
We are attempting to integrate a simulation-based performance extrapolation
tool and a semi-automated performance diagnosis system [13]
into the
toolset.
In addition, we are working on better ways to maintain
a database of program measurements that record the progress of a sequence
of experiments and to display comparative performance behaviors across
multiple executions for different numbers of processors.
Finally, we are improving the design of the
tools to facilitate the
transfer of the technology to other language environments, in particular
HPF.
Documentation and source code for pC++, Sage++, and are available
via anonymous FTP from
ftp.extreme.indiana.edu
in the directory ~ftp/pub/sage
, or via WWW at
http://www.cs.uoregon.edu/paracomp/tau
and
http://www.extreme.indiana.edu/sage
.