Responsive parallelism with futures and state
Stefan K. Muller, Kyle Singer, Noah Goldstein, Umut A. Acar, Kunal Agrawal, I-Ting Angelina Lee
Abstract
Motivated by the increasing shift to multicore computers, recent work has developed language support for responsive parallel applications that mix compute-intensive tasks with latency-sensitive, usually interactive, tasks. These developments include calculi that allow assigning priorities to threads, type systems that can rule out priority inversions, and accompanying cost models for predicting responsiveness. These advances share one important limitation: all of this work assumes purely functional programming. This is a significant restriction, because many realistic interactive applications, from games to robots to web servers, use mutable state, e.g., for communication between threads.
In this paper, we lift the restriction concerning the use of state. We present λ 4 i , a calculus with implicit parallelism in the form of prioritized futures and mutable state in the form of references. Because both futures and references are first-class values, λ 4 i programs can exhibit complex dependencies, including interaction between threads and with the external world (users, network, etc). To reason about the responsiveness of λ 4 i programs, we extend traditional graph-based cost models for parallelism to account for dependencies created via mutable state, and we present a type system to outlaw priority inversions that can lead to unbounded blocking. We show that these techniques are practical by implementing them in C++ and present an empirical evaluation.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 2a073a8e-aaa9-45f2-9ca8-9c194620bfeaCited by top-tier papers5
- Provably space-efficient parallel functional programmingJatin Arora, Sam Westrick, Umut A. AcarPOPL 2021 · 9 citations
- Automatic Parallelism ManagementSam Westrick, Matthew Fluet, Mike Rainey, Umut A. AcarPOPL 2024 · 7 citations
- Efficient Parallel Functional Programming with EffectsJatin Arora, Sam Westrick, Umut A. AcarPLDI 2023 · 6 citations
- Responsive Parallelism with SynchronizationStefan K. Muller, Kyle Singer, Devyn Terra Keeney, Andrew Neth et al.PLDI 2023 · 3 citations
- Disentanglement with Futures, State, and InteractionJatin Arora, Stefan K. Muller, Umut A. AcarPOPL 2024
Related papers
- Responsive Parallelism with Dynamic and First-Class PrioritiesMarelle León, My Dinh, Stefan K. MullerPLDI 2026
- A programming model for semi-implicit parallelization of static analysesDominik Helm, Florian Kübler, Jan Thomas Kölzer, Philipp Haller et al.ISSTA 2020 · 8 citations
- Pipelines and Beyond: Graph Types for ADTs with FuturesFrancis Rinaldi, june wunder, Arthur Azevedo de Amorim, Stefan K. MullerPOPL 2024
- Imperative Compositional Programming: Type Sound Distributive Intersection Subtyping with References via Bidirectional TypingWenjia Ye, Yaozhu Sun, Bruno C. d. S. OliveiraOOPSLA 2024 · 1 citation
- Asynchronous effectsDanel Ahman, Matija PretnarPOPL 2021 · 6 citations
