# giotto-ph: A Python Library for High-Performance Computation of Persistent Homology of Vietoris-Rips Filtrations

arXiv: https://arxiv.org/abs/2107.05412 · HTML: https://mlsanity.com/paper/2107.05412/

## Key facts

- Cited by 11 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 12 Jul 2021.

## Built on by (most cited first, 11 of 11)

- [Generalization Bounds with Data-dependent Fractal Dimensions](https://mlsanity.com/paper/2302.02766/) (2023)
- [Predicting the generalization gap in neural networks using topological data analysis](https://mlsanity.com/paper/2203.12330/) (2022)
- [Efficient Betti Matching Enables Topology-Aware 3D Segmentation via Persistent Homology](https://mlsanity.com/paper/2407.04683/) (2024)
- [Classification of Stochastic Processes with Topological Data Analysis](https://mlsanity.com/paper/2206.03973/) (2022)
- [A Topological Data Analysis Based Classifier](https://mlsanity.com/paper/2111.05214/) (2021)
- [Towards Scalable Topological Regularizers](https://mlsanity.com/paper/2501.14641/) (2025)
- [Stability, Complexity and Data-Dependent Worst-Case Generalization Bounds](https://mlsanity.com/paper/2507.06775/) (2025)
- [Topological Data Analysis (TDA) Techniques Enhance Hand Pose Classification from ECoG Neural Recordings](https://mlsanity.com/paper/2110.04653/) (2021)
- [Decorrelating neurons using persistence](https://mlsanity.com/paper/2308.04870/) (2023)
- [Scalar Function Topology Divergence: Comparing Topology of 3D Objects](https://mlsanity.com/paper/2407.08364/) (2024)
- [The sublevel Flood bifiltration: towards scalable 2-parameter persistent homology](https://mlsanity.com/paper/2610.05441/) (2026)

## Abstract (arXiv)

We introduce giotto-ph, a high-performance, open-source software package for the computation of Vietoris-Rips barcodes. giotto-ph is based on Morozov and Nigmetov's lockfree (multicore) implementation of Ulrich Bauer's Ripser package. It also contains a re-working of the GUDHI library's implementation of Boissonnat and Pritam's Edge Collapser, which can be used as a pre-processing step to dramatically reduce overall run-times in certain scenarios. Our contribution is twofold: on the one hand, we integrate existing state-of-the-art ideas coherently in a single library and provide Python bindings to the C++ code. On the other hand, we increase parallelization opportunities and improve overall performance by adopting more efficient data structures. Our persistent homology backend establishes a new state of the art, surpassing even GPU-accelerated implementations such as Ripser++ when using as few as 5-10 CPU cores. Furthermore, our implementation of Edge Collapser has fewer software dependencies and improved run-times relative to GUDHI's original implementation.
