Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Algorithmic skeletons: structured management of parallel computation
Algorithmic skeletons: structured management of parallel computation
Towards an automated tupling strategy
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Using MPI: portable parallel programming with the message-passing interface
Using MPI: portable parallel programming with the message-passing interface
Synchronization minimization in a SPMD execution model
Journal of Parallel and Distributed Computing - Special issue on distributed shared memory systems
Exploiting parallelism in functional languages: a “paradigm-oriented” approach
Abstract machine models for highly parallel computers
Tupling calculation eliminates multiple data traversals
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Efficient high-level parallel programming
Theoretical Computer Science - Special issue on parallel computing
Eliminating barrier synchronization for compiler-parallelized codes on software DSMs
International Journal of Parallel Programming - Special issue on languages and compilers for parallel computing. Part I
APL '98 Proceedings of the APL98 conference on Array processing language
FORTRAN 95 Handbook
Research Directions in Parallel Functional Programming
Research Directions in Parallel Functional Programming
The Case for High-Level Parallel Programming in ZPL
IEEE Computational Science & Engineering
Optimization Rules for Programming with Collective Operations
IPPS '99/SPDP '99 Proceedings of the 13th International Symposium on Parallel Processing and the 10th Symposium on Parallel and Distributed Processing
A Transformational Framework for Skeletal Programs: Overview and Case Study
Proceedings of the 11 IPPS/SPDP'99 Workshops Held in Conjunction with the 13th International Parallel Processing Symposium and 10th Symposium on Parallel and Distributed Processing
Factor-Join: A Unique Approach to Compiling Array Languages for Parallel Machines
LCPC '96 Proceedings of the 9th International Workshop on Languages and Compilers for Parallel Computing
Parallel Programming Using Skeleton Functions
PARLE '93 Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe
WITH-Loop-Folding in SAC - Condensing Consecutive Array Operations
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
Shared Memory Multiprocessor Support for 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
WildFire: A Scalable Path for SMPs
HPCA '99 Proceedings of the 5th International Symposium on High Performance Computer Architecture
(De)Composition for Parallel Scan and Reduction
MPPM '97 Proceedings of the Conference on Massively Parallel Programming Models
Algorithm + strategy = parallelism
Journal of Functional Programming
SAC: a functional array language for efficient multi-threaded execution
International Journal of Parallel Programming
Hi-index | 0.00 |
Map- and fold-like skeletons are a suitable abstractions to guide parallel program execution in functional array processing. However, when it comes to achieving high performance, it turns out that confining compilation efforts to individual skeletons is insufficient. This paper proposes compilation schemes which aim at reducing runtime overhead due to communication and synchronization by embedding multiple array skeletons within a so-called spmd meta skeleton. Whereas the meta skeleton exclusively takes responsibility for the organization of parallel program execution, the original array skeletons are focussed to their individual numerical operation. While concrete compilation schemes assume multithreading in a shared memory environment as underlying execution model, ideas can be carried over to other settings straightforwardly. Preliminary performance investigations help to quantify potential benefits.