Sciweavers

HASKELL
2005
ACM

Haskell on a shared-memory multiprocessor

14 years 4 months ago
Haskell on a shared-memory multiprocessor
Multi-core processors are coming, and we need ways to program them. The combination of purely-functional programming and explicit, monadic threads, communicating using transactional memory, looks like a particularly promising way to do so. This paper describes a full-scale implementation of shared-memory parallel Haskell, based on the Glasgow Haskell Compiler. Our main technical contribution is a lock-free mechanism for evaluating shared thunks that eliminates the major performance bottleneck in parallel evaluation of a lazy language. Our results are preliminary but promising: we can demonstrate wall-clock speedups of a serious application (GHC itself), even with only two processors, compared to the same application compiled for a uni-processor. Categories and Subject Descriptors D.3.2 [Language Classifications]: Applicative (functional) languages General Terms Languages, Performance
Tim Harris, Simon Marlow, Simon L. Peyton Jones
Added 26 Jun 2010
Updated 26 Jun 2010
Type Conference
Year 2005
Where HASKELL
Authors Tim Harris, Simon Marlow, Simon L. Peyton Jones
Comments (0)