Responsive Parallel Computation: Bridging Competitive and Cooperative Threading
Competitive and cooperative threading are widely used abstractions in computing. In competitive threading, threads are scheduled preemptively with the goal of minimizing response time, usually of interactive applications. In cooperative threading, threads are scheduled non-preemptively with the goal of maximizing throughput or minimizing the completion time, usually in compute-intensive applications, e.g. scientific computing, machine learning and AI.
Although both of these forms of threading rely on the same abstraction of a thread, they have, to date, remained largely separate forms of computing. Motivated by the recent increase in the mainstream use of multicore computers, we propose a threading model that aims to unify competitive and cooperative threading. To this end, we extend the classic graph-based cost model for cooperative threading to allow for competitive threading, and describe how such a cost model may be used in a programming language by presenting a language and a corresponding cost semantics. Finally, we show that the cost model and the semantics are realizable by presenting an operational semantics for the language that specifies the behavior of an implementation, and presenting an implementation and a small empirical evaluation.
Wed 21 Jun
|10:20 - 10:45|
|10:45 - 11:10|
Thomas WuerthingerOracle Labs, Christian Wimmer, Christian HumerOracle Labs, Switzerland, Andreas WoessOracle Labs, Lukas StadlerOracle Labs, Austria, Chris SeatonOracle Labs, Gilles DuboscqOracle Labs, Doug SimonOracle Labs, Matthias GrimmerOracle Labs, AustriaMedia Attached
|11:10 - 11:35|
|11:35 - 12:00|
StreamQRE: Modular Specification and Efficient Evaluation of Quantitative Queries over Streaming Data
Konstantinos MamourasUniversity of Pennsylvania, Mukund RaghotamanUniversity of Pennsylvania, Rajeev AlurUniversity of Pennsylvania, Zachary G. IvesUniversity of Pennsylvania, Sanjeev KhannaUniversity of PennsylvaniaMedia Attached