The development of a high-performance parallel application is an evolutionary process
that -- despite the
efforts in developing parallel languages and optimizing compilers --
is far from being automated. Application codes go through many changes during various parallelization
phases that among others may cause or expose runtime errors and performance bottlenecks.
There is a clear need for useful, efficient and accurate tools that help the programmer to
effectively debug and optimize parallel codes.
Most current tools do not respond to important requirements of programmers. Debugging and performance analysis
are rarely supported at the HPF level but at a level much closer to the hardware. Furthermore,
very little support is provided to transform existing Fortran to HPF codes.
We will describe a variety of tools that are currently being developed - as part of
the Aurora project
(Tools) -
to support transformation, debugging, performance analysis and
prediction of real-world HPF applications.
-
VSD
is a high level debugger that enables HPF programmers to observe the behavior of
their programs at the level at which the programs have been developed.
- SCALA
is a prototype post-execution performance analysis tool for HPF programs which comprises
performance prediction techniques, and post-execution and scalability analysis to compute
the performance indices that reflect the behavior of parallel programs.
- P3T is a prototype performance estimator for regular HPF programs that
automatically estimates the communication, computation, load balance and
cache behavior at compile time. This tool includes a graphical user interface which supports performance
data filtering at the HPF level.
- MIGRATOR is a reverse engineering tool that supports the translation of sequential Fortran into
HPF codes. This tool is primarily based on automatic algorithmic recognition techniques.
We will report on the design of VSD and MIGRATOR, whereas prototype implementations and
experiments will be presented for SCALA and P3T.