Linear Run Time of Persistent Homology Computation with GPU Parallelization
Persistent homology is a crucial invariant that is used in many areas to understand data. The O(N^4) run time is a hindrance to its use on most large datasets. We give a parallelization method to utilize multi-core machines and clusters. We implement the computation of the 0^th persistent homology with OpenMP parallelization and observe a 1.75 fold performance increase by using 2 threads on a dual core machine. We also benchmark the computation using larger numbers of threads and show that the thread computational overhead decreases performance. With GPU parallelization, we analytically and empirically decrease the run time scaling from O(N^4) to O(N^3) and even O(N^2) where N is the number of data points, for a large enough GPU. Next, we analytically show run time scaling O(N) for an even larger GPU.
READ FULL TEXT