CERN Computing Seminar

VyPR: a framework for automated performance analysis of Python programs

by Joshua Heneage Dawes (University of Manchester and CERN)

31/3-004 - IT Amphitheatre (CERN)

31/3-004 - IT Amphitheatre


Show room on map

VyPR is a framework being developed with the aim of automating as much as possible the performance analysis of Python programs. To achieve this, it uses an analysis-by-specification approach; developers specify the performance requirements of their programs (without any modifications of the source code) and such requirements are checked at runtime. VyPR then provides analysis tools which allow developers to either determine which parts of their code may contribute to performance drops, or rule out their own code (in the case of code communicating over a network).

During its short lifetime, VyPR has been used to find performance drops in the next version of the CMS Experiment’s upload service for non-event data (paper at TACAS 2019). The next year will see extensive work on VyPR’s analysis tools, with plans for the development of a powerful Python shell-based analysis library and extensions of the current web-based tool. Alongside this work, we are actively looking for new environments in which VyPR could be used.

This talk will begin by introducing the analysis-by-specification approach to performance analysis and covering the process for using VyPR. It will then summarise how VyPR has already been used on the CMS Experiment, and conclude with suggestions on how it could be used on other software to construct explanations of performance drops.

About the speaker

Joshua Dawes completed a Bachelors degree at the University of Manchester in Computer Science and Mathematics in 2017. During his first degree, he spent a year at CERN on the Technical Student programme working on the CMS Experiment, to which he returned in 2017 as a Doctoral Student. His PhD involves developing the rigorous theoretical foundations and subsequent implementations for new program analysis tools. Such tools cater for the CMS Experiment’s evolving needs, currently focusing on Python.

More information