TY - GEN
T1 - Hierarchical memory management for mutable state
AU - Guatto, Adrien
AU - Westrick, Sam
AU - Raghunathan, Ram
AU - Acar, Umut
AU - Fluet, Matthew
N1 - Publisher Copyright:
© 2018 Copyright held by the owner/author(s).
PY - 2018/2/10
Y1 - 2018/2/10
N2 - 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 approach performs well, significantly improving efficiency over existing functional language implementations.
AB - 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 approach performs well, significantly improving efficiency over existing functional language implementations.
KW - Garbage collection
KW - Hierarchical heaps
KW - Mutation
KW - Parallel functional language implementation
KW - Promotion
UR - http://www.scopus.com/inward/record.url?scp=85044330775&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85044330775&partnerID=8YFLogxK
U2 - 10.1145/3178487.3178494
DO - 10.1145/3178487.3178494
M3 - Conference contribution
AN - SCOPUS:85044330775
T3 - Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
SP - 81
EP - 93
BT - PPoPP 2018 - Proceedings of the 23rd Principles and Practice of Parallel Programming
PB - Association for Computing Machinery
T2 - 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2018
Y2 - 24 February 2018 through 28 February 2018
ER -