Hierarchical Memory Management for Mutable State
Adrien Guatto, Sam Westrick, Ram Raghunathan, Umut Acar, Matthew Fluet

TL;DR
This paper introduces a hierarchical memory management technique that couples memory and thread scheduling to enable efficient in-place mutation in parallel functional languages, improving performance over existing implementations.
Contribution
It presents novel algorithms for efficient mutation in parallel functional languages by integrating memory management with thread scheduling, implemented in the MLton compiler.
Findings
Significant performance improvements over existing functional language implementations.
Effective support for in-place updates in parallel functional programming.
Empirical evaluation demonstrates the approach's efficiency.
Abstract
It is well known that modern functional programming languages are naturally amenable to parallel programming. Achieving efficient parallelism using functional languages, however, remains difficult. Perhaps the most important reason for this is their lack of support for efficient in-place updates, i.e., mutation, which is important for the implementation of both parallel algorithms and the run-time system services (e.g., schedulers and synchronization primitives) used to execute them. In this paper, we propose techniques for efficient mutation in parallel functional languages. To this end, we couple the memory manager with the thread scheduler to make reading and updating data allocated by nested threads efficient. We describe the key algorithms behind our technique, implement them in the MLton Standard ML compiler, and present an empirical evaluation. Our experiments show that the…
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.
