Graph matching
This chapter explores parallel algorithms for graph matching. Here, a graph is the mathematical representation of a network, with vertices representing the nodes of the network and edges representing their connections. The edges have positive weights, and the aim is to find a matching with maximum total weight. The chapter first presents a sequential, parallelizable approximation algorithm based on local dominance that guarantees attaining at least half the optimal weight in near-linear time. This algorithm, coupled with a vertex partitioning, is the basis for developing a parallel algorithm. The BSP approach is shown to be especially advantageous for graph problems, both in developing a parallel algorithm and in proving it correct. The basic parallel algorithm is enhanced by giving preference to local matches when breaking ties and by adding a load-balancing mechanism. The scalability of the parallel algorithm is put to the test using graphs of up to 150 million edges.