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.
Supplemental Material
Available for Download
Supplemental material.
- S. Ahuja, N. Carriero, and D. Gelernter. Linda and friends. Computer, pages 26--34, 1986. Google Scholar
Digital Library
- F. ARBAB. Reo: a channel-based coordination model for component composition. Mathematical Structures in Computer Science, pages 329--366, 2004. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- G. E. Blelloch. Programming parallel algorithms. Communications of the ACM, pages 85--97, 1996. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- D. Clarke. Coordination: Reo, nets, and logic. In Formal Methods for Components and Objects, pages 226--256. 2008. Google Scholar
Digital Library
- F. Cruz. Linear Logic and Coordination for Parallel Programming. PhD thesis, Carnegie Mellon University, University of Porto, 2016.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- J. Dean and S. Ghemawat. MapReduce: simplified data processing on large clusters. Communications of the ACM, pages 107--113, 2008. Google Scholar
Digital Library
- E. W. Dijkstra. A note on two problems in connexion with graphs. Numerische Mathematik, pages 269--271, 1959. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- J.-Y. Girard. Linear logic. Theoretical Computer Science, pages 1--102, 1987. Google Scholar
Digital Library
- J. Gonzalez, Y. Low, and C. Guestrin. Residual splash for optimally parallelizing belief propagation. In Artificial Intelligence and Statistics, pages 177--184, 2009.Google Scholar
- J. S. Hodas and D. Miller. Logic programming in a fragment of intuitionistic linear logic. Information and Computation, pages 32--42, 1994. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- D. Miller. An overview of linear logic programming. In Computational Logic, pages 1--5, 1985.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- G. A. Papadopoulos and F. Arbab. Coordination models and languages. In Advances in Computers, pages 329--400, 1998.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Declarative coordination of graph-based parallel programs
Recommendations
Declarative coordination of graph-based parallel programs
PPoPP '16: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingDeclarative 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 ...
Machine Independent AND and OR Parallel Execution of Logic Programs: Part II-Compiled Execution
In pt.I, we presented a binding environment for the ANDand OR parallel execution of logic programs. This environment was instrumental inrendering a compiler for the AND and OR parallel execution of logic programs machineindependent. In this paper, we ...
Compiling data-parallel programs for clusters of SMPs: Research Articles
Compilers for Parallel ComputersClusters of shared-memory multiprocessors (SMPs) have become the most promising parallel computing platforms for scientific computing. However, SMP clusters significantly increase the complexity of user application development when using the low-level ...






Comments