论文部分内容阅读
共享存储的多处理器系统是当今最流行的并行计算系统结构,在高端服务器、桌面计算到嵌入式系统都有广泛应用。在这种体系结构上,并发执行的程序之间对共享存储资源的竞争,尤其是对片外主存系统的竞争,成为了制约系统性能的的最主要因素。如果不能进行有效管理,会导致两个主要的问题:第一,系统吞吐率受损;第二,并发执行的程序性能不可预测,违背了服务质量(Quality of Service,QoS)的需求。
本文研究了竞争敏感的任务调度来缓解上述问题。当系统中的程序数量超过可用的处理器核数时,在每个调度时间片,通过合理选择程序并发执行,能够很好的缓解程序之间对共享资源的竞争。任务调度手段具有相对容易实现部署、改善效果明显等优点,并且可以和已有的基于硬件的方法协同使用,所以很多相关工作对它进行了研究。
在本文中,我们首先在实际系统上对并发程序的性能规律做了大量测试,并发现了一些被已有工作完全忽略的重要现象和性能规律。基于程序带宽需求波动的研究,本文提出了一个面向吞吐率的竞争敏感调度策略,数学证明和实际测试验证了它可以有效的提高系统吞吐率。其次,本中还提出了一个改善系统性能公平性的调度策略,其中最为挑战的工作是在程序并发执行时估算它的独占执行性能。将上述两个策略结合,本文提出了一个兼顾系统吞吐率和性能公平的调度策略。最后,本文提出了对用户透明的,支持竞争敏感调度策略的跨执行优化框架,使程序在多次执行中获得持续稳定的调度效果。
本文的贡献如下:
●发现并定量研究了程序在细粒度上的带宽需求波动和竞争。研究发现,当并发程序的总带宽利用率逐渐逼近系统峰值带宽时,它们遭受的性能下降是超线性增加的。
●提出了一个新的面向吞吐率的任务调度策略,其原则是使程序组总的访存带宽需求在调度时间片之间均匀分布,经过数学证明和实际系统上的随机程序组测试,该策略获得的系统吞吐率提升平均为4.0%,对某些程序组达11.7%。
●提出了一个基于软件的、在程序并发执行时估算其独占执行性能的方法。其思想是在程序的“低竞争”执行状态下对其性能进行收集,并利用程序的阶段性行为(Phase),把信息扩展到程序的其它执行部分中。
●提出了一个面向性能公平和服务质量的任务调度策略。在四核私有cache和共享cache系统上,该策略能分别消除53.5%和65.0%的系统不公平性,还能支持不同的程序权重,并且提供了有效的吞吐率.公平性调整接口。
●提出了兼顾系统吞吐率和性能公平性的调度策略。构建了一个支持竞争敏感调度的跨执行优化方法。该方法对用户透明,使得竞争敏感的调度策略不再需要用户提供程序执行的先验知识,并且提高了调度的效果。