Results 1 -
3 of
3
Flattening is an Improvement
, 2000
"... ) James Riely 1 and Jan Prins 2 1 DePaul University 2 University of North Carolina at Chapel Hill Abstract. Flattening is a program transformation that eliminates nested parallel constructs, introducing flat parallel (vector) operations in their place. We define a sufficient syntactic conditio ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
) James Riely 1 and Jan Prins 2 1 DePaul University 2 University of North Carolina at Chapel Hill Abstract. Flattening is a program transformation that eliminates nested parallel constructs, introducing flat parallel (vector) operations in their place. We define a sufficient syntactic condition for the correctness of flattening, providing a static approximation of Blelloch's "containment". This is acheived using a typing system that tracks the control flow of programs. Using a weak improvement preorder, we then show that the flattening transformations are intensionally correct for all well-typed programs. 1 Introduction The study of program transformations has largely been concerned with functional correctness, i.e. whether program transformations preserve program meaning. However, if we include an execution cost-model as part of the programming language semantics, then we can ask whether program transformations additionally preserve or "improve" program performance. One progra...
Costing Nested Array Codes
"... We discuss a language-based cost model for array programs build on the notions of work complexity and parallel depth. The programs operate over data structures comprising nested arrays and recursive product-sum types. In a purely functional setting, such programs can be implemented by way of the fla ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
We discuss a language-based cost model for array programs build on the notions of work complexity and parallel depth. The programs operate over data structures comprising nested arrays and recursive product-sum types. In a purely functional setting, such programs can be implemented by way of the flattening transformation that converts codes over nested arrays into vectorised code over flat arrays.
Partial Evaluation of Shaped Programs: Experience with FISh
, 1999
"... FISh is an array-based programming language that combines imperative and functional programming styles. Static shape analysis uses partial evaluation to convert arbitrary programs into simple, efficient imperative programs. ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
FISh is an array-based programming language that combines imperative and functional programming styles. Static shape analysis uses partial evaluation to convert arbitrary programs into simple, efficient imperative programs.

