A Specification Language for Performance Bottlenecks

Michael Gerndt

Developing efficient parallel programs is a time consuming cycle consisting of code development/transformation, execution, and performance analysis. The third step is currently supported by visual tools which are solely based on dynamic information.

There is clear need to develop more automatic analysis tools that take into account also static program information. In addition, those tools should be able to guide the user in optimizing the program or to provide the compiler with performance information that can guide the transformation applied in the optimization step.

The investigation of issues related to the development of such tools is the aim of the Esprit working group APART. The current focus of APART is on developing a specification language for describing performance bottlenecks of parallel programs. Especially for high-level programming models, this language should enable the description of dynamic as well as static information to be used in the bottleneck specification.

The presentation will summarize the current collection of performance bottlenecks for HPF / MPI / and OpenMP and outline the language design for their specification. The goal of the presentation is to steer discussions on the applicability of the current approach with respect to static information, such as dependence information and transformations applied during compilation.