  We show that a simple algorithm for computing a matching on a graph runs in a
logarithmic number of phases incurring work linear in the input size. The
algorithm can be adapted to provide efficient algorithms in several models of
computation, such as PRAM, External Memory, MapReduce and distributed memory
models. Our CREW PRAM algorithm is the first O(log^2 n) time, linear work
algorithm. Our experimental results indicate the algorithm's high speed and
efficiency combined with good solution quality.
