skip to main content
10.1145/2442516.2442530acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Ligra: a lightweight graph processing framework for shared memory

Published:23 February 2013Publication History

ABSTRACT

There has been significant recent interest in parallel frameworks for processing graphs due to their applicability in studying social networks, the Web graph, networks in biology, and unstructured meshes in scientific simulation. Due to the desire to process large graphs, these systems have emphasized the ability to run on distributed memory machines. Today, however, a single multicore server can support more than a terabyte of memory, which can fit graphs with tens or even hundreds of billions of edges. Furthermore, for graph algorithms, shared-memory multicores are generally significantly more efficient on a per core, per dollar, and per joule basis than distributed memory systems, and shared-memory algorithms tend to be simpler than their distributed counterparts.

In this paper, we present a lightweight graph processing framework that is specific for shared-memory parallel/multicore machines, which makes graph traversal algorithms easy to write. The framework has two very simple routines, one for mapping over edges and one for mapping over vertices. Our routines can be applied to any subset of the vertices, which makes the framework useful for many graph traversal algorithms that operate on subsets of the vertices. Based on recent ideas used in a very fast algorithm for breadth-first search (BFS), our routines automatically adapt to the density of vertex sets. We implement several algorithms in this framework, including BFS, graph radii estimation, graph connectivity, betweenness centrality, PageRank and single-source shortest paths. Our algorithms expressed using this framework are very simple and concise, and perform almost as well as highly optimized code. Furthermore, they get good speedups on a 40-core machine and are significantly more efficient than previously reported results using graph frameworks on machines with many more cores.

References

  1. V. Agarwal, F. Petrini, D. Pasetto, and D. A. Bader. Scalable graph exploration on multicore processors. In SC, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. A. Bader, S. Kintali, K. Madduri, and M. Mihail. Approximating betweenness centrality. In WAW, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Beamer, K. Asanović, and D. Patterson. Searching for a parent instead of fighting over children: A fast breadth-first search implementation for graph500. Technical Report UCB/EECS-2011-117, EECS Department, University of California, Berkeley, 2011.Google ScholarGoogle Scholar
  4. S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. In SC, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Berry, B. Hendrickson, S. Kahan, and P. Konecny. Software and algorithms for graph queries on multithreaded architectures. In In IPDPS, 2007.Google ScholarGoogle ScholarCross RefCross Ref
  6. U. Brandes. A faster algorithm for betweenness centrality. Journal of Mathematical Sociology, 25, 2001.Google ScholarGoogle Scholar
  7. S. Brin and L. Page. The anatomy of a large-scale hypertextual web search engine. In WWW, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A. Buluç and J. R. Gilbert. The Combinatorial BLAS: Design, implementation, and applications. The International Journal of High Performance Computing Applications, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Chakrabarti, Y. Zhan, and C. Faloutsos. R-MAT: A recursive model for graph mining. In SDM, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  10. E. Cohen. Size-estimation framework with applications to transitive closure and reachability. J. Comput. Syst. Sci., 55, December 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms (3. ed.). MIT Press, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J.-A. Ferrez, K. Fukuda, and T. Liebling. Parallel computation of the diameter of a graph. In HPCSA, 1998.Google ScholarGoogle ScholarCross RefCross Ref
  13. L. Freeman. A set of measures of centrality based upon betweenness. Sociometry, 1977.Google ScholarGoogle ScholarCross RefCross Ref
  14. R. Geisberger, P. Sanders, and D. Schultes. Better approximation of betweenness centrality. In ALENEX, 2008.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. R. Gilbert, S. Reinhardt, and V. B. Shah. A unified framework for numerical and combinatorial computing. Computing in Sciences and Engineering, 10(2), Mar/Apr 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Giraph. "http://giraph.apache.org", 2012.Google ScholarGoogle Scholar
  17. J. Gonzalez, Y. Low, H. Gu, D. Bickson, and C. Guestrin. Power-Graph: Distributed graph-parallel computation on natural graphs. In OSDI, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Graph500. "http://www.graph500.org", 2012.Google ScholarGoogle Scholar
  19. D. Gregor and A. Lumsdaine. The Parallel BGL: A generic library for distributed graph computations. In POOSC, 2005.Google ScholarGoogle Scholar
  20. S. Hong, T. Oguntebi, and K. Olukotun. Efficient parallel graph exploration on multi-core CPU and GPU. In PACT, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Hong, H. Chafi, E. Sedlar, and K. Olukotun. Green-Marl: a DSL for easy and efficient graph analysis. In ASPLOS, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Jaja. Introduction to Parallel Algorithms. Addison-Wesley Professional, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. U. Kang, C. E. Tsourakakis, A. P. Appel, C. Faloutsos, and J. Leskovec. Hadi: Mining radii of large graphs. In TKDD, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. U. Kang, C. E. Tsourakakis, and C. Faloutsos. PEGASUS: mining peta-scale graphs. Knowl. Inf. Syst., 27(2), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. H. Kwak, C. Lee, H. Park, and S. Moon. What is Twitter, a social network or a news media? In WWW, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Kyrola, G. Blelloch, and C. Guestrin. GraphChi: Large-scale graph computation on just a PC. In OSDI, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. C. E. Leiserson. The Cilk++ concurrency platform. J. Supercomputing, 51(3), 2010. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C. E. Leiserson and T. B. Schardl. A work-efficient parallel breadthfirst search algorithm (or how to cope with the nondeterminism of reducers). In SPAA, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. M. Hellerstein. GraphLab: A new parallel framework for machine learning. In Conference on Uncertainty in Artificial Intelligence, 2010.Google ScholarGoogle Scholar
  30. Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. M. Hellerstein. Distributed GraphLab: A Framework for Machine Learning and Data Mining in the Cloud. PVLDB, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. A. Lugowski, D. Alber, A. Buluç, J. Gilbert, S. Reinhardt, Y. Teng, and A. Waranis. A flexible open-source toolbox for scalable complex graph analysis. In SDM, 2012.Google ScholarGoogle ScholarCross RefCross Ref
  32. K. Madduri, D. A. Bader, J. W. Berry, and J. R. Crobak. An experimental study of a parallel shortest path algorithm for solving largescale graph instances. In ALENEX, 2007.Google ScholarGoogle Scholar
  33. C. Magnien, M. Latapy, and M. Habib. Fast computation of empirically tight bounds for the diameter of massive graphs. J. Exp. Algorithmics, 13, February 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. G. Malewicz, M. H. Austern, A. J. Bik, J. C. Dehnert, I. Horn, N. Leiser, and G. Czajkowski. Pregel: a system for large-scale graph processing. In SIGMOD, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. D. Merrill, M. Garland, and A. Grimshaw. Scalable GPU graph traversal. In PPoPP, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. U. Meyer and P. Sanders. ?-stepping: a parallelizable shortest path algorithm. J. Algorithms, 49(1), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. C. R. Palmer, P. B. Gibbons, and C. Faloutsos. ANF: a fast and scalable tool for data mining in massive graphs. In ACM SIGKDD, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. K. Pingali, D. Nguyen, M. Kulkarni, M. Burtscher, M. A. Hassaan, R. Kaleem, T.-H. Lee, A. Lenharth, R. Manevich, M. Mendez-Lojo, D. Prountzos, and X. Sui. The tao of parallelism in algorithms. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. V. Prabhakaran, M.Wu, X.Weng, F. McSherry, L. Zhou, and M. Haridasan. Managing large graphs on multi-cores with graph awareness. In USENIX ATC, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. S. Salihoglu and J.Widom. GPS: A graph processing system. Technical Report InfoLab 1039, Stanford University, 2012.Google ScholarGoogle Scholar
  41. J. Shun, G. E. Blelloch, J. T. Fineman, P. B. Gibbons, A. Kyrola, H. V. Simhadri, and K. Tangwongsan. Brief announcement: the Problem Based Benchmark Suite. In SPAA, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Yahoo! Altavista web page hyperlink connectivity graph, 2012. "http://webscope.sandbox.yahoo.com/catalog.php?datatype=g".Google ScholarGoogle Scholar

Index Terms

  1. Ligra: a lightweight graph processing framework for shared memory

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        PPoPP '13: Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
        February 2013
        332 pages
        ISBN:9781450319225
        DOI:10.1145/2442516
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 48, Issue 8
          PPoPP '13
          August 2013
          309 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2517327
          Issue’s Table of Contents

        Copyright © 2013 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 February 2013

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate230of1,014submissions,23%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader