TY - JOUR
T1 - Comparing Parallel Functional Languages
T2 - Programming and Performance
AU - Loidl, H. W.
AU - Rubio, F.
AU - Scaife, N.
AU - Hammond, K.
AU - Horiguchi, S.
AU - Klusik, U.
AU - Loogen, R.
AU - Michaelson, G. J.
AU - Peña, R.
AU - Priebe, S.
AU - Rebón, A. ́ J
AU - Trinder, P. W.
PY - 2003/9
Y1 - 2003/9
N2 - 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.
AB - 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.
KW - Automatic task decomposition
KW - Functional programming
KW - Haskell
KW - Implicit parallelism
KW - Load balancing
KW - ML
KW - Parallel computation
KW - Skeletons
UR - http://www.scopus.com/inward/record.url?scp=0141955972&partnerID=8YFLogxK
U2 - 10.1023/A:1025641323400
DO - 10.1023/A:1025641323400
M3 - Article
SN - 1573-0557
VL - 16
SP - 203
EP - 251
JO - Higher-Order and Symbolic Computation
JF - Higher-Order and Symbolic Computation
IS - 3
ER -