Provably Efficient Coscheduling of Computation and Memory through Disentanglement

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. This has led to the development of several parallel functional languages, typically based on dialects of ML and Haskell. However, these languages have traditionally underperformed compared to procedural languages such as C and Java. The primary reason for this underperformance has been the lack of scalable memory management techniques that can match the increased demand of memory in parallel execution. Building on a long line of work on parallel memory management, this thesis proposes provably efficient techniques for managing memory in parallel functional programs. The key idea behind our techniques is to coschedule the parallel computation with its data, enabling the memory manager to exploit the disentanglement hypothesis—the idea that parallel tasks of a program largely execute independently and avoid side-effecting data that may be accessed by others–for efficiency. We implement these techniques in the MPL compiler for parallel ML, and our experimental results show that the techniques can marry the safety benefits of functional programming with performance.

Institutions

Publication Details

Journal
Figshare
Published
2025-01-01
DOI
https://doi.org/10.1184/r1/28369616.v1
Primary Topic
Parallel Computing and Optimization Techniques
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Provably Efficient Coscheduling of Computation and Memory through Disentanglement

Figshare
Parallel Computing and Optimization Techniques
article

Provably Efficient Coscheduling of Computation and Memory through Disentanglement

article en

Abstract

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. This has led to the development of several parallel functional languages, typically based on dialects of ML and Haskell. However, these languages have traditionally underperformed compared to procedural languages such as C and Java. The primary reason for this underperformance has been the lack of scalable memory management techniques that can match the increased demand of memory in parallel execution. Building on a long line of work on parallel memory management, this thesis proposes provably efficient techniques for managing memory in parallel functional programs. The key idea behind our techniques is to coschedule the parallel computation with its data, enabling the memory manager to exploit the disentanglement hypothesis—the idea that parallel tasks of a program largely execute independently and avoid side-effecting data that may be accessed by others–for efficiency. We implement these techniques in the MPL compiler for parallel ML, and our experimental results show that the techniques can marry the safety benefits of functional programming with performance.

Figshare
Carnegie Mellon University (US)
Openalex Percentile: Top 55%
Parallel Computing and Optimization Techniques
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.