2012
DOI: 10.1145/2430532.2364511
|View full text |Cite
|
Sign up to set email alerts
|

Guiding parallel array fusion with indexed types

Abstract: We present a refined approach to parallel array fusion that uses indexed types to specify the internal representation of each array. Our approach aids the client programmer in reasoning about the performance of their program in terms of the source code. It also makes the intermediate code easier to transform at compile-time, resulting in faster compilation and more reliable runtimes. We demonstrate how our new approach improves both the clarity and performance of several end-user written programs, including a … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
15
0

Year Published

2013
2013
2020
2020

Publication Types

Select...
3
3
2

Relationship

2
6

Authors

Journals

citations
Cited by 12 publications
(15 citation statements)
references
References 16 publications
0
15
0
Order By: Relevance
“…Single Assignment C [10] is a notable language with built-in n-array support. Other languages have wellestablished array libraries, like the C++ libraries Blitz++ [30] and Boost.MultiArray [9] and Haskell's Repa (Regular Parallel Arrays) [15,20,21]. These libraries leverage the static semantics of their host languages to define n-arrays inductively as the outer product of a 1-array with an (n 1)-array [1].…”
Section: Array Librariesmentioning
confidence: 99%
“…Single Assignment C [10] is a notable language with built-in n-array support. Other languages have wellestablished array libraries, like the C++ libraries Blitz++ [30] and Boost.MultiArray [9] and Haskell's Repa (Regular Parallel Arrays) [15,20,21]. These libraries leverage the static semantics of their host languages to define n-arrays inductively as the outer product of a 1-array with an (n 1)-array [1].…”
Section: Array Librariesmentioning
confidence: 99%
“…It allows computation over highrank arrays to be expressed in a type-safe manner, and at the same time enables implicit parallel execution on multi-core CPUs with aggressive array fusion guided by indexed types [12]. Consider the following Repa program map2: In the above program, both a and b are two-dimensional arrays, where a is fully manifest (type-indexed by U), and b represents a 'delayed' computation (type-indexed by D) based on the input array a.…”
Section: Overview Of Repamentioning
confidence: 99%
“…This is often the case, but sometimes the situation is more complex than appears at first glance. To paraphrase an example given by Lippmeier, et al [12]:…”
Section: Strictnessmentioning
confidence: 99%
See 1 more Smart Citation
“…The compiler must cope with boxed numeric types, handle lazy evaluation, and eliminate intermediate data structures. However, the Glasgow Haskell Compiler has become "sufficiently smart" that Haskell libraries for expressing numerical computations, such as Repa [17,21], no longer have to sacrifice speed at the altar of abstraction.…”
Section: Introductionmentioning
confidence: 99%