PERFORMANCE ANALYSIS OF PARALLEL PROGRAMS

The increasing complexity in parallel systems has a significant impact in the performance evaluation process. Indeed, the performance achieved by a parallel program is the result of complex interactions between the hardware and software components of the system itself, and inefficiencies derive from dependencies, resource contentions, uneven work distributions and loss of synchronization among processors. Workload characterization becomes also more complex, since methodologies usually adopted in sequential systems do not provide an adequate description of the load of parallel programs.

The objective of this project was the characterization of parallel programs and the development of a methodology for automatic analysis, tuning and debugging of their performance. Performance analysis of parallel programs was approached starting from measurements collected by monitoring the program execution. Metrics and criteria for evaluating dissimilarities and unbalance among processors were derived. Moreover, parallel programs based on High Performance Fortran and MPI were considered. The objective was to highlight the influence on the performance of HPF programs, of the language constructs and of the parallelization strategies adopted by the compiler, and of the communication protocols used by the MPI explicit message passing communication paradigms.
Within this framework, a tool (MEDEA) for automatic performance analysis of parallel programs was developed. MEDEA automatically analyzes trace files taken from the execution of HPF and MPI programs and extracts performance parameters able to explain the behavior of the parallel program. The tool integrates basic statistical techniques, fitting techniques and cluster analysis, in order to derive models of the workload. This project was supported by national and international projects, such as, Italian Research Council (C.N.R.) projects, ESPRIT II IMSE Project, ESPRIT LTR Project HPF+, and ESPRIT Working Group APART.