Efficient Tree-Traversals: Reconciling Parallelism and Dense Data Representations
Chaitanya Koparkar, Mike Rainey, Michael Vollmer, Milind Kulkarni,, Ryan R. Newton

TL;DR
This paper introduces Parallel Gibbon, a compiler that balances dense data representations with parallel processing, achieving improved performance in functional programs involving recursive algebraic datatypes.
Contribution
It formalizes a semantics for parallel location calculus and demonstrates a practical, type-safe approach to combining data density with parallelism in functional program compilation.
Findings
Parallel Gibbon outperforms existing compilers in parallel performance.
The approach maintains type safety while optimizing for dense data and parallelism.
Significant speedups are achieved in compiler-related recursive data processing tasks.
Abstract
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
