ACM Home Page
Please provide us with feedback. Feedback
The third homomorphism theorem on trees: downward & upward lead to divide-and-conquer
Full text PdfPdf (218 KB)
Source
Annual Symposium on Principles of Programming Languages archive
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Savannah, GA, USA
SESSION: Functional programming table of contents
Pages 177-185  
Year of Publication: 2009
ISBN:978-1-60558-379-2
Also published in ...
Authors
Akimasa Morihata  University of Tokyo, Tokyo, Japan
Kiminori Matsuzaki  University of Tokyo, Tokyo, Japan
Zhenjiang Hu  National Institute of Informatics, Tokyo, Japan
Masato Takeichi  University of Tokyo, Tokyo, Japan
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 19,   Downloads (12 Months): 149,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1480881.1480905
What is a DOI?

ABSTRACT

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Roland Carl Backhouse, Patrik Jansson, Johan Jeuring, and Lambert G. L. T. Meertens. Generic programming: An introduction. In Advanced Functional Programming, pages 28--115, 1998.
 
3
4
 
5
Murray Cole. Parallel programming, list homomorphisms and the maximum segment sum problem. In Parallel Computing: Trends and Applications, PARCO 1993, Grenoble, France, pages 489--492. Elsevier, 1994.
 
6
Murray Cole. Parallel programming with list homomorphisms. Parallel Processing Letters, 5:191--203, 1995.
 
7
Richard Cole and Uzi Vishkin. The accelerated centroid decomposition technique for optimal parallel tree evaluation in logarithmic time. Algorithmica, 3:329--346, 1988.
 
8
Maarten M. Fokkinga. Tupling and mutumorphisms. In Squiggolist, volume 1(4), 1989.
 
9
 
10
 
11
 
12
Jeremy Gibbons. The third homomorphism theorem. Journal of Functional Programming, 6(4):657--665, 1996.
 
13
14
15
 
16
 
17
Kiminori Matsuzaki. Parallel Programming with Tree Skeletons. PhD thesis, Graduate School of Information Science and Technology, The University of Tokyo, 2007.
 
18
Kiminori Matsuzaki and Zhenjiang Hu. Implementation of tree skeletons on distributed-memory parallel computers. Technical Report METR 2006-65, Department of Mathematical Informatics, University of Tokyo, December 2006.
 
19
Kiminori Matsuzaki, Zhenjiang Hu, and Masato Takeichi. Parallelization with tree skeletons. In Euro-Par 2003. Parallel Processing, 9th International Euro-Par Conference, Klagenfurt, Austria, August 26-29, 2003. Proceedings, volume 2790 of Lecture Notes in Computer Science, pages 789--798. Springer, 2003.
 
20
Conor McBride. The derivative of a regular type is its type of one-hole contexts. Unpublished manuscript, 2001.
 
21
 
22
Akimasa Morihata and Kiminori Matsuzaki. A tree contraction algorithm on non-binary trees. Technical Report METR 2008-27, Department of Mathematical Informatics, University of Tokyo, 2008.
23
 
24
Simon Peyton Jones, editor. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, 2003.
 
25
 
26

Collaborative Colleagues:
Akimasa Morihata: colleagues
Kiminori Matsuzaki: colleagues
Zhenjiang Hu: colleagues
Masato Takeichi: colleagues