Responsive Parallelism with Synchronization
Stefan K. Muller, Kyle Singer, Devyn Terra Keeney, Andrew Neth, Kunal Agrawal, I-Ting Angelina Lee, Umut A. Acar
摘要
Many concurrent programs assign priorities to threads to improve responsiveness. When used in conjunction with synchronization mechanisms such as mutexes and condition variables, however, priorities can lead to priority inversions, in which high-priority threads are delayed by low-priority ones. Priority inversions in the use of mutexes are easily handled using dynamic techniques such as priority inheritance, but priority inversions in the use of condition variables are not well-studied and dynamic techniques are not suitable.
In this work, we use a combination of static and dynamic techniques to prevent priority inversion in code that uses mutexes and condition variables. A type system ensures that condition variables are used safely, even while dynamic techniques change thread priorities at runtime to eliminate priority inversions in the use of mutexes. We prove the soundness of our system, using a model of priority inversions based on cost models for parallel programs. To show that the type system is practical to implement, we encode it within the type systems of Rust and C++, and show that the restrictions are not overly burdensome by writing sizeable case studies using these encodings, including porting the Memcached object server to use our C++ implementation.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper2
- Automatic Parallelism ManagementSam Westrick, Matthew Fluet, Mike Rainey, Umut A. AcarPOPL 2024 · 被引用 7 次
- Disentanglement with Futures, State, and InteractionJatin Arora, Stefan K. Muller, Umut A. AcarPOPL 2024
它引用的顶会 Paper2
相关 Paper
- Responsive Parallelism with Dynamic and First-Class PrioritiesMarelle León, My Dinh, Stefan K. MullerPLDI 2026
- A Refinement Methodology for Distributed Programs in RustAurel Bílý, João C. Pereira, Peter MüllerOOPSLA 2025
- On Removing Algorithmic Priority Inversion from Mission-critical Machine Inference PipelinesShengzhong Liu, Shuochao Yao, Xinzhe Fu, Rohan Tabish 等RTSS 2020 · 被引用 53 次
- A Theoretical Approach to Determine the Optimal Size of a Thread Pool for Real-Time SystemsDaniel CasiniRTSS 2022 · 被引用 5 次
- Concrat: An Automatic C-to-Rust Lock API Translator for Concurrent ProgramsJaemin Hong, Sukyoung RyuICSE 2023 · 被引用 17 次
