论文部分内容阅读
由于超强的计算能力、高速访存带宽、支持大规模数据级并行程序设计等特点,GPU已经成为超级计算机和高性能计算(High Performance Computing, HPC)集群的主流加速器。越来越多的应用程序通过基于GPU数据并行地重新设计达到可观的加速比。因此,在HPC领域,GPU集群已经成为新的重要的研究热点,并且传统集群也正演化成为GPU加强的集群或GPU集群。本文从体系结构出发,通过对传统集群以及GPU特点的分析,总结了GPU集群体系结构特点,并指明了GPU集群中独特的异构计算特点以及强大的多层次并行计算能力。在理论研究的指导下,通过对现有计算资源的整合构建了一个节点异构GPU集群系统,并阐述了详细的GPU集群搭建步骤。主流GPU集群编程模型大多采用消息传递机制以及异构计算简单结合的方式,这种方式往往是低效而且易错的。这种模型对应用程序的描述和设计的不足根源在于其没有从编程和计算模型层面同时契合GPU众核体系结构和集群环境。Stream编程模型深入分析并行计算模式从编程模型顶层出发提供显式多层面的并行设计机制,引导程序员将程序设计的视角从简单的功能和进程划分到数据有关的计算划分,使其能够充分契合GPU集群强大的数据并行计算能力。随着处理单元的发展和集群节点的拓展,GPU集群将在节点层面趋于异构化。本文提出了一套针对异构任务在节点异构GPU集群上的能量有效调度方案。我们形式化地描述了其任务和资源模型以及能耗评估模型。通过特定的节点选择策略,减少空闲状态的能耗损失。通过任务类型划分和组合分配以及DVFS,增加CPU资源利用率。本方案从系统层面着手,能够与现有的算法和指令层面的优化方法兼容。本文从体系结构、编程模型、能耗有效性角度,对GPU集群系统进行了深入研究,提出了一整套面向GPU集群的设计方案,并且指导完成了GPU集群软硬件环境的构建,实现并部署了适合GPU集群大规模数据级并行能力的流处理并行编程环境。最后对节点异构GPU集群能耗有效性研究,从系统层面提出了一套能耗有效性任务调度方案。本文对面向通用计算的GPU集群系统的设计具有系统指导意义。