Analyzing the influence of mixed evaluation on the performance of Eden skeletons

A key point in the efficiency of parallel programs is the distribution of computation among processes. Haskell parallel dialects--like Eden--use mixed lazy and strict evaluation, and parallel performance is determined by the strategy used. We investigate how alternative evaluation models influence Eden skeletons performance using an implementation of Eden's operational semantics. More concretely, we have chosen the parallel Divide-and-Conquer skeleton for our comparative analysis. Here we show the measures obtained for a simple program but using different mixed evaluation strategies, and we analyze the advantages and drawbacks of each of them.

[1]  Colin Runciman,et al.  Profiling Parallel Functional Computations (Without Parallel Machines) , 1993, Functional Programming.

[2]  Rita Loogen,et al.  Parallelism Abstractions in Eden , 2003, Patterns and Skeletons for Parallel and Distributed Computing.

[3]  Rita Loogen Programming Language Constructs , 1999, Research Directions in Parallel Functional Programming.

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

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

[6]  Gilles Kahn,et al.  Coroutines and Networks of Parallel Processes , 1977, IFIP Congress.

[7]  M.C.J.D. van Eekelen,et al.  Reasoning about explicit strictness in a lazy language using mixed lazy/strict semantics , 2002 .

[8]  Yolanda Ortega-Mallén,et al.  An Operational Semantics for the Parallel Language Eden , 2002, Parallel Process. Lett..

[9]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[10]  Clara Segura,et al.  Deriving Non-Hierarchical Process Topologies , 2001, Scottish Functional Programming Workshop.

[11]  Rita Loogen,et al.  Implementation Skeletons in Eden: Low-Effort Parallel Programming , 2000, IFL.

[12]  Philip W. Trinder,et al.  A Strategic Profiler for Glasgow Parallel Haskell , 1998, IFL.

[13]  Frank Stephen Taylor Parallel Functional Programming by Partitioning , 2002 .

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

[15]  Paul H. J. Kelly Functional programming for loosely-coupled multiprocessors , 1989, Research monographs in parallel and distributed computing.

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

[17]  Sergei Gorlatch,et al.  Patterns and Skeletons for Parallel and Distributed Computing , 2002, Springer London.

[18]  Rita Loogen,et al.  DREAM: The DistRibuted Eden Abstract Machine , 1997, Implementation of Functional Languages.

[19]  Greg J. Michaelson,et al.  An introduction to functional programming through lambda calculus , 2011, International computer science series.

[20]  Manfred Broy,et al.  Interpreter Verification for a Functional Language , 1994, FSTTCS.