2010
DOI: 10.1145/1932681.1863582
|View full text |Cite
|
Sign up to set email alerts
|

Regular, shape-polymorphic, parallel arrays in Haskell

Abstract: We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of our approach are that it (1) is purely functional, (2) supports reuse through shape polymorphism, (3) avoids unnecessary intermediate structures rather than relying on subsequent loop fusion, and (4) supports transparent parallelisation.We show how to embed two forms of shape polymorphism into Haskell's type system using type classes and type families. In particular, we discuss the generalisation of regular arra… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
38
0

Year Published

2012
2012
2018
2018

Publication Types

Select...
5
1
1

Relationship

0
7

Authors

Journals

citations
Cited by 36 publications
(38 citation statements)
references
References 16 publications
0
38
0
Order By: Relevance
“…Also, the parallelism must undoubtedly play an important role. Fortunately, there are plenty of the parallel computation functionalities in Haskell, such as Regular Parallel Arrays [16] and parallel package [22], and another book by Marlow [21] on general topics in parallelism in Haskell. Also, there is an existing work by Lobachev et al [20] on parallel symbolic computation in Eden, a dialect of Haskell with parallelism support.…”
Section: Discussionmentioning
confidence: 99%
“…Also, the parallelism must undoubtedly play an important role. Fortunately, there are plenty of the parallel computation functionalities in Haskell, such as Regular Parallel Arrays [16] and parallel package [22], and another book by Marlow [21] on general topics in parallelism in Haskell. Also, there is an existing work by Lobachev et al [20] on parallel symbolic computation in Eden, a dialect of Haskell with parallelism support.…”
Section: Discussionmentioning
confidence: 99%
“…In the fast path, we optimistically write the value val in field, and then check whether obj was the master copy (l. [19][20]. Otherwise, we find the master copy, write the value, and unlock (l. [21][22][23].…”
Section: Implementation Of the High-level Primitivesmentioning
confidence: 99%
“…We proceed in three phases. First, we lock in exclusive mode all the heaps on the path from ptr to the master copy of obj from the bottom up (l. [15][16][17][18][19][20][21][22][23]. Then, we promote obj and write the address of the promoted copy to field (l. [24][25].…”
Section: Implementation Of the High-level Primitivesmentioning
confidence: 99%
See 1 more Smart Citation
“…Cooperatively threaded languages such as NESL (Blelloch et al, 1994), Cilk (Frigo et al, 1998), parallel Haskell (Chakravarty et al, 2007Keller et al, 2010) and parallel ML (Fluet et al, 2011;Jagannathan et al, 2010;Raghunathan et al, 2016), have at least two important features:…”
Section: Introductionmentioning
confidence: 99%