Seq no more: Better Strategies for Parallel Haskell

Simon Marlow, Patrick Maier, Hans Wolfgang Loidl, Mustafa K. Aswad, Phil Trinder

Research output: Chapter in Book/Report/Conference proceedingConference contribution

32 Citations (Scopus)


We present a complete redesign of evaluation strategies, a key abstraction for specifying pure, deterministic parallelism in Haskell. Our new formulation preserves the compositionality and modularity benefits of the original, while providing significant new benefits. First, we introduce an evaluation-order monad to provide clearer, more generic, and more efficient specification of parallel evaluation. Secondly, the new formulation resolves a subtle space management issue with the original strategies, allowing parallelism (sparks) to be preserved while reclaiming heap associated with superfluous parallelism. Related to this, the new formulation provides far better support for speculative parallelism as the garbage collector now prunes unneeded speculation. Finally, the new formulation provides improved compositionality: we can directly express parallelism embedded within lazy data structures, producing more compositional strategies, and our basic strategies are parametric in the coordination combinator, facilitating a richer set of parallelism combinators.

We give measurements over a range of benchmarks demonstrating that the runtime overheads of the new formulation relative to the original are low, and the new strategies even yield slightly better speedups on average than the original strategies.

Original languageEnglish
Title of host publicationHaskell'10 - Proceedings of the 2010 ACM SIGPLAN Haskell Symposium, Co-located with ICFP'10
PublisherAssociation for Computing Machinery
Number of pages12
ISBN (Print)9781450302524
Publication statusPublished - Sept 2010
Event2010 ACM SIGPLAN Haskell Symposium - Baltimore, MD, United States
Duration: 30 Sept 201030 Sept 2010


Conference2010 ACM SIGPLAN Haskell Symposium
Abbreviated titleHaskell'10
Country/TerritoryUnited States
CityBaltimore, MD


  • parallel functional programming
  • strategies


Dive into the research topics of 'Seq no more: Better Strategies for Parallel Haskell'. Together they form a unique fingerprint.

Cite this