Aftermath: A graphical tool for performance analysis and debugging of fine-grained task-parallel programs and run-time systems

We present Aftermath, an open source graphical tool designed to assist in the performance debugging process of task-parallel programs by visualizing, filtering and analyzing execution traces interactively. To efficiently exploit increasingly complex and concurrent hardware architectures, both the application and the run-time system that manages task execution must be highly optimized. However, detecting performance anomalies is challenging as bottlenecks can arise directly from the application, the run-time or interaction with the hardware. In Aftermath, key metrics and indicators, such as task duration, state information, hardware performance counter values and data exchanges can be visualized jointly, aggregated and related to the machine's topology. The tool supports traces of up to several gigabytes, with fast and intuitive navigation and on-line generation of new derived metrics. As it has proven invaluable to optimize both OpenStream's run-time and applications, we illustrate Aftermath on genuine cases encountered in the OpenStream project.