mtsch / Ripserer.jl

Flexible and efficient persistent homology computation.
https://mtsch.github.io/Ripserer.jl/dev/
MIT License
63 stars 7 forks source link

On multithreading support? #168

Open RaimelMedina opened 4 months ago

RaimelMedina commented 4 months ago

Hi!

I've been wondering if it's possible to add multithreading or GPU support to the computation of persistence intervals in a straightforward way. This could be particularly desirable for very large filtrations. So far, the only package I've found that supports this is Giotto-tda. Do you think this could be of interest to a wider audience?

I would be happy to help if you believe it's worthwhile.

mtsch commented 2 months ago

Hi, I've actually played around with multithreading not long ago, but the results I was getting were a bit mixed. I didn't always get a nice performance boost and getting it to work correctly was a bit painful. If you want to play around, I can push the code to a branch. I haven't tried the GPU thing because I don't have access to an appropriate GPU and don't have any experience with them. If you know GPU programming, I'd be happy to help with getting it working.

RaimelMedina commented 2 months ago

Hi, I would be happy to give it a try if you are ok with that. I'm specifically interested in the computation of the 0-dim homology but would be definitely cool to see if there is a way to speed up the code for all dims.