VyPR is a prototype framework that allows developers to analyse the performance of their Python programs by writing queries and analysing the results.

Originally developed at CERN, at the CMS Experiment, and The University of Manchester.

The research that led to VyPR is now being extended at the Interdisciplinary Centre for Security, Reliability and Trust (SnT) in Luxembourg.

At CERN, the project was led by Joshua Dawes, who still leads R&D that uses the research at SnT.

All code from the VyPR project is available in VyPR's GitHub organisation

Explore the VyPR ecosystem

Docker image containing a sample program monitored by VyPR, and instances of our analysis tools.

Tested on macOS Catalina and CentOS Linux 7.

Using VyPR is easy (to make a start, see here):

1 - Querying

Write queries over the performance of a part of your program using VyPR's library.

Queries written for VyPR take the form of properties that a run of that part of the program should hold.

2 - Instrumentation and Monitoring

Before runtime, VyPR automatically determines where in your program to take data to check your queries.

At runtime, VyPR resolves your queries in the background by taking measurements.

3 - Analysis

You can use one of VyPR's analysis tools to see when, where and how the properties defined by your queries were satisfied (or not) by a run of your program.

We provide two analysis tools:

Web-based Analysis Environment

Python Analysis Library