ABSTRACT
The increasing importance of graph-data based applications is fueling the need for highly efficient and parallel implementations of graph analysis software. In this paper we describe Green-Marl, a domain-specific language (DSL) whose high level language constructs allow developers to describe their graph analysis algorithms intuitively, but expose the data-level parallelism inherent in the algorithms. We also present our Green-Marl compiler which translates high-level algorithmic description written in Green-Marl into an efficient C++ implementation by exploiting this exposed data-level parallelism. Furthermore, our Green-Marl compiler applies a set of optimizations that take advantage of the high-level semantic knowledge encoded in the Green-Marl DSL. We demonstrate that graph analysis algorithms can be written very intuitively with Green-Marl through some examples, and our experimental results show that the compiler-generated implementation out of such descriptions performs as well as or better than highly-tuned hand-coded implementations.
- Green-marl lanaguage specification. http://ppl.stanford.edu/main/green_marl.html.Google Scholar
- Pagerank c+ implementation. http://code.grnet.gr/projects/pagerank.Google Scholar
- Strongly connected component (kosaraju) java implementation. http://www.keithschwarz.com/interesting/.Google Scholar
- V. Agarwal, F. Petrini, D. Pasetto, and D. Bader. Scalable Graph Exploration on Multicore Processors. In ACM/IEEE SC 2010. Google ScholarDigital Library
- M. Anderson. Better benchmarking for supercomputers. Spectrum, IEEE, 48(1), 2011. Google ScholarDigital Library
- D. Bader and K. Madduri. Designing multithreaded algorithms for breadth-first search and st-connectivity on the Cray MTA-2. In ICPP 2006. IEEE. Google ScholarDigital Library
- D. Bader and K. Madduri. Parallel algorithms for evaluating centrality indices in real-world networks. In IEEE ICPP 2006. Google ScholarDigital Library
- D. Bader and K. Madduri. Snap, small-world network analysis and partitioning: An open-source parallel graph framework for the exploration of large-scale networks. In IEEE IPDPS, 2008.Google ScholarCross Ref
- D. A. Bader and K. Madduri. Snap: small-world network analysis and partitioning. http://snap-graph.sourceforge.net.Google Scholar
- O. Bagge, K. Kalleberg, M. Haveraaen, and E. Visser. Design of the CodeBoost transformation system for domain-specific optimisation of C+ programs. In Source Code Analysis and Manipulation, 2003. Proceedings. Third IEEE International Workshop on.Google Scholar
- O. Beckmann, A. Houghton, M. Mellor, and P. H. Kelly. Runtime code generation in c+ as a foundation for domain-specific optimisation. In Domain-Specific Program Generation, volume 3016 of Lecture Notes in Computer Science. Springer Berlin / Heidelberg, 2004.Google ScholarCross Ref
- B. Bollobás. Modern graph theory. Springer Verlag, 1998.Google ScholarCross Ref
- U. Brandes. A faster algorithm for betweenness centrality. The Journal of Mathematical Sociology, 25(2):163--177, 2001.Google ScholarCross Ref
- H. Chafi, A. Sujeeth, K. Brown, H. Lee, A. Atreya, and K. Olukotun. A domain-specific approach to heterogeneous parallelism. In PPoPP. ACM, 2011. Google ScholarDigital Library
- D. Chakrabarti, Y. Zhan, and C. Faloutsos. R-mat: A recursive model for graph mining. In SDM, 2004.Google ScholarCross Ref
- G. Cong and D. Bader. Lock-free parallel algorithms: An experimental study. High Performance Computing-HiPC 2004, 2005. Google ScholarDigital Library
- T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms. MIT press and McGraw-Hill, 2001. Google ScholarDigital Library
- G. Csardi and T. Nepusz. The igraph software package for complex network research. InterJournal Complex Systems, 1695, 2006.Google Scholar
- D. Gregor and A. Lumsdaine. The parallel bgl: A generic library for distributed graph computations. Parallel Object-Oriented Scientific Computing (POOSC), 2005.Google Scholar
- S. Z. Guyer and C. Lin. An annotation language for optimizing software libraries. In PLAN '99: Proceedings of the 2nd conference on Domain-specific languages. Google ScholarDigital Library
- S. Hong, S. Kim, T. Oguntebi, and K. Olukotun. Accelerating CUDA graph algorithms at maximum warp. In PPoPP, 2011. Google ScholarDigital Library
- S. Hong, T. Oguntebi, and K. Olukotun. Efficient parallel graph exploration for multi-core cpu and gpu. In IEEE PACT 2011. Google ScholarDigital Library
- P. Hudak. Building domain-specific embedded languages. ACM Computing Surveys, 28, 1996. Google ScholarDigital Library
- K. Kennedy, B. Broom, A. Chauhan, R. Fowler, J. Garvin, C. Koelbel, C. McCosh, and J. Mellor-Crummey. Telescoping languages: A system for automatic generation of domain languages. Proceedings of the IEEE, 93(3), 2005.Google ScholarCross Ref
- Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. Hellerstein. Graphlab: A new parallel framework for machine learning. In Conference on Uncertainty in Artificial Intelligence, 2010.Google Scholar
- A. Lumsdaine, D. Gregor, B. Hendrickson, J. Berry, and J. Guest Editors. Challenges in parallel graph processing. Parallel Processing Letters, 17(1):5--20, 2007.Google ScholarCross Ref
- K. Madduri, D. Bader, J. Berry, and J. Crobak. Parallel shortest path algorithms for solving large-scale instances. 9th DIMACS Implementation Challenge-Shortest Paths, 2006.Google Scholar
- K. Madduri, D. Ediger, K. Jiang, D. Bader, and D. Chavarria-Miranda. A faster parallel algorithm and efficient multithreaded implementations for evaluating betweenness centrality on massive datasets. In IEEE IPDPS 2009. Google ScholarDigital Library
- 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 '10. ACM. Google ScholarDigital Library
- NVIDIA. CUDA. http://developer.nvidia.com/object/cuda.html.Google Scholar
- OpenMP ARB. Openmp. http://www.openmp.org.Google Scholar
- L. Page. Method for node ranking in a linked database, Sept. 4 2001. US Patent 6,285,999.Google Scholar
- J. Siek, L. Lee, A. Lumsdaine, L. Lee, L. Blackford, J. Demmel, J. Dongarra, I. Duff, S. Hammarling, M. Heroux, et al. The boost graph library: user guide and reference manual. 2002. Google ScholarDigital Library
- L. G. Valiant. A bridging model for parallel computation. Commun. ACM, 33, August 1990. Google ScholarDigital Library
- T. L. Veldhuizen. Expression templates, C+ gems. SIGS Publications, Inc., New York, NY, 1996. Google ScholarDigital Library
- T. L. Veldhuizen. Arrays in blitz+. In ISCOPE, pages 223--230, 1998. Google ScholarDigital Library
- T. L. Veldhuizen. Active Libraries and Universal Languages. PhD thesis, Indiana University Computer Science, May 2004. Google ScholarDigital Library
- A. Yoo, E. Chow, K. Henderson, W. McLendon, B. Hendrickson, and U. Catalyurek. A scalable distributed parallel breadth-first search algorithm on BlueGene/L. In SC 2005 ACM/IEEE. Google ScholarDigital Library
Index Terms
Green-Marl: a DSL for easy and efficient graph analysis
Recommendations
Green-Marl: a DSL for easy and efficient graph analysis
ASPLOS '12The increasing importance of graph-data based applications is fueling the need for highly efficient and parallel implementations of graph analysis software. In this paper we describe Green-Marl, a domain-specific language (DSL) whose high level language ...
Green-Marl: a DSL for easy and efficient graph analysis
ASPLOS '12The increasing importance of graph-data based applications is fueling the need for highly efficient and parallel implementations of graph analysis software. In this paper we describe Green-Marl, a domain-specific language (DSL) whose high level language ...
Pardis: a process calculus for parallel and distributed programming in Haskell
Parallel programming and distributed programming involve substantial amounts of boilerplate code for process management and data synchronisation. This leads to increased bug potential and often results in unintended non-deterministic program behaviour. ...
Comments