Multicore Homology via Mayer Vietoris
  In this work we investigate the parallel computation of homology using the Mayer-Vietoris principle. We present a two stage approach for parallelizing persistence. In the first stage, we produce a cover of the input cell complex by overlapping subspaces. In the second stage, we use this cover to build the Mayer-Vietoris blowup complex, a topological space, which organizes the various subspaces needed for employing the Mayer-Vietoris principle. Next, we compute the homology of each subspace in the blowup complex in parallel and then glue these results together in serial. We show how to use the persistence algorithm to organize these computations. In the first stage, any algorithm can be used to produce a cover of the input complex. We describe an algorithm for producing a cover of a space with a simple structure and bounded overlap based on graph partitions. Additionally, we present a simplistic model for the problem of finding covers appropriate for parallel algorithms and show that finding such covers is NP-Hard. Finally, we present a second parallel homology algorithm. This algorithm avoids the explicit construction of the blowup complex saving space. We implement our algorithms for multicore computers, and compare them against each other as well as existing serial and parallel algorithms with a suite of experiments. We achieve roughly 8x speedup of the homology computations on a 10-dimensional complex with about 46 million simplices using 11 cores. 
Ryan H. Lewis and Afra Zomorodian
cs.CG math.AT