An APL compiler
Compiling collection-oriented languages onto massively parallel computers
Journal of Parallel and Distributed Computing - Massively parallel computation
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Compilation of Haskell array comprehensions for scientific computing
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
The Case for High-Level Parallel Programming in ZPL
IEEE Computational Science & Engineering
Implementing the NAS Benchmark MG in SAC
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
The Implementation and Efficiency of Arrays in Clean 1.1
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
WITH-Loop-Folding in SAC - Condensing Consecutive Array Operations
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
A Case Study: Effects of WITH-Loop-Folding on the NAS Benchmark MG in SAC
IFL '98 Selected Papers from the 10th International Workshop on 10th International Workshop
On Code Generation for Multi-generator WITH-Loops in SAC
IFL '99 Selected Papers from the 11th International Workshop on Implementation of Functional Languages
NESL: A Nested Data-Parallel Language
NESL: A Nested Data-Parallel Language
Single Assignment C: efficient support for high-level array operations in a functional setting
Journal of Functional Programming
On the effectiveness of functional language features: NAS benchmark FT
Journal of Functional Programming
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Shared memory multiprocessor support for functional array processing in SAC
Journal of Functional Programming
SAC: a functional array language for efficient multi-threaded execution
International Journal of Parallel Programming
Merging compositions of array skeletons in SAC
Parallel Computing - Algorithmic skeletons
SAC: off-the-shelf support for data-parallelism on multicores
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Controlling chaos: on safe side-effects in data-parallel operations
Proceedings of the 4th workshop on Declarative aspects of multicore programming
On optimising shape-generic array programs using symbolic structural information
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
StagedSAC: a case study in performance-oriented DSL development
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
With-Loop fusion for data locality and parallelism
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
CEFP'11 Proceedings of the 4th Summer School conference on Central European Functional Programming School
Hi-index | 0.00 |
Construction of complex array operations by composition of more basic ones allows for abstract and concise specifications of algorithms. Unfortunately, naïve compilation of such specifications leads to creation of many temporary arrays at runtime and, consequently, to poor performance characteristics. This paper elaborates on a new compiler optimization, named with-loop-scalarization, which aims at eliminating temporary arrays in the context of nested array operations. It is based on with-loops, a versatile array comprehension construct used by the functional array language SaC both for specification as well as for internal representation of array operations. The impact of with-loop-scalarization on the runtime performance of compiled SaC code is demonstrated by several experiments involving support for arithmetic on arrays of complex numbers and the application kernel FT from the NAS benchmark suite.