skip to main content
research-article

Declarative coordination of graph-based parallel programs

Published:27 February 2016Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

References

  1. S. Ahuja, N. Carriero, and D. Gelernter. Linda and friends. Computer, pages 26--34, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. F. ARBAB. Reo: a channel-based coordination model for component composition. Mathematical Structures in Computer Science, pages 329--366, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. G. E. Blelloch. Programming parallel algorithms. Communications of the ACM, pages 85--97, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Clarke. Coordination: Reo, nets, and logic. In Formal Methods for Components and Objects, pages 226--256. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. F. Cruz. Linear Logic and Coordination for Parallel Programming. PhD thesis, Carnegie Mellon University, University of Porto, 2016.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Dean and S. Ghemawat. MapReduce: simplified data processing on large clusters. Communications of the ACM, pages 107--113, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. W. Dijkstra. A note on two problems in connexion with graphs. Numerische Mathematik, pages 269--271, 1959. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J.-Y. Girard. Linear logic. Theoretical Computer Science, pages 1--102, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Gonzalez, Y. Low, and C. Guestrin. Residual splash for optimally parallelizing belief propagation. In Artificial Intelligence and Statistics, pages 177--184, 2009.Google ScholarGoogle Scholar
  18. J. S. Hodas and D. Miller. Logic programming in a fragment of intuitionistic linear logic. Information and Computation, pages 32--42, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Miller. An overview of linear logic programming. In Computational Logic, pages 1--5, 1985.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. G. A. Papadopoulos and F. Arbab. Coordination models and languages. In Advances in Computers, pages 329--400, 1998.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Declarative coordination of graph-based parallel programs

        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

        Full Access

        • 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

          Copyright © 2016 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 27 February 2016

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!