A Parallel Algorithm for Connected Components on Distributed Memory Machines
Libor Buš6
and Pavel Tvrdík6 
| (6) |
Department of Computer Science and Engineering, Czech Technical University, Karlovo nám. 13, 121 35 Prague, Czech Republic |
Abstract
Finding connected components (CC) of an undirected graph is a fundamental computational problem. Various CC algorithms exist
for PRAM models. An implementation of a PRAM CC algorithm on a coarse-grain MIMD machine with distributed memory brings many
problems, since the communication overhead is substantial compared to the local computation. Several implementations of CC
algorithms on distributed memory machines have been described in the literature, all in Split-C. We have designed and implemented
a CC algorithm in C++ and MPI, by combining the ideas of the previous PRAM and distributed memory algorithms. Our main optimization
is based on replacing the conditional hooking by rules for reducing nontrivial cycles during the contraction of components.
We have also implemented a method for reducing the number of exchanged messages which is based on buffering messages and on
deferred processing of answers.
This research has been supported by MSMT Czech Republic under research program #J04/98:2123000
References secured to subscribers.