Balanced trees inhabiting functional parallel programming

Akimasa Morihata, Kiminori Matsuzaki

Research output: Chapter in Book/Report/Conference proceedingConference contribution

4 Citations (Scopus)


Divide-and-conquer is an important technique in parallel programming. However, algebraic data structures do not fit divide-and-conquer parallelism. For example, the usual pointer-based implementation of lists cannot efficiently be divided at their middle, which prevents us from developing list-iterating divide-and-conquer parallel programs. Tree-iterating programs possibly face a similar problem, because trees might be ill-balanced and list-like shapes. This paper examines parallel programming based on balanced trees: we consider balanced-tree structures and develop recursive functions on them. By virtue of their balancing nature, either bottom-up or top-down recursive functions exploit divide-and-conquer parallelism. Our main contribution is to demonstrate the promise of this approach. We propose a way of systematically developing balanced trees from parallel algorithms, and then, we show that efficient parallel programs on them can be developed by equational reasoning powered by Reynolds' relational parametricity. We consider functions that operate either lists or binary trees, and show that our methods can uniformly deal with both cases. The developed parallel programs are purely functional, correct by construction, and sometimes even simpler than known algorithms.

Original languageEnglish
Title of host publicationICFP'11 - Proceedings of the 2011 ACM SIGPLAN International Conference on Functional Programming
Number of pages12
Publication statusPublished - 2011
Externally publishedYes
Event16th ACM SIGPLAN International Conference on Functional Programming, ICFP'11 - Tokyo, Japan
Duration: 2011 Sep 192011 Sep 21

Publication series

NameProceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP


Other16th ACM SIGPLAN International Conference on Functional Programming, ICFP'11


  • Balanced tree
  • Divide-and-conquer parallelism
  • Equational reasoning
  • Parametric polymorphism

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'Balanced trees inhabiting functional parallel programming'. Together they form a unique fingerprint.

Cite this