Skip to main content

Graph Algorithms

  • Reference work entry
  • 316 Accesses

Discussion

Parallel Graph Algorithms

Relationships in real-world situations can often be represented as graphs. Efficient parallel processing of graph problems has been a focus of many algorithm researchers. A rich collection of parallel graph algorithms have been developed for various problems on different models. The majority of them are based on the parallel random access machine (PRAM). PRAM is a shared-memory model where data stored in the global memory can be accessed by any processor. PRAM is synchronous, and in each unit of time, each processor either executes one instruction or stays idle.

Techniques

Graph problems are diverse. Given a graph G = (V, E), where | V | = n and | E | = m, several techniques are frequently used in designing parallel graph algorithms. The basic techniques are described as follows (Detailed descriptions can be found in [24]).

Prefix Sum

Given a sequence of n elements \({s}_{1},{s}_{2},\cdots \,,{s}_{n}\) with a binary associative operator denoted by \(...

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Bibliography

  1. Adler M, Dittrich W, Juurlink B, Kutyłowski M, Rieping I (1998) Communication-optimal parallel minimum spanning tree algorithms (extended abstract). In: SPAA’98: proceedings of the tenth annual ACM symposium on parallel algorithms and architectures. ACM, New York, pp 27–36

    Google Scholar 

  2. Allen F, Almasi G et al (2001) Blue Gene: a vision for protein science using a petaflop supercomputer. IBM Syst J 40(21):310–327

    Article  Google Scholar 

  3. Bader DA, Cong G (2004) A fast, parallel spanning tree algorithm for symmetric multiprocessors (SMPs). In: Proceedings of the 18th international parallel and distributed processing symposium (IPDPS 2004), Santa Fe

    Google Scholar 

  4. Bader DA, Cong G (2004) Fast shared-memory algorithms for computing the minimum spanning forest of sparse graphs. In: Proceedings of the 18th international parallel and distributed processing symposium (IPDPS 2004), Santa Fe

    Google Scholar 

  5. Bader DA, Cong G, Feo J (2005) On the architectural requirements for efficient execution of graph algorithms. In: Proceeding of the 2005 international conference on parallel processing, Oslo, pp 547–556

    Google Scholar 

  6. Charles P, Donawa C, Ebcioglu K, Grothoff C, Kielstra A, Praun CV, Saraswat V, Sarkar V (2005) X10: an object-oriented approach to non-uniform cluster computing. In: Proceedings of the 2005 ACM SIGPLAN conference on object-oriented programming systems, languages and applications (OOPSLA), San Diego, pp 519–538

    Chapter  Google Scholar 

  7. Chiang Y-J, Goodrich MT, Grove EF, Tamassia R, Vengroff DE, Vitter JS (1995) External-memory graph algorithms. In: Proceedings of the 1995 symposium on discrete algorithms, San Francisco, pp 139–149

    Google Scholar 

  8. Chung S, Condon A (1996) Parallel implementation of Bor˚uvka’s minimum spanning tree algorithm. In: Proceedings of the tenth international parallel processing symposium (IPPS’96), Honolulu, pp 302–315

    Google Scholar 

  9. Cole R, Vishkin U (1986) Deterministic coin tossing and accelerating cascades: micro and macro techniques for designing parallel algorithms. In: STOC’86: proceedings of the eighteenth annual ACM symposium on theory of computing. ACM, New York, pp 206–219

    Google Scholar 

  10. Cole R, Vishkin U (1991) Approximate parallel scheduling. part II: applications to logarithmic-time optimal graph algorithms. Info Comput 92:1–47

    Article  MATH  MathSciNet  Google Scholar 

  11. Cong G, Bader DA (2005) An experimental study of parallel biconnected components algorithms on symmetric multiprocessors (SMPs). In: Proceedings of the 19th international parallel and distributed processing symposium (IPDPS 2005), Denver

    Google Scholar 

  12. Cong G, Almasi G, Saraswat V (2010) Fast PGAS implementation of distributed graph algorithms. In: Proceedings of the 2010 ACM/IEEE international conference for high performance computing, networking, storage and analysis (SC2010), SC’10. IEEE Computer Society, Washington, DC, pp 1–11

    Google Scholar 

  13. CPI analysis on Power5. On line, 2006. http://www.ibm.com/developerworks/linux/library/pacpipower1/index.html

  14. Cray, Inc. (2005) The CRAY MTA-2 system. www.cray.com/products/programs/mta_2/

  15. Culler DE, Dusseau AC, Martin RP, Schauser KE (1993) Fast parallel sorting under LogP: from theory to practice. In: Portability and performance for parallel processing. Wiley, New York, pp 71–98 (Chap 4)

    Google Scholar 

  16. Dehne F, Götz S (1998) Practical parallel algorithms for minimum spanning trees. In: Workshop on advances in parallel and distributed systems, West Lafayette, pp 366–371

    Google Scholar 

  17. Eckstein DM (1979) BFS and biconnectivity. Technical Report 79–11, Department of Computer Science, Iowa State University of Science and Technology, Ames

    Google Scholar 

  18. Goddard S, Kumar S, Prins JF (1997) Connected components algorithms for mesh-connected parallel computers. In: Bhatt SN (ed) Parallel algorithms: third DIMACS implementation challenge, 17–19 October 1994. DIMACS series in discrete mathematics and theoretical computer science, vol 30. American Mathematical Society, Providence, pp 43–58

    Google Scholar 

  19. Goodrich MT (1996) Communication-efficient parallel sorting. In STOC’96: proceedings of the twenty-eighth annual ACM symposium on theory of computing. ACM, New York, pp 247–256

    Google Scholar 

  20. Greiner J (1994) A comparison of data-parallel algorithms for connected components. In: Proceedings of the sixth annual symposium on parallel algorithms and architectures (SPAA-94), Cape, May, pp 16–25

    Chapter  Google Scholar 

  21. Helman DR, JáJá J (1999) Designing practical efficient algorithms for symmetric multiprocessors. In: Algorithm engineering and experimentation (ALENEX’99). Lecture notes in computer science, vol 1619. Springer, Baltimore, pp 37–56

    Chapter  Google Scholar 

  22. Hofstee HP (2005) Power efficient processor architecture and the cell processor. In: International symposium on high-performance computer architecture, San Francisco, pp 258–262

    Google Scholar 

  23. Hsu T-S, Ramachandran V, Dean N (1997) Parallel implementation of algorithms for finding connected components in graphs. In: Bhatt SN (ed) Parallel algorithms: third DIMACS implementation challenge, 17–19 October 1994. DIMACS series in discrete mathematics and theoretical computer science, vol 30. American Mathematical Society, Providence, pp 23–41

    Google Scholar 

  24. JáJá J (1992) An introduction to parallel algorithms. Addison-Wesley, New York

    MATH  Google Scholar 

  25. Krishnamurthy A, Lumetta SS, Culler DE, Yelick K (1997) Connected components on distributed memory machines. In Bhatt SN (ed) Parallel algorithms: third DIMACS implementation challenge, 17–19 October 1994. DIMACS series in discrete mathematics and theoretical computer science, vol 30. American Mathematical Society, Providence, pp 1–21

    Google Scholar 

  26. Kruskal CP, Rudolph L, Snir M (1990) Efficient parallel algorithms for graph problems. Algorithmica 5(1):43–64

    Article  MATH  MathSciNet  Google Scholar 

  27. Paul WJ, Vishkin U, Wagener H (1983) Parallel dictionaries in 2–3 trees. In: Tenth colloquium on automata, languages and programming (ICALP), Barcelona. Lecture notes in computer science. Springer, Berlin, pp 597–609

    Google Scholar 

  28. Scarpazza DP, Villa O, Petrini F (2008) Efficient breadth-first search on the Cell/BE processor. IEEE Trans Parallel Distr Syst 19(10):1381–1395

    Article  Google Scholar 

  29. Shiloach Y, Vishkin U (1982) An O(logn) parallel connectivity algorithm. J Algorithms 3(1):57–67

    Article  MATH  MathSciNet  Google Scholar 

  30. Tarjan RE (1972) Depth-first search and linear graph algorithms. SIAM J Comput 1(2):146–160

    Article  MATH  MathSciNet  Google Scholar 

  31. Tarjan RE, Vishkin U (1985) An efficient parallel biconnectivity algorithm. SIAM J Comput 14(4):862–874

    Article  MATH  MathSciNet  Google Scholar 

  32. Unified Parallel C, URL: http://en.wikipedia.org/wiki/Unified_Parallel_C

  33. Woo J, Sahni S (1991) Load balancing on a hypercube. In: Proceedings of the fifth international parallel processing symposium, Anaheim. IEEE Computer Society, Los Alamitos, pp 525–530

    Google Scholar 

  34. Woo SC, Ohara M, Torrie E, Singh JP, Gupta A (1995) The SPLASH-2 programs: characterization and methodological considerations. In: Proceedings of the 22nd annual international symposium computer architecture, pp 24–36

    Google Scholar 

  35. Yoo A, Chow E, Henderson K, McLendon W, Hendrickson B, Çatalyürek ÜV (2005) A scalable distributed parallel breadth-first search algorithm on BlueGene/L. In: Proceedings of supercomputing (SC 2005), Seattle

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Bader, D., Cong, G. (2011). Graph Algorithms. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_102

Download citation

Publish with us

Policies and ethics