Formally specifying and analyzing a parallel virtual machine for lazy functional languages using Maude

Pure lazy functional languages are a promising programming paradigm for harvesting massive parallelism, as their abstraction features and lack of side effects support the development of modular programs without unneeded serialization. We give a new formal message passing semantics for implicitly parallel execution of a lazy functional programming language, based on the intensional transformation that converts programs in functional style to a form that can be executed in a dataflow paradigm. We use rewriting logic to define the semantics of our parallel virtual machine and we use the Maude tool to formally analyze our model. We also briefly discuss a prototype parallel implementation of our model in Erlang.

[1]  Philip W. Trinder,et al.  An operational semantics for parallel lazy evaluation , 2000, ICFP '00.

[2]  John Plaice,et al.  Sequential Demand-Driven Evaluation of Eager TransLucid , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[3]  Marko C. J. D. van Eekelen,et al.  Functional Programming and Parallel Graph Rewriting , 1993 .

[4]  Yolanda Ortega-Mallén,et al.  A distributed operational semantics for a parallel functional language , 2000, Scottish Functional Programming Workshop.

[5]  Frédéric Loulergue,et al.  Verifying Functional Bulk Synchronous Parallel Programs Using the Coq System , 2003 .

[6]  Simon L. Peyton Jones,et al.  GUM: a portable parallel implementation of Haskell , 1996, PLDI '96.

[7]  Hans-Wolfgang Loidl,et al.  Parallel and Distributed Haskells , 2002, Journal of Functional Programming.

[8]  Arvind,et al.  Executing a Program on the MIT Tagged-Token Dataflow Architecture , 1990, IEEE Trans. Computers.

[9]  Peter Van Roy,et al.  Concepts, Techniques, and Models of Computer Programming , 2004 .

[10]  Gérard Boudol,et al.  Some Chemical Abstract Machines , 1993, REX School/Symposium.

[11]  Joey Paquet,et al.  A general architecture for demand migration in a demand-driven execution engine in a heterogeneous and distributed environment , 2005, 3rd Annual Communication Networks and Services Research Conference (CNSR'05).

[12]  Simon L. Peyton Jones,et al.  Runtime support for multicore Haskell , 2009, ICFP.

[13]  Grzegorz Rozenberg,et al.  A Decade of Concurrency Reflections and Perspectives , 1994, Lecture Notes in Computer Science.

[14]  Simon L. Peyton Jones,et al.  Harnessing the Multicores: Nested Data Parallelism in Haskell , 2008, FSTTCS.

[15]  Rita Loogen,et al.  Under Consideration for Publication in J. Functional Programming Parallel Functional Programming in Eden , 2022 .

[16]  Panos Rondogiannis,et al.  Efficient Intensional Implementation for Lazy Functional Languages , 2008, Math. Comput. Sci..

[17]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[18]  William W. Wadge,et al.  Higher-order functional languages and intensional logic , 1999, Journal of Functional Programming.

[19]  John Plaice,et al.  A Multithreaded Implementation for TransLucid , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[20]  Satnam Singh,et al.  Feedback directed implicit parallelism , 2007, ICFP '07.

[21]  Cormac Flanagan,et al.  pHluid: the design of a parallel functional language implementation on workstations , 1996, ICFP '96.

[22]  Kevin Hammond,et al.  Research Directions in Parallel Functional Programming , 1999, Springer London.

[23]  Hans-Wolfgang Loidl,et al.  Granularity in large-scale parallel functional programming , 1998 .

[24]  Hans-Wolfgang Loidl,et al.  Algorithm + strategy = parallelism , 1998, Journal of Functional Programming.

[25]  John Peterson,et al.  Parallel Functional Reactive Programming , 2000, PADL.

[26]  John C. Reynolds,et al.  Definitional Interpreters for Higher-Order Programming Languages , 1972, ACM '72.

[27]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

[28]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[29]  Serguei A. Mokhov,et al.  Advances in the Design and Implementation of a Multi-tier Architecture in the GIPSY Environment with Java , 2009, 2010 Eighth ACIS International Conference on Software Engineering Research, Management and Applications.

[30]  John Plaice Multidimensional Lucid: Design, Semantics and Implementation , 2000, DCW.