Affiliation:
1. Carnegie Mellon University
2. Rochester Institute of Technology
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 approach performs well, significantly improving efficiency over existing functional language implementations.
Funder
German Research Council
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference35 articles.
1. {n. d.}. Stanford Large Network Dataset Collection. http://snap.stanford.edu/. ({n. d.}). {n. d.}. Stanford Large Network Dataset Collection. http://snap.stanford.edu/. ({n. d.}).
2. Umut A. Acar Guy Blelloch Matthew Fluet and Stefan K. Mullerand Ram Raghunathan. 2015. Coupling Memory and Computation for Locality Management. In Summit on Advances in Programming Languages (SNAPL). Umut A. Acar Guy Blelloch Matthew Fluet and Stefan K. Mullerand Ram Raghunathan. 2015. Coupling Memory and Computation for Locality Management. In Summit on Advances in Programming Languages (SNAPL).
3. The Data Locality of Work Stealing
4. Optimizations in a private nursery-based garbage collector
5. Simple generational garbage collection and fast allocation
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Disentanglement with Futures, State, and Interaction;Proceedings of the ACM on Programming Languages;2024-01-05
2. Automatic Parallelism Management;Proceedings of the ACM on Programming Languages;2024-01-05
3. DisLog: A Separation Logic for Disentanglement;Proceedings of the ACM on Programming Languages;2024-01-05
4. Efficient Parallel Functional Programming with Effects;Proceedings of the ACM on Programming Languages;2023-06-06
5. Evaluating Functional Memory-Managed Parallel Languages for HPC using the NAS Parallel Benchmarks;2023 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW);2023-05