An introduction to the theory of lists
Proceedings of the NATO Advanced Study Institute on Logic of programming and calculi of discrete design
A simple parallel tree contraction algorithm
Journal of Algorithms
Scans as Primitive Parallel Operations
IEEE Transactions on Computers
Implementation of a portable nested data-parallel language
Journal of Parallel and Distributed Computing - Special issue on data parallel algorithms and programming
Efficient parallel algorithms for tree accumulations
Science of Computer Programming
Foundations of parallel programming
Foundations of parallel programming
Parallel implementation of tree skeletons
Journal of Parallel and Distributed Computing
Algebra of programming
More general parallel tree contraction: register allocation and broadcasting in a tree
Theoretical Computer Science - Special issue: graph theoretic concepts in computer science
Introduction to Algorithms
Introduction to Functional Programming
Introduction to Functional Programming
HiPC '02 Proceedings of the 9th International Conference on High Performance Computing
Piecewise Execution of Nested Data-Parallel Programs
LCPC '95 Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing
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
Patterns and skeletons for parallel and distributed computing
Patterns and skeletons for parallel and distributed computing
Parallelization via Context Preservatio
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
A report on the first year of the INitiative for the evaluation of XML retrieval (INEX'02)
Journal of the American Society for Information Science and Technology
A new parallel skeleton for general accumulative computations
International Journal of Parallel Programming
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
A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers
Software—Practice & Experience - Focus on Selected PhD Literature Reviews in the Practical Aspects of Software Technology
Balanced trees inhabiting functional parallel programming
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Macro tree transformations of linear size increase achieve cost-optimal parallelism
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
Hi-index | 0.00 |
Trees are important datatypes that are often used in representing structured data such as XML. Though trees are widely used in sequential programming, it is hard to write efficient parallel programs manipulating trees, because of their irregular and ill-balanced structures. In this paper, we propose a solution based on the skeletal approach. We formalize a set of skeletons (abstracted computational patterns) for rose trees (general trees of arbitrary shapes) based on the theory of Constructive Algorithmics. Our skeletons for rose trees are extensions of those proposed for lists and binary trees. We show that we can implement the skeletons efficiently in parallel, by combining the parallel binary-tree skeletons for which efficient parallel implementations are already known. As far as we are aware, we are the first who have formalized and implemented a set of simple but expressive parallel skeletons for rose trees.