  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.
