论文部分内容阅读
当前,多核/众核体系结构已经成为主流架构。然而,多核/众核平台的实际性能与其拥有的资源并不完全匹配,平台可扩展性较差。如何充分利用多核/众核平台上丰富的计算资源成为学术界和工业界研究的热点。异步的任务图并行能发掘应用中更多的并行潜力,因而受到学术界的广泛关注。 本文着眼于高度并行系统的可扩展性问题,面向高度并行的多核/众核平台,基于任务并行编程模型,在TBB系统基础之上,设计并实现了面向高度并行系统的任务窃取策略,以及针对SMT缓存局部性的任务调度策略。测试结果表明,本文的优化降低了任务调度开销,提高了高度并行系统的可扩展性;优化了SMT缓存数据重用,提高了系统资源使用效率。 本文的具体贡献如下: 1.针对基于任务窃取的任务调度机制,建立了一个调度开销评估模型——SIT模型。通过对窃取过程的分析,该模型分解出了决定窃取开销的四个具体因素,用于精确衡量性能开销和优化效果。在多核/众核两个平台上的实验结果表明SIT模型对于性能评估和分析行之有效。 2.针对通用的任务图调度,结合并行循环的特征,设计和实现了一种基于关键队列的任务窃取策略,该策略解决了原有策略窃取成功率低的问题。针对基于关键队列任务窃取策略引起的额外开销,提出了若干个原创性的优化措施,成功降低了额外开销。实验数据表明,本方法在X86、MIC上分别获得20%和30%以上的性能改善。 3.针对众核MIC平台,利用SMT共享缓存的特征,对原有的调度机制进行改进,设计了一套SMT缓存亲和性调度机制。该调度机制包括四大模块,分别是初始化任务分配、线程绑定、线程分组、层次化窃取。在这四个模块中,给出了静态的任务分配方法和线程绑定及分组算法,给出了层次化窃取策略、组内亲和性窃取的策略以及对于共享队列的保护方法。在MIC平台上最高性能提升可达21%。