Competitive Parallelism: Getting Your Priorities Right
Stefan K. Muller, Umut A. Acar, Robert Harper

TL;DR
This paper introduces techniques for programming parallel interactive applications that combine cooperative and competitive threading, using a modal type system and cost model to ensure responsiveness and prevent priority-inversion bugs.
Contribution
It presents a novel approach integrating cooperative and competitive threading with a modal type system and cost model, implemented as an extension to Standard ML.
Findings
Type system prevents priority-inversion bugs
Cost model enables reasoning about responsiveness
Implementation demonstrates practicality
Abstract
Multi-threaded programs have traditionally fallen into one of two domains: cooperative and competitive. These two domains have traditionally remained mostly disjoint, with cooperative threading used for increasing throughput in compute-intensive applications such as scientific workloads and cooperative threading used for increasing responsiveness in interactive applications such as GUIs and games. As multicore hardware becomes increasingly mainstream, there is a need for bridging these two disjoint worlds, because many applications mix interaction and computation and would benefit from both cooperative and competitive threading. In this paper, we present techniques for programming and reasoning about parallel interactive applications that can use both cooperative and competitive threading. Our techniques enable the programmer to write rich parallel interactive programs by creating and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
