3 research outputs found
Efficient Tree-Traversals: Reconciling Parallelism and Dense Data Representations
Recent work showed that compiling functional programs to use dense,
serialized memory representations for recursive algebraic datatypes can yield
significant constant-factor speedups for sequential programs. But serializing
data in a maximally dense format consequently serializes the processing of that
data, yielding a tension between density and parallelism. This paper shows that
a disciplined, practical compromise is possible. We present Parallel Gibbon, a
compiler that obtains the benefits of dense data formats and parallelism. We
formalize the semantics of the parallel location calculus underpinning this
novel implementation strategy, and show that it is type-safe. Parallel Gibbon
exceeds the parallel performance of existing compilers for purely functional
programs that use recursive algebraic datatypes, including, notably,
abstract-syntax-tree traversals as in compilers