Comparing and Optimising Parallel Haskell Implementations on Multicore — Work in Progress — Jost Berthold 1,2 , Simon Marlow 2 , Abyd Al Zain 3 , and Kevin Hammond 4 1 Philipps-Universit¨ at Marburg, Fachbereich Mathematik und Informatik Hans Meerwein Straße, D-35032 Marburg, Germany berthold@informatik.uni-marburg.de 2 Microsoft Research Ltd., Cambridge, Cambridgeshire CB3 0FB, England, UK {simonmar,t-josber}@microsoft.com 3 School of Mathematical and Computer Sciences Heriot-Watt University, Edinburgh EH14 4AS, Scotland, UK a.d.alzain@hw.ac.uk 4 School of Computer Science, University of St.Andrews St. Andrews, Fife KY16 9SX, Scotland, UK kh@cs.st-andrews.ac.uk Abstract. We investigate the differences and tradeoffs imposed by different implementations of two parallel Haskell dialects running on a multicore ma- chine. The GpH and Eden dialects of Haskell are both constructed using the highly-optimising sequential GHC compiler, and share a common code base. We consider implementations of both dialects using physically shared-memory and message-passing primitives on a commodity eight-core machine, reporting for the first time on a new shared-memory implementation of Eden, and providing new comparative performance results for all four systems. Since the physically- shared memory implementation of GpH implementation is still immature, our testing has therefore revealed several areas for improvement. We evaluate some of those improvements using our benchmarks, and suggest other improvements for future work. 1 Introduction There are a number of parallel implementations of Haskell-based languages. In recent years, efforts have largely focused on distributed implementations, typ- ically exploiting small- to medium-scale clusters of commodity uni- or dual- processors [1], or large-scale computational Grids, distributed over a wide geo- graphical area [2]. Such systems generally work best with coarse-grained, evenly- partitioned parallel programs, with limited communication. However, the recent hardware focus on multicore architectures for mainstream desktop and laptop computing means that fine-grained communication-intensive parallel computing