2009 · 39 citations · 18 references
Cluster ComputingEngineeringComputer ArchitectureComputational ComplexitySoftware AnalysisParallel SoftwareParallel Complexity TheoryTree AutomatonParallel ComputingTree LanguageParallelizing CompilerComputer EngineeringPoor ScalabilityComputer ScienceThird Homomorphism TheoremProgram AnalysisParallel ProgramsParallel ProgrammingParallel Programming ModelData-level Parallelism
Parallel programs on lists have been intensively studied. It is well known that associativity provides a good characterization for divide-and-conquer parallel programs. In particular, the third homomorphism theorem is not only useful for systematic development of parallel programs on lists, but it is also suitable for automatic parallelization. The theorem states that if two sequential programs iterate the same list leftward and rightward, respectively, and compute the same value, then there exists a divide-and-conquer parallel program that computes the same value as the sequential programs.While there have been many studies on lists, few have been done for characterizing and developing of parallel programs on trees. Naive divide-and-conquer programs, which divide a tree at the root and compute independent subtrees in parallel, take time that is proportional to the height of the input tree and have poor scalability with respect to the number of processors when the input tree is ill-balanced.In this paper, we develop a method for systematically constructing scalable divide-and-conquer parallel programs on trees, in which two sequential programs lead to a scalable divide-andconquer parallel program. We focus on paths instead of trees so as to utilize rich results on lists and demonstrate that associativity provides good characterization for scalable divide-and-conquer parallel programs on trees. Moreover, we generalize the third homomorphism theorem from lists to trees.We demonstrate the effectiveness of our method with various examples. Our results, being generalizations of known results for lists, are generic in the sense that they work well for all polynomial data structures.
18
Parallel tree contraction and its application
Gary L. Miller, John H. Reif · 1985 · 409 citations
Mathematical Programming, Engineering, Computer Architecture +23
Gérard Huet · Journal of Functional Programming · 1997 · 308 citations
A simple parallel tree contraction algorithm
Karl Abrahamson, Norm Dadoun, David Kirkpatrick et al. · Journal of Algorithms · 1989 · 245 citations
Generic Programming - An Introduction -
Roland Backhouse, Patrik Jansson, Johan Jeuring et al. · Utrecht University Repository (Utrecht University) · 1999 · 129 citations · Full text