scikit-tda/ripser.py

Encountering MemoryError with a distance matrix as an input, while a points cloud with the same size would work.

gfizhu opened this issue · 0 comments

Hi,
When I do calculations on a distance matrix (no points cloud available) with size 20k*20k using dgm_ripser = ripser(x, maxdim=1, distance_matrix=True)['dgms'], I encountered the error message "MemoryError: std::bad_alloc".
However, I used to feed a points cloud matrix with comparable size using dgm_ripser = ripser(x)['dgms'], and I could get a result only that I have to wait for a long time.
I'm a bit confused why a points cloud can work out, while a distance matrix with a similar size failed?
Could you help by providing any solutions?
By the way, the code is running on NVIDIA A100-PCIe-40G.
Thanks!