Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Advanced compiler optimizations for supercomputers
Communications of the ACM - Special issue on parallelism
An APL compiler
Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
Fortran 90 handbook: complete ANSI/ISO reference
Fortran 90 handbook: complete ANSI/ISO reference
Compiler transformations for high-performance computing
ACM Computing Surveys (CSUR)
APL '85 Proceedings of the international conference on APL: APL and the future
High Performance Compilers for Parallel Computing
High Performance Compilers for Parallel Computing
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
VAL- ORIENTED ALGORITHMIC LANGUAGE, PRELIMINARY REFERENCE MANUAL
VAL- ORIENTED ALGORITHMIC LANGUAGE, PRELIMINARY REFERENCE MANUAL
A mathematics of arrays
A programming language
Accelerating APL programs with SAC
Proceedings of the conference on APL '99 : On track to the 21st century: On track to the 21st century
More types for nested data parallel programming
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Refined Description of the C[] Language
Programming and Computing Software
High-level Language Support for User-defined Reductions
The Journal of Supercomputing
Implementing the NAS Benchmark MG in SAC
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
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
Shared Memory Multiprocessor Support for SAC
IFL '98 Selected Papers from the 10th International Workshop on 10th International Workshop
Improving Cache Effectiveness through Array Data Layout Manipulation in SAC
IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
A Compilation Scheme for a Hierarchy of Array Types
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
Optimizations on Array Skeletons in a Shared Memory Environment
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
An SPMD/SIMD parallel tokenizer for APL
Proceedings of the 2003 conference on APL: stretching the mind
Bitslice: representation without taxation
Proceedings of the 2003 conference on APL: stretching the mind
Single Assignment C: efficient support for high-level array operations in a functional setting
Journal of Functional Programming
Tile Reduction: The First Step towards Tile Aware Parallelization in OpenMP
IWOMP '09 Proceedings of the 5th International Workshop on OpenMP: Evolving OpenMP in an Age of Extreme Parallelism
Parallelization of DNA sequence alignment using OpenMP
Proceedings of the 2011 International Conference on Communication, Computing & Security
An approach for semiautomatic locality optimizations using OpenMP
PARA'10 Proceedings of the 10th international conference on Applied Parallel and Scientific Computing - Volume 2
Hi-index | 0.00 |
Most of the existing high-level array-processing languages support a fixed set of pre-defined array operations and a few higher-order functions for constructing new array operations from existing ones. In this paper, we discuss a more general approach made feasible by SAC (for Single Assignement C), a functional variant of C.SAC provides a meta-level language construct called WITH-loop which may be considered a sophisticated variant of the FORALL-loops in HPF or of array comprehensions in functional languages. It allows for the element-wise specification of high-level operations on arrays of any dimensionality: any set of high-level array operations can be specified by means of WITH-loops and be made available in a library. This not only improves the flexibility of specifications, but also simplifies the compilation process.By means of a few examples it is shown that the high-level operations that are typically available in array processing languages such as APL or FORTRAN90 can be easily specified as WITH-loops in SAC. Furthermore, we briefly outline the most important optimization techniques used in the current SAC compiler for achieving efficiently executable code.The paper finally presents a performance comparison between a high-level specification for the multigrid relaxation kernel of the NAS benchmarks in SAC on the one hand and low-level specifications in SISAL and in FORTRAN77 on the other hand. It shows that the SAC implementation, despite its higher level of abstraction, is competitive with the other two both in terms of program runtimes and memory consumption.