PyTracer: Automatically profiling numerical instabilities in Python
Yohan Chatelain, Nigel Yong, Gregory Kiar, Tristan Glatard

TL;DR
PyTracer is a scalable Python profiler that automatically quantifies numerical instability in scientific computing applications, aiding developers in ensuring computational reliability.
Contribution
PyTracer introduces a scalable, automatic, and generic framework for profiling numerical stability in Python, filling a gap in existing analysis tools.
Findings
PyTracer effectively visualizes numerical instability in Python code.
It can evaluate stability using various noise models.
Demonstrated on SciPy and Scikit-learn functions.
Abstract
Numerical stability is a crucial requirement of reliable scientific computing. However, despite the pervasiveness of Python in data science, analyzing large Python programs remains challenging due to the lack of scalable numerical analysis tools available for this language. To fill this gap, we developed PyTracer, a profiler to quantify numerical instability in Python applications. PyTracer transparently instruments Python code to produce numerical traces and visualize them interactively in a Plotly dashboard. We designed PyTracer to be agnostic to numerical noise model, allowing for tool evaluation through Monte-Carlo Arithmetic, random rounding, random data perturbation, or structured noise for a particular application. We illustrate PyTracer's capabilities by testing the numerical stability of key functions in both SciPy and Scikit-learn, two dominant Python libraries for…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputational Physics and Python Applications · Model Reduction and Neural Networks
