An optimal parallel algorithm for dynamic expression evaluation and its applications
Proc. of the sixth conference on Foundations of software technology and theoretical computer science
Dynamic parallel complexity of computational circuits
STOC '87 Proceedings of the nineteenth annual ACM symposium on Theory of computing
A simple parallel tree contraction algorithm
Journal of Algorithms
Algorithmic skeletons: structured management of parallel computation
Algorithmic skeletons: structured management of parallel computation
Efficient parallel evaluation of CSG tree using fixed number of processors
SMA '93 Proceedings on the second ACM symposium on Solid modeling and applications
Parallelizing complex scans and reductions
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Optimal routing of parentheses on the hypercube
Journal of Parallel and Distributed Computing
Foundations of parallel programming
Foundations of parallel programming
Parallel implementation of tree skeletons
Journal of Parallel and Distributed Computing
The Dynamic Parallel Complexity of Computational Circuits
SIAM Journal on Computing
Introduction to Algorithms
HiPC '02 Proceedings of the 9th International Conference on High Performance Computing
EDBT '02 Proceedings of the Worshops XMLDM, MDDE, and YRWS on XML-Based Data Management and Multimedia Engineering-Revised Papers
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
Parallelization via Context Preservatio
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Compiler Optimization of Implicit Reductions for Distributed Memory Multiprocessors
IPPS '98 Proceedings of the 12th. International Parallel Processing Symposium on International Parallel Processing Symposium
A library of constructive skeletons for sequential style of parallel programming
InfoScale '06 Proceedings of the 1st international conference on Scalable information systems
Calculational parallel programming: parallel programming with homomorphism and mapreduce
Proceedings of the fourth international workshop on High-level parallel programming and applications
Automatic parallelization via matrix multiplication
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Balanced trees inhabiting functional parallel programming
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Automatic parallelization of recursive functions using quantifier elimination
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Scan detection and parallelization in "inherently sequential" nested loop programs
Proceedings of the Tenth International Symposium on Code Generation and Optimization
A short cut to parallelization theorems
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
Hi-index | 0.00 |
Tree contraction algorithms, whose idea was first proposed by Miller and Reif, are important parallel algorithms to implement efficient parallel programs manipulating trees. Despite their efficiency, the tree contraction algorithms have not been widely used due to the difficulties in deriving the tree contracting operations. In particular, the derivation of the tree contracting operations is much difficult when multiple values are referred and updated in each step of the contractions. Such computations often appear in dynamic programming problems on trees. In this paper, we propose an algebraic approach to deriving tree contraction programs from recursive tree programs, by focusing on the properties of commutative semirings. We formalize a new condition for implementing tree reductions with the tree contraction algorithms, and give a systematic derivation of the tree contracting operations. Based on it, we implemented a code generator for tree reductions, which has an optimization mechanism that can remove unnecessary computations in the derived parallel programs. As far as we are aware, this is the first step towards an automatic parallelization system for the development of efficient tree programs.