Provably space-efficient parallel functional programming
Provably space-efficient parallel functional programming
复制标题
经证明节省空间的并行函数式编程
DOI:
10.1145/3434299
复制
发表时间:
2021
影响因子:
--
通讯作者:
Acar, Umut A.
中科院分区:
文献类型:
--
作者:
Arora, Jatin;Westrick, Sam;Acar, Umut A.
Because of its many desirable properties, such as its ability to control effects and thus potentially disastrous race conditions, functional programming offers a viable approach to programming modern multicore computers. Over the past decade several parallel functional languages, typically based on dialects of ML and Haskell, have been developed. These languages, however, have traditionally underperformed procedural languages (such as C and Java). The primary reason for this is their hunger for memory, which only grows with parallelism, causing traditional memory management techniques to buckle under increased demand for memory. Recent work opened a new angle of attack on this problem by identifying a memory property of determinacy-race-free parallel programs, called disentanglement, which limits the knowledge of concurrent computations about each other’s memory allocations. The work has showed some promise in delivering good time scalability.In this paper, we present provably space-efficient automatic memory management techniques for determinacy-race-free functional parallel programs, allowing both pure and imperative programs where memory may be destructively updated. We prove that for a program with sequential live memory ofR*, anyP-processor garbage-collected parallel run requires at mostO(R*·P) memory. We also prove a work bound ofO(W+R*P) forP-processor executions, accounting also for the cost of garbage collection. To achieve these results, we integrate thread scheduling with memory management. The idea is to coordinate memory allocation and garbage collection with thread scheduling decisions so that each processor can allocate memory without synchronization and independently collect a portion of memory by consulting a collection policy, which we formulate. The collection policy is fully distributed and does not require communicating with other processors. We show that the approach is practical by implementing it as an extension to the MPL compiler for Parallel ML. Our experimental results confirm our theoretical bounds and show that the techniques perform and scale well.
登录
查看更多内容
DOI:
10.1145/301618.301648
发表时间:
1999-05
期刊:
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
影响因子:
--
作者:
G. Blelloch;P. Cheng
通讯作者:
G. Blelloch;P. Cheng
DOI:
10.1145/2935764.2935801
发表时间:
2016
期刊:
Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures
影响因子:
--
作者:
Utterback, Robert;Agrawal, Kunal;Fineman, Jeremy T.;Lee, I-Ting Angelina
通讯作者:
Lee, I-Ting Angelina
DOI:
--
发表时间:
2016
期刊:
ACM SIGPLAN International Conference on Functional Programming
影响因子:
--
作者:
Umut A. Acar;A. Charguéraud;Mike Rainey;Filip Sieczkowski
通讯作者:
Filip Sieczkowski
DOI:
10.1145/3062341.3062370
发表时间:
2017
期刊:
Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
作者:
Stefan K. Muller;Umut A. Acar;R. Harper
通讯作者:
R. Harper
DOI:
10.4230/lipics.snapl.2015.1
发表时间:
2015
期刊:
ACM Trans. Program. Lang. Syst.
影响因子:
--
作者:
Umut A. Acar;G. Blelloch;M. Fluet;Stefan K. Muller;R. Raghunathan
通讯作者:
R. Raghunathan