Increasing Insight into Performance Profiles using Python DataViz Tools

NAG are a key member of the POP (Performance Optimisation and Productivity Centre of Excellence, providing free of charge software optimisation assistance to European science and industry. A key part of POP's mission is to improve the impact and accessibility of the POP tools, allowing users to more quickly gain deeper insights into the behaviour of their parallel code.

Displaying profiling results clearly and intuitively is key to enabling understanding, and so NAG have developed a data exploration tool named PyPOP to enable rapid visualisation and exploration. PyPOP is designed to be used within Jupyter notebooks the Pandas and Bokeh libraries for data management and display. This encourages the use of so called "literate programming" where data analysis and visualisations can be combined with free text, allowing creation, description and discussion of the analysis in a single workbook.


PyPOP provides built-in functionality to produce a range of commonly desired views of the profiling data. For example, the calculation of the POP Metrics is intended to be a common starting point for all analyses, as they provide an at-a-glance overview of application efficiency and direct the user as to what aspects of the code should be further investigated. PyPOP has built in support for generating these metrics for various types of parallelism, and outputs colour-coded tables with added contextual (tooltip) information as shown above.

There is also support for more detailed investigation of the program data. Allowing, for example, the visualisation of all OpenMP parallel regions within a code as shown below. The resultant plot is interactive, allowing the user to explore the execution timeline of the application while providing rich contextual information such as the performance of individual regions, the location within the code and the functions being executed.

This allows the user to rapidly generate interactive and responsive visualisations leveraging the powerful tools and methodology that has been developed by the POP project.