Performance analysis is critical for identifying and eliminating bottlenecks in both serial and parallel programs. There are many profiling tools that can instrument serial and parallel codes, and gather performance data. However, analytics and visualization tools that are general, easy to use, and programmable are limited. Hatchet is an open-source Python library that can read profiling output of several tools, and enables the user to perform a variety of programmatic analyses on hierarchical performance profiles. Hatchet brings the power of modern data science tools such as pandas to bear on performance analysis. In this talk, we present a set of techniques and operations that build on the pandas data analysis library to enable analysis of performance profiles. These techniques, implemented in Hatchet, enable the filtering, aggregation, and pruning of structured data. In addition, Hatchet facilitates comparing performance profiles from multiple executions to understand the differences between them.
Speakers: Abhinav Bhatele