Comparing Parallel Functional Languages: Programming and Performance

H. W. Loidl, F. Rubio, N. Scaife, K. Hammond, S. Horiguchi, U. Klusik, R. Loogen, G. J. Michaelson, R. Peña, S. Priebe, A. ́ J Rebón, P. W. Trinder

Research output: Contribution to journalArticlepeer-review

59 Citations (Scopus)


This paper presents a practical evaluation and comparison of three state-of-the-art parallel functional languages. The evaluation is based on implementations of three typical symbolic computation programs, with performance measured on a Beowulf-class parallel architecture. We assess three mature parallel functional languages: PMLS, a system for implicitly parallel execution of ML programs; GpH, a mainly implicit parallel extension of Haskell; and Eden, a more explicit parallel extension of Haskell designed for both distributed and parallel execution. While all three languages employ a completely implicit approach to communication, each language takes a different approach to specifying and controlling parallelism, ranging from explicit identification of processes as language constructs (Eden) through annotation of potential parallelism (GPH) to automatic detection of parallel skeletons in sequential code (PMLS). We present detailed performance measurements of all three systems on a widely available parallel architecture: a Beowulf cluster of low-cost commodity workstations. We use three representative symbolic applications: a matrix multiplication algorithm, an exact linear system solver, and a simple ray-tracer. Our results show how moderate speedups can be achieved with little or no changes to the sequential code, and that parallel performance can be significantly improved even within our high-level model of parallel functional programming by controlling key aspects of the program such as load distribution and thread granularity.

Original languageEnglish
Pages (from-to)203-251
Number of pages49
JournalHigher-Order and Symbolic Computation
Issue number3
Publication statusPublished - Sept 2003


  • Automatic task decomposition
  • Functional programming
  • Haskell
  • Implicit parallelism
  • Load balancing
  • ML
  • Parallel computation
  • Skeletons


Dive into the research topics of 'Comparing Parallel Functional Languages: Programming and Performance'. Together they form a unique fingerprint.

Cite this