一句话:为响应式并行程序引入线程优先级与公平调度,提出公平及时调度原则并证明执行与响应时间界。
并行计算正扩展到需与用户或外部世界交互的交互式并行应用。已有响应式并行工作给出抽象代价模型与类型系统来保证响应性和吞吐量,但未考虑公平性。本文允许程序员为线程分配优先级并要求调度器遵循公平性,提出“公平及时调度”(fairly prompt scheduling)原则,规定多处理器上多线程程序的调度方式。作者证明不同优先级作业的执行时间与响应时间理论界,尤其限制低优先级作业被高优先级工作延迟的拉伸(stretch)。此外,他们给出近似该原则的多核算法,扩展 Standard ML 实现该算法,并进行实证评估。
Research on parallel computing has historically revolved around compute-intensive applications drawn from traditional areas such as high-performance computing. With the growing availability and usage of multicore chips, applications of parallel computing now include interactive parallel applications that mix compute-intensive tasks with interaction, e.g., with the user or more generally with the external world. Recent theoretical work on responsive parallelism presents abstract cost models and type systems for ensuring and reasoning about responsiveness and throughput of such interactive parallel programs. In this paper, we extend prior work by considering a crucial metric: fairness. To express rich interactive parallel programs, we allow programmers to assign priorities to threads and instruct the scheduler to obey a notion of fairness. We then propose the fairly prompt scheduling principle for executing such programs; the principle specifies the schedule for multithreaded programs on multiple processors. For such schedules, we prove theoretical bounds on the execution and response times of jobs of various priorities. In particular, we bound the amount, i.e., stretch, by which a low-priority job can be delayed by higher-priority work. We also present an algorithm designed to approximate the fairly prompt scheduling principle on multicore computers, implement the algorithm by extending the Standard ML language, and present an empirical evaluation.