JUmPER: Performance Data Monitoring, Instrumentation and Visualization for Jupyter Notebooks

Elias Werner, Anton Rygin, Andreas Gocht, Sebastian Döbel, Matthias Lieber · 2024

Computational performance, e.g. CPU or GPU utilization, is crucial for analyzing machine learning (ML) applications and their resource-efficient deployment. However, the ML community often lacks accessible tools for holistic performance engineering, especially during exploratory programming such as implemented by Jupyter. Therefore, we present JUmPER, a Jupyter kernel that supports coarse-grained performance monitoring and fine-grained analysis tasks of user code in Jupyter. JUmPER collects system metrics and stores them alongside executed user code. Built-in Jupyter magic commands provide visualizations of the monitored performance data directly in Jupyter. Additionally, code instrumentation can be enabled to collect performance events using Score-P. JUmPER preserves the exploratory programming experience by seamlessly integrating with Jupyter and reducing kernel runtime overhead through in-memory (pipe) communication and parallel marshalling of Python’s interpreter state for the Score-P execution. JUmPER thus provides a low-hurdle infrastructure for performance engineering in Jupyter and supports resource-efficient ML applications.

Read the paper · More papers on PaperTik