Efficient and Scalable Parallel Functional Programming Through Disentanglement
summary
Claims a practical system that exploits a memory property called disentanglement by partitioning memory into a tree of heaps so task-local allocations and garbage collections run independently. Implements LGC (local GC) and CGC (concurrent GC) inside the MPL ("maple") compiler and a runtime with an entanglement-detection read barrier built from a live computation graph. On 72 cores it achieves up to 60x speedup versus sequential ML, matches C++ memory footprints on average, often uses less space than Milton, and outperforms Go/Java (≈2x/3–4x), with an order-of-magnitude win on tokenization.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:39Parallel Hardware Today
- 2:39Parallel Programming
- 6:31MaPLe Compiler
- 8:24Parallel ML Benchmark Suite
- 18:35Disentanglement
- 22:41Nested Fork/Join Parallelism
- 25:03Disentangled Memory Management
- 31:47theorem [Westrick et al. POPL 20] determinacy-race-free programs are disentangled
- 36:04Entanglement Detection
- 40:44Writing Disentangled Programs
- 45:08Summary
