Developing an efficient parallel application is not an easy task, and achieving a good performance requires a thorough understanding of the program's behavior. Careful performance analysis and optimization are crucial. To help developers or users of these applications to analyze the program's behavior, it is necessary to provide them with an abstraction of the application performance. In this paper, we propose a dynamic performance abstraction technique, which enables the automated discovery of causal execution paths, composed of communication and computational activities, in MPI parallel programs. This approach enables autonomous and low-overhead execution monitoring that generates performance knowledge about application behavior for the purpose of online performance diagnosis. Our performance abstraction technique reflects an application behavior and is made up of elements correlated with high-level program structures, such as loops and communication operations. Moreover, it characterizes all elements with statistical execution profiles. We have evaluated our approach on a variety of scientific parallel applications. In all scenarios, our online performance abstraction technique proved effective for low-overhead capturing of the program's behavior and facilitated performance understanding.
['Anna Sikora', 'Tomàs Margalef', 'Josep Jorba']
Automated and dynamic abstraction of MPI application performance