Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2737924.2737953acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
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
  • (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
  • (2021)Streaming Sparse Graphs using Efficient Dynamic Sets2021 IEEE International Conference on Big Data (Big Data)10.1109/BigData52589.2021.9671836(284-294)Online publication date: 15-Dec-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

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
  • 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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 June 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

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

Qualifiers

  • Research-article

Conference

PLDI '15
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)3
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (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
  • (2021)Streaming Sparse Graphs using Efficient Dynamic Sets2021 IEEE International Conference on Big Data (Big Data)10.1109/BigData52589.2021.9671836(284-294)Online publication date: 15-Dec-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
  • (2019)Incremental flattening for nested data parallelismProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295707(53-67)Online publication date: 16-Feb-2019
  • (2018)GraphIt: a high-performance graph DSLProceedings of the ACM on Programming Languages10.1145/32764912:OOPSLA(1-30)Online publication date: 24-Oct-2018
  • (2018)Abelian: A Compiler for Graph Analytics on Distributed, Heterogeneous PlatformsEuro-Par 2018: Parallel Processing10.1007/978-3-319-96983-1_18(249-264)Online publication date: 1-Aug-2018
  • (2018)Optimizing Declarative Parallel Distributed Graph Processing by Using Constraint SolversFunctional and Logic Programming10.1007/978-3-319-90686-7_11(166-181)Online publication date: 24-Apr-2018
  • (2017)LightHouse: An Automatic Code Generator for Graph Algorithms on GPUsLanguages and Compilers for Parallel Computing10.1007/978-3-319-52709-3_18(235-249)Online publication date: 24-Jan-2017
  • (2016)Data-centric execution of speculative parallel programsThe 49th Annual IEEE/ACM International Symposium on Microarchitecture10.5555/3195638.3195644(1-13)Online publication date: 15-Oct-2016
  • Show More Cited By

View Options

Get Access

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