Applications of a strategy for designing divide-and-conquer algorithms
Science of Computer Programming
Scans as Primitive Parallel Operations
IEEE Transactions on Computers
Vector models for data-parallel computing
Vector models for data-parallel computing
Introduction to parallel algorithms and architectures: array, trees, hypercubes
Introduction to parallel algorithms and architectures: array, trees, hypercubes
Algorithmic skeletons: structured management of parallel computation
Algorithmic skeletons: structured management of parallel computation
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
A new approach to recursion removal
Theoretical Computer Science
Powerlist: a structure for parallel recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Foundations of parallel programming
Foundations of parallel programming
Massive parallelization of divide-and-conquer algorithms over powerlists
Science of Computer Programming - Special issue on mathematics of program construction
Type-driven defunctionalization
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Parallel Programming Using Skeleton Functions
PARLE '93 Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe
Systematic Extraction and Implementation of Divide-and-Conquer Parallelism
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Systematic Efficient Parallelization of Scan and Other List Homomorphisms
Euro-Par '96 Proceedings of the Second International Euro-Par Conference on Parallel Processing-Volume II
Flexible Program and Architecture Specification for Massively Parallel Systems
CONPAR 94 - VAPP VI Proceedings of the Third Joint International Conference on Vector and Parallel Processing: Parallel Processing
Loop Parallelization in the Polytope Model
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
Synthesis-for-scan and scan chain ordering
VTS '96 Proceedings of the 14th IEEE VLSI Test Symposium
A formal model for divide-and-conquer and its parallel realization
A formal model for divide-and-conquer and its parallel realization
Nepal - Nested Data Parallelism in Haskell
Euro-Par '01 Proceedings of the 7th International Euro-Par Conference Manchester on Parallel Processing
Transforming rapid prototypes to efficient parallel programs
Patterns and skeletons for parallel and distributed computing
Compilation of a specialized functional language for massively parallel computers
Journal of Functional Programming
In search of a program generator to implement generic transformations for high-performance computing
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Coordinating computation with communication
COORDINATION'06 Proceedings of the 8th international conference on Coordination Models and Languages
Hi-index | 0.00 |
We present a hierarchical classification of specializations of the divide-and-conquer paradigm. The aim is to identify a subclass of divide-and-conquer algorithms with an efficient parallel implementation which can be viewed as a static space-time mapping. The specializations impose a balanced call tree, a fixed degree of the problem division, and elementwise operations. The correctness of our compile-time transformations is proved by equational reasoning in Haskell; recursion and iteration are handled by induction. We demonstrate the practicality of the skeleton by some examples, one of which is Strassen's matrix multiplication.