An efficient and fast parallel-connected component algorithm

A parallel algorithm for computing the connected components of undirected graphs is presented. Shared memory computation models are assumed. For a graph of <italic>e</italic> edges and <italic>n</italic> nodes, the time complexity of the algorithm is &Ogr;(<italic>e/p</italic> + (<italic>n</italic> log <italic>n</italic>)/<italic>p</italic> + log<supscrpt>2</supscrpt><italic>n</italic>) with <italic>p</italic> processors. The algorithm can be further refined to yield time complexity &Ogr;(<italic>H</italic>(<italic>e</italic>, <italic>n</italic>, <italic>p</italic>)/<italic>p</italic> + (<italic>n</italic> log <italic>n</italic>)/(<italic>p</italic> log(<italic>n</italic>/<italic>p</italic>)) + log<supscrpt>2</supscrpt><italic>n</italic>), where <italic>H</italic>(<italic>e, n, p</italic>) is very close to &Ogr;(<italic>e</italic>). These results show that linear speedup can be obtained for up to <italic>p</italic> ≤ <italic>e</italic>/log<supscrpt>2</supscrpt><italic>n</italic> processors when <italic>e</italic> ≥ <italic>n</italic> log <italic>n</italic>. Linear speedup can still be achieved with up to <italic>p</italic> ≤ <italic>n</italic>ε processors, 0 ≤ ε < 1, for graphs satisfying <italic>e</italic> ≥ <italic>n</italic> log<supscrpt>(*)</supscrpt><italic>n</italic>. Our results can be further improved if a more efficient integer sorting algorithm is available.

[1]  Marc Snir,et al.  On Parallel Searching , 2011, SIAM J. Comput..

[2]  W. L. Ruzzo,et al.  ADAPTIVE PARALLEL ALGORITHMS FOR FINDING MINIMUM SPANNING TREES. , 1984 .

[3]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[4]  Francis Y. L. Chin,et al.  Efficient parallel algorithms for some graph problems , 1982, CACM.

[5]  Y. Han Designing fast and efficient parallel algorithms , 1987 .

[6]  Larry Rudolph,et al.  The power of parallel prefix , 1985, IEEE Transactions on Computers.

[7]  John H. Reif,et al.  Symmetric Complementation , 1984, JACM.

[8]  Journal of the Association for Computing Machinery , 1961, Nature.

[9]  S. N. Maheshwari,et al.  Parallel Algorithms for the Connected Components and Minimal Spanning Tree Problems , 1982, Inf. Process. Lett..

[10]  Allan Borodin,et al.  Routing, merging and sorting on parallel models of computation , 1982, STOC '82.

[11]  Yijie Han,et al.  : Parallel Algorithms for Bucket Sorting and the Data Dependent Prefix Problem , 1986, ICPP.

[12]  Leslie G. Valiant,et al.  A fast parallel algorithm for routing in permutation networks , 1981, IEEE Transactions on Computers.

[13]  János Komlós,et al.  An 0(n log n) sorting network , 1983, STOC.

[14]  Daniel S. Hirschberg,et al.  Parallel algorithms for the transitive closure and the connected component problems , 1976, STOC '76.

[15]  Michael J. Quinn,et al.  Parallel graph algorithms , 1984, CSUR.

[16]  Uzi Vishkin,et al.  An O(log n) Parallel Connectivity Algorithm , 1982, J. Algorithms.

[17]  Ludek Kucera,et al.  Parallel Computation and Conflicts in Memory Access , 1982, Information Processing Letters.

[18]  Joseph JáJá,et al.  Fast, Efficient Parallel Algorithms for Some Graph Problems , 1981, SIAM J. Comput..

[19]  E. Szemerédi,et al.  O(n LOG n) SORTING NETWORK. , 1983 .

[20]  Dilip V. Sarwate,et al.  Computing connected components on parallel computers , 1979, CACM.

[21]  Derek G. Corneil,et al.  Parallel computations in graph theory , 1975, 16th Annual Symposium on Foundations of Computer Science (sfcs 1975).