Conc-trees for functional and parallel programming

10Citations
Citations of this article
9Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Parallel algorithms can be expressed more concisely in a functional programming style. This task is made easier through the use of proper sequence data structures, which allow splitting the data structure between the processors as easily as concatenating several data structures together. Efficient update, split and concatenation operations are essential for declarative-style parallel programs. This paper shows a functional data structure that can improve the efficiency of parallel programs. The paper introduces two Conc-Tree variants: the Conc-Tree list, which provides worst-case O(log n) time lookup, update, split and concatenation operations, and the Conc-Tree rope, which additionally provides amortized O(1) time append and prepend operations. The paper demonstrates how Conc-Trees implement efficient mutable sequences, evaluates them against similar persistent and mutable data structures, and shows up to 3× performance improvements when applying Conc-Trees to data-parallel operations.

Cite

CITATION STYLE

APA

Prokopec, A., & Odersky, M. (2016). Conc-trees for functional and parallel programming. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 9519, pp. 254–268). Springer Verlag. https://doi.org/10.1007/978-3-319-29778-1_16

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free