Modeling and Detecting Performance Problems for Distributed and Parallel Programs with JavaPSL

In this paper we present JavaPSL, a Performance Specification Language that can be used for a systematic and portable specification of large classes of experiment-related data and performance properties for distributed and parallel programs. Performance properties are described in a generic and normalized way, thus interpretation and comparison of performance properties is largely alleviated. Moreover, JavaPSL provides meta-properties in order to describe new properties based on existing ones and to relate properties to each other. JavaPSL uses Java and its powerful mechanisms, in particular, polymorphism, abstract classes, and reflection to describe experiment-related data and performance properties. JavaPSL can also be considered as a performance information interface based on which sophisticated performance tools can be built or other tools can access performance data in a portable way. We have implemented a prototype performance tool that uses JavaPSL to automatically detect performance bottlenecks for MPI, OpenMP, and mixed OpenMP and MPI programs. Several experiments with realistic codes demonstrate the usefulness of JavaPSL.

[1]  Hong Linh Truong,et al.  On Using SCALEA for Performance Analysis of Distributed and Parallel Programs , 2001, ACM/IEEE SC 2001 Conference (SC'01).

[2]  Jack J. Dongarra,et al.  A Scalable Cross-Platform Infrastructure for Application Performance Tuning Using Hardware Counters , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[3]  Graham D. Riley,et al.  FINESSE: a prototype feedback-guided performance enhancement system , 2000, Proceedings 8th Euromicro Workshop on Parallel and Distributed Processing.

[4]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[5]  Bernd Mohr,et al.  EARL - A Programmable and Extensible Toolkit for Analyzing Event Traces of Message Passing Programs , 1999, HPCN Europe.

[6]  E. Dockner,et al.  Pricing Constant Maturity Floaters with Embedded Options Using Monte Carlo Simulation , 1999 .

[7]  Tomàs Margalef,et al.  Automatic performance evaluation of parallel programs , 1998, Proceedings of the Sixth Euromicro Workshop on Parallel and Distributed Processing - PDP '98 -.

[8]  William Gropp,et al.  Sowing Mpich: a Case Study in the Dissemination of a Portable Environment for Parallel Scientific Computing , 1997, Int. J. High Perform. Comput. Appl..

[9]  Barton P. Miller,et al.  The Paradyn Parallel Performance Measurement Tool , 1995, Computer.

[10]  Allen D. Malony,et al.  Capturing and automating performance diagnosis: the Poirot approach , 1995, Proceedings of 9th International Parallel Processing Symposium.

[11]  Bernd Mohr,et al.  TAU: A Portable Parallel Program Analysis Environment for pC++ , 1994, CONPAR.

[12]  M.I.T. Press,et al.  The International Journal of Supercomputer Applications and High Performance Computing— , 1994 .

[13]  George Karypis,et al.  Introduction to Parallel Computing , 1994 .

[14]  W. Kohn,et al.  Self-Consistent Equations Including Exchange and Correlation Effects , 1965 .