N Bhatia, S Moore, F Wolf, J Dongarra, and B Mohr (2005)
A Pattern-Based Approach to Automated Application Performance Analysis
In: Workshop on Patterns in High Performance Computing (patHPC).
Event tracing is a well-accepted technique for post-mortem performance analysis of parallel applications. Time-stamped events, such as entering a function or sending a message, are recorded at runtime and analyzed afterwards with the help of software tools. Visualization tools such as Vampir and Intel Trace Analyzer [1], Jumpshot [2], and Paraver [3] can provide a graphical view of the state changes and message passing activity represented in the trace file, as well as provide statistical summaries of communication behavior. However, it is difficult and time-consuming for even expert users to identify performance problems from such a view or from large amounts of statistical data. Automated analysis of event traces can provide the user with the desired information more quickly by transforming the data into a more compact representation at a higher level of abstraction. The KOJAK toolkit [4] supports performance analysis of MPI and/or OpenMP application by automatically searching traces for execution patterns that indicate inefficient behavior. The performance problems addressed include inefficient use of the parallel programming model and low CPU and memory performance. This presentation will summarize KOJAK’s pattern matching approach and give two examples of our recent work on defining new patterns – one for detecting communication inefficiencies in wavefront algorithms and another for detecting memory bound nested loops.