2009
DOI: 10.1145/1631687.1596563
|View full text |Cite
|
Sign up to set email alerts
|

Runtime support for multicore Haskell

Abstract: Purely functional programs should run well on parallel hardware because of the absence of side effects, but it has proved hard to realise this potential in practice. Plenty of papers describe promising ideas, but vastly fewer describe real implementations with good wall-clock performance. We describe just such an implementation, and quantitatively explore some of the complex design tradeoffs that make such implementations hard to build. Our measurements are necessarily detailed and specific, but they are repro… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
24
0
2

Year Published

2012
2012
2019
2019

Publication Types

Select...
6
2

Relationship

1
7

Authors

Journals

citations
Cited by 43 publications
(26 citation statements)
references
References 25 publications
0
24
0
2
Order By: Relevance
“…When run on a multicore, an instance may comprise multiple Haskell Execution Contexts (HECs) which share the same heap, i.e. the standard shared-memory parallel Haskell implementation of GpH, GHC-SMP (Marlow et al, 2009). These instances are connected to form a collaborating parallel system with a distributed heap, as shown in Figure 10.…”
Section: Paean Thread Managementmentioning
confidence: 99%
See 1 more Smart Citation
“…When run on a multicore, an instance may comprise multiple Haskell Execution Contexts (HECs) which share the same heap, i.e. the standard shared-memory parallel Haskell implementation of GpH, GHC-SMP (Marlow et al, 2009). These instances are connected to form a collaborating parallel system with a distributed heap, as shown in Figure 10.…”
Section: Paean Thread Managementmentioning
confidence: 99%
“…The standard GHC runtime system provides built-in support for parallelism (Marlow et al, 2009), but only on physically shared-memory systems. Drawing on experience with e.g.…”
Section: Built-in Parallelism Support In Ghc: Ghc-smpmentioning
confidence: 99%
“…GpH extends Haskell with two basic primitives to enable semi-explicit parallelism: par for parallel composition and pseq for sequential composition [51,34,35]. The par primitive "sparks" its first argument, i.e.…”
Section: Gph: Glasgow Parallel Haskellmentioning
confidence: 99%
“…The argument to rpar is called a spark. The runtime collects sparks in a pool and uses this as a source of work to do when there are spare processors available, using a technique called work stealing [7]. Sparks may be evaluated at some point in the future, or they might not -it all depends on whether there is spare processor capacity available.…”
Section: Basic Parallelism: the Eval Monadmentioning
confidence: 99%