Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Synthesizing parallel graph programs via automated planning

Published: 03 June 2015 Publication History

Abstract

We describe a system that uses automated planning to synthesize correct and efficient parallel graph programs from high-level algorithmic specifications. Automated planning allows us to use constraints to declaratively encode program transformations such as scheduling, implementation selection, and insertion of synchronization. Each plan emitted by the planner satisfies all constraints simultaneously, and corresponds to a composition of these transformations. In this way, we obtain an integrated compilation approach for a very challenging problem domain. We have used this system to synthesize parallel programs for four graph problems: triangle counting, maximal independent set computation, preflow-push maxflow, and connected components. Experiments on a variety of inputs show that the synthesized implementations perform competitively with hand-written, highly-tuned code.

References

[1]
A. Aho, R. Sethi, and J. Ullman. Compilers: principles, techniques, and tools. Addison Wesley, 1986.
[2]
G. Barthe, J. M. Crespo, S. Gulwani, C. Kunz, and M. Marron. From relational verification to SIMD loop synthesis. PPoPP ’13, 2013.
[3]
A. J. C. Bik and H. A. G. Wijshoff. Compilation techniques for sparse matrix computations. In ICS, 1993.
[4]
G. E. Blelloch, J. T. Fineman, P. B. Gibbons, and J. Shun. Internally deterministic parallel algorithms can be fast. PPoPP ’12, 2012.
[5]
S. Cherem, T. Chilimbi, and S. Gulwani. Inferring locks for atomic sections. In PLDI. ACM, 2008. ISBN 978-1-59593-860-2.
[6]
G. Cong, G. Almasi, and V. Saraswat. Fast pgas connected components algorithms. PGAS ’09. ACM, 2009.
[7]
T. Cormen, C. Leiserson, R. Rivest, and C. Stein, editors. Introduction to Algorithms. MIT Press, 2001.
[8]
M. Eriksson and C. Kessler. Integrated code generation for loops. ACM Trans. Embed. Comput. Syst., 11S(1), June 2012.
[9]
R. E. Fikes and N. J. Nilsson. Strips: A new approach to the application of theorem proving to problem solving. Artificial Intelligence, 2, 1971.
[10]
S. Gulwani, S. Jha, A. Tiwari, and R. Venkatesan. Synthesis of loopfree programs. PLDI ’11, 2011.
[11]
P. Hawkins, A. Aiken, K. Fisher, M. Rinard, and M. Sagiv. Concurrent data representation synthesis. In PLDI, 2012.
[12]
M. Herlihy and E. Koskinen. Transactional boosting: a methodology for highly-concurrent transactional objects. In PPoPP. ACM, 2008.
[13]
S. Itzhaky, S. Gulwani, N. Immerman, and M. Sagiv. A simple inductive synthesis methodology and its applications. In OOPSLA, 2010.
[14]
J. F. JaJa. An introduction to parallel algorithms. Addison Wesley, 1992.
[15]
T. A. Johnson and R. Eigenmann. Context-sensitive domainindependent algorithm composition and selection. PLDI ’06, 2006.
[16]
R. Joshi, G. Nelson, and K. Randall. Denali: A goal-directed superoptimizer. In PLDI, 2002.
[17]
R. Joshi, G. Nelson, and Y. Zhou. Denali: A practical algorithm for generating optimal code. ACM Trans. Program. Lang. Syst., 28(6), 2006.
[18]
H. A. Kautz, B. Selman, et al. Planning as satisfiability. ECAI, 1992.
[19]
H. Kwak, C. Lee, H. Park, and S. Moon. What is Twitter, a social network or a news media? WWW ’10, 2010.
[20]
Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. M. Hellerstein. Graphlab: A new parallel framework for machine learning. In UAI, 2010.
[21]
H. Massalin. Superoptimizer: A look at the smallest program. In ASPLOS, 1987.
[22]
B. McCloskey, F. Zhou, D. Gay, and E. Brewer. Autolocker: synchronization inference for atomic sections. In POPL. ACM, 2006.
[23]
L. A. Meyerovich, M. E. Torok, E. Atkinson, and R. Bodik. Parallel schedule synthesis for attribute grammars. PPoPP ’13, 2013.
[24]
D. Nguyen, A. Lenharth, and K. Pingali. A lightweight infrastructure for graph analytics. In SOSP, 2013.
[25]
K. Pingali, D. Nguyen, M. Kulkarni, M. Burtscher, M. A. Hassaan, R. Kaleem, T. H. Lee, A. Lenharth, R. Manevich, M. Méndez-Lojo, D. Prountzos, and X. Sui. The TAO of parallelism in algorithms. In PLDI, 2011.
[26]
D. Prountzos, R. Manevich, and K. Pingali. Elixir: A system for synthesizing concurrent graph programs. OOPSLA, 2012.
[27]
T. Rompf, A. K. Sujeeth, N. Amin, K. J. Brown, V. Jovanovic, H. Lee, M. Jonnalagedda, K. Olukotun, and M. Odersky. Optimizing data structures in high-level programs: New directions for extensible compilers based on staging. In POPL, 2013.
[28]
N. Satish, N. Sundaram, M. M. A. Patwary, J. Seo, J. Park, M. A. Hassaan, S. Sengupta, Z. Yin, and P. Dubey. Navigating the maze of graph analytics frameworks using massive graph datasets. SIGMOD, 2014.
[29]
T. Schank. Algorithmic Aspects of Triangle-Based Network Analysis. PhD thesis, Universität Karlsruhe, 2007.
[30]
E. Schkufza, R. Sharma, and A. Aiken. Stochastic superoptimization. ASPLOS ’13, 2013.
[31]
Y. Shiloach and U. Vishkin. An o(log n) parallel connectivity algorithm. J. Algorithms, 3(1):57–67, 1982.
[32]
J. Shun and G. E. Blelloch. Ligra: A lightweight graph processing framework for shared memory. PPoPP ’13, 2013.
[33]
A. Solar-Lezama, C. Jones, and R. Bodik. Sketching concurrent data structures. In PLDI, 2008.
[34]
R. Tate, M. Stepp, Z. Tatlock, and S. Lerner. Equality saturation: A new approach to optimization. In POPL, 2009.
[35]
M. Vechev and E. Yahav. Deriving linearizable fine-grained concurrent objects. In PLDI, 2008.
[36]
M. Vechev, E. Yahav, and G. Yorsh. Abstraction-guided synthesis of synchronization. In POPL, 2010.

Cited By

View all
  • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • (2019)Low-latency graph streaming using compressed purely-functional treesProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3314221.3314598(918-934)Online publication date: 8-Jun-2019
  • (2016)A compiler for throughput optimization of graph algorithms on GPUsACM SIGPLAN Notices10.1145/3022671.298401551:10(1-19)Online publication date: 19-Oct-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 50, Issue 6
PLDI '15
June 2015
630 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2813885
  • Editor:
  • Andy Gill
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation
    June 2015
    630 pages
    ISBN:9781450334686
    DOI:10.1145/2737924
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: 03 June 2015
Published in SIGPLAN Volume 50, Issue 6

Check for updates

Author Tags

  1. Amorphous Data-parallelism
  2. Compiler Optimization
  3. Concurrency
  4. Irregular Programs
  5. Parallelism
  6. Synthesis

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • (2019)Low-latency graph streaming using compressed purely-functional treesProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3314221.3314598(918-934)Online publication date: 8-Jun-2019
  • (2016)A compiler for throughput optimization of graph algorithms on GPUsACM SIGPLAN Notices10.1145/3022671.298401551:10(1-19)Online publication date: 19-Oct-2016
  • (2016)A compiler for throughput optimization of graph algorithms on GPUsProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2984015(1-19)Online publication date: 19-Oct-2016
  • (2016)MapReduce program synthesisACM SIGPLAN Notices10.1145/2980983.290810251:6(326-340)Online publication date: 2-Jun-2016
  • (2016)MapReduce program synthesisProceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2908080.2908102(326-340)Online publication date: 2-Jun-2016
  • (2016)Parallel graph analyticsCommunications of the ACM10.1145/290191959:5(78-87)Online publication date: 26-Apr-2016
  • (2024)Automating Vectorized Distributed Graph ComputationProceedings of the ACM on Management of Data10.1145/36988332:6(1-27)Online publication date: 20-Dec-2024
  • (2022)Fregel: a functional domain-specific language for vertex-centric large-scale graph processingJournal of Functional Programming10.1017/S095679682100027732Online publication date: 20-Jan-2022
  • (2021)Terrace: A Hierarchical Graph Container for Skewed Dynamic GraphsProceedings of the 2021 International Conference on Management of Data10.1145/3448016.3457313(1372-1385)Online publication date: 9-Jun-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media