[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Declarative coordination of graph-based parallel programs

Published: 27 February 2016 Publication History

Abstract

Declarative programming has been hailed as a promising approach to parallel programming since it makes it easier to reason about programs while hiding the implementation details of parallelism from the programmer. However, its advantage is also its disadvantage as it leaves the programmer with no straightforward way to optimize programs for performance. In this paper, we introduce Coordinated Linear Meld (CLM), a concurrent forward-chaining linear logic programming language, with a declarative way to coordinate the execution of parallel programs allowing the programmer to specify arbitrary scheduling and data partitioning policies. Our approach allows the programmer to write graph-based declarative programs and then optionally to use coordination to fine-tune parallel performance. In this paper we specify the set of coordination facts, discuss their implementation in a parallel virtual machine, and show---through example---how they can be used to optimize parallel execution. We compare the performance of CLM programs against the original uncoordinated Linear Meld and several other frameworks.

Supplementary Material

ZIP File (a4-cruz.zip)
Supplemental material.

References

[1]
S. Ahuja, N. Carriero, and D. Gelernter. Linda and friends. Computer, pages 26--34, 1986.
[2]
F. ARBAB. Reo: a channel-based coordination model for component composition. Mathematical Structures in Computer Science, pages 329--366, 2004.
[3]
M. P. Ashley-Rollman, P. Lee, S. C. Goldstein, P. Pillai, and J. D. Campbell. A language for large ensembles of independently executing nodes. In International Conference on Logic Programming, pages 265--280, 2009.
[4]
M. Bauer, J. Clark, E. Schkufza, and A. Aiken. Programming the memory hierarchy revisited: Supporting irregular parallelism in sequoia. In ACM Symposium on Principles and Practice of Parallel Programming, pages 13--24, 2011.
[5]
M. Bauer, S. Treichler, E. Slaughter, and A. Aiken. Legion: Expressing locality and independence with logical regions. In International Conference on High Performance Computing, Networking, Storage and Analysis, page 66, 2012.
[6]
G. E. Blelloch. Programming parallel algorithms. Communications of the ACM, pages 85--97, 1996.
[7]
M. Chakravarty, G. Keller, R. Lechtchinsky, and W. Pfannenstiel. Nepal: Nested data parallelism in Haskell. In Euro-Par 2001 Parallel Processing, pages 524--534. 2001.
[8]
P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: An object-oriented approach to non-uniform cluster computing. In ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 519--538, 2005.
[9]
D. Clarke. Coordination: Reo, nets, and logic. In Formal Methods for Components and Objects, pages 226--256. 2008.
[10]
F. Cruz. Linear Logic and Coordination for Parallel Programming. PhD thesis, Carnegie Mellon University, University of Porto, 2016.
[11]
F. Cruz, R. Rocha, S. Goldstein, and F. Pfenning. A linear logic programming language for concurrent programming over graph structures. Journal of Theory and Practice of Logic Programming, Special Issue, pages 493--507, July 2014.
[12]
F. Cruz, R. Rocha, and S. C. Goldstein. Design and implementation of a multithreaded virtual machine for executing linear logic programs. In O. Danvy, editor, International Symposium on Principles and Practice of Declarative Programming, pages 43--53, September 2014.
[13]
J. Dean and S. Ghemawat. MapReduce: simplified data processing on large clusters. Communications of the ACM, pages 107--113, 2008.
[14]
E. W. Dijkstra. A note on two problems in connexion with graphs. Numerische Mathematik, pages 269--271, 1959.
[15]
K. Fatahalian, D. R. Horn, T. J. Knight, L. Leem, M. Houston, J. Y. Park, M. Erez, M. Ren, A. Aiken, W. J. Dally, and P. Hanrahan. Sequoia: Programming the memory hierarchy. In ACM/IEEE Conference on Supercomputing, page 83, 2006.
[16]
J.-Y. Girard. Linear logic. Theoretical Computer Science, pages 1--102, 1987.
[17]
J. Gonzalez, Y. Low, and C. Guestrin. Residual splash for optimally parallelizing belief propagation. In Artificial Intelligence and Statistics, pages 177--184, 2009.
[18]
J. S. Hodas and D. Miller. Logic programming in a fragment of intuitionistic linear logic. Information and Computation, pages 32--42, 1994.
[19]
E. J. Hoffman, J. C. Loessi, and R. C. Moore. Construction for the solutions of the M Queens problem. Mathematics Magazine, pages 66--72, 1969.
[20]
M. Isard, M. Budiu, Y. Yu, A. Birrell, and D. Fetterly. Dryad: distributed data-parallel programs from sequential building blocks. In European Conference on Computer Systems, pages 59--72, 2007.
[21]
R. Jagadeesan, G. Nadathur, and V. Saraswat. Testing concurrent systems: An interpretation of intuitionistic logic. In Foundations of Software Technology and Theoretical Computer Science, pages 517--528. 2005.
[22]
B. T. Loo, T. Condie, M. Garofalakis, D. E. Gay, and J. M. Hellerstein. Declarative networking: Language, execution and optimization. In International Conference on Management of Data, pages 97--108, 2006.
[23]
Y. Low, J. Gonzalez, A. Kyrola, D. Bickson, C. Guestrin, and J. M. Hellerstein. GraphLab: A new framework for parallel machine learning. In Conference on Uncertainty in Artificial Intelligence, pages 340--349, 2010.
[24]
G. Malewicz, M. H. Austern, A. J. C. Bik, J. C. Dehnert, I. Horn, N. Leiser, and G. Czajkowski. Pregel: a system for large-scale graph processing. In International Conference on Management of Data, pages 135--146, 2010.
[25]
D. Miller. An overview of linear logic programming. In Computational Logic, pages 1--5, 1985.
[26]
K. P. Murphy, Y. Weiss, and M. I. Jordan. Loopy belief propagation for approximate inference: An empirical study. In Conference on Uncertainty in Artificial Intelligence, pages 467--475, 1999.
[27]
D. Nguyen and K. Pingali. Synthesizing concurrent schedulers for irregular algorithms. In International Conference on Architectural Support for Programming Languages and Operating Systems, pages 333--344, 2011.
[28]
R. S. Nikhil. An overview of the parallel language Id (a foundation for pH, a parallel dialect of Haskell). Technical report, Digital Equipment Corporation, Cambridge Research Laboratory, 1993.
[29]
C. Olston, B. Reed, U. Srivastava, R. Kumar, and A. Tomkins. PigLatin: A not-so-foreign language for data processing. In ACM SIGMOD International Conference on Management of Data, pages 1099--1110, 2008.
[30]
C. Palamidessi, V. Saraswat, B. Victor, and F. Valencia. On the expressiveness of linearity vs persistence in the asychronous pi-calculus. In IEEE Computer Society, pages 59--68, 2006.
[31]
G. A. Papadopoulos and F. Arbab. Coordination models and languages. In Advances in Computers, pages 329--400, 1998.
[32]
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 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 12--25, 2011.
[33]
D. Prountzos, R. Manevich, and K. Pingali. Elixir: A system for synthesizing concurrent graph programs. In ACM International Conference on Object Oriented Programming Systems Languages and Applications, pages 375--394, 2012.
[34]
J. Ragan-Kelley, C. Barnes, A. Adams, S. Paris, F. Durand, and S. Amarasinghe. Halide: A language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 519--530, 2013.
[35]
V. A. Saraswat, R. Jagadeesan, and V. Gupta. Default timed concurrent constraint programming. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 272--285, 1995.
[36]
J. Shun and G. E. Blelloch. Ligra: A lightweight graph processing framework for shared memory. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 135--146, 2013.

Cited By

View all
  • (2022)A Comprehensive Exploration of Languages for Parallel ComputingACM Computing Surveys10.1145/348500855:2(1-39)Online publication date: 18-Jan-2022
  • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • (2022)Fregel: a functional domain-specific language for vertex-centric large-scale graph processingJournal of Functional Programming10.1017/S095679682100027732Online publication date: 20-Jan-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 51, Issue 8
PPoPP '16
August 2016
405 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/3016078
Issue’s Table of Contents
  • cover image ACM Conferences
    PPoPP '16: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
    February 2016
    420 pages
    ISBN:9781450340922
    DOI:10.1145/2851141
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 the author(s) 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: 27 February 2016
Published in SIGPLAN Volume 51, Issue 8

Check for updates

Author Tags

  1. linear logic
  2. parallel programming

Qualifiers

  • Research-article

Funding Sources

  • European Regional Development Fund (ERDF) through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme
  • National Funds through the Portuguese funding agency - Fundao para a Ciencia e a Tecnologia (FCT)

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)A Comprehensive Exploration of Languages for Parallel ComputingACM Computing Surveys10.1145/348500855:2(1-39)Online publication date: 18-Jan-2022
  • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • (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)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • (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

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