论文部分内容阅读
异构体系结构是当前高性能计算研究中的一个重要发展方向。体系结构的异构不仅为高性能计算技术的发展提供了新思路,为高性能计算系统性能的提升带来了新的发展契机,也为研究人员提出了一系列诸如编程屏障、易用性差、使用门槛高等难题。首先,异构体系结构的计算系统中包含有多种不同结构特点的计算部件,结构上的差异导致了在使用这些器件进行计算时不能够统一而论,需要分别针对每种计算部件的结构特点进行区别对待;其次,多种类型的应用程序(或算法)与异构计算系统中的计算部件都是完全异构的,目前还没有一种计算模型或者程序开发模式能够完全满足各种异构计算系统的需求,软件开发所需的高度抽象化与底层硬件之间的透明化导致了利用异构高性能计算系统时困难重重;此外,目前流行的新型计算部件虽然具有较强的计算能力,但受限于其自身的开发特点,对目前现有的各种高性能计算程序的继承性较差,并且对编程人员的专业性要求较高,缺乏一种通用的、能够被普遍接受的基于异构计算系统的并行程序设计模型。因此,如何能够根据异构计算系统中计算部件的计算特性和应用程序的执行特征,形成计算部件与应用程序中各个任务之间的有效映射,从而降低编程人员程序开发门槛,减少异构高性能计算系统的使用难度就成为了当前异构高性能计算技术发展过程中亟待解决的问题。针对异构高性能计算系统发展中所遇到的这些问题,本文开展的主要研究内容及创新点包括以下几个方面:1、针对异构计算系统中各种计算部件和应用程序之间的双重异构问题,提出了一种面向异构计算系统的任务流模型。通过对异构计算系统中各种异构计算部件计算特性和应用程序执行过程中计算特征的抽象描述,并经一系列的分析、评估手段形成异构计算部件与应用程序所划分出的各个任务之间的有效映射和硬件配置模式。从而提高使用异构计算部件进行计算加速的针对性和有效性,降低了编程人员的程序开发门槛,减小了异构高性能计算系统的使用难度。2、针对当前主流的异构计算部件——GPU和FPGA,分别提出了针对这两种异构计算部件的并行开销模型。模型通过对GPU和FPGA硬件结构特点的抽象,提取影响硬件执行性能的关键因素P(处理能力)、M(存储能力)和C(通信能力)进行分析与评估,计算出应用程序中各个任务在异构计算部件上执行时的性能差异。实验结果表明,这两种并行开销模型能够有效的对异构计算部件执行性能进行评估,其误差均不超过10%,能够提高使用异构计算部件进行计算加速的针对性和有效性。3、针对任务流模型中所抽象出的异构计算系统硬件结构模型的特点,提出了一种基于静态负载均衡策略的异构计算系统节点间任务划分方法。该方法通过采用对应用程序的抽象,利用任务流图对应用程序执行特征进行描述,把负载均衡问题转化成为图划分问题。通过对主流图划分工具中PMETIS划分算法的改进实现了计算节点间通信量较小、所划分任务子集计算量均衡的目标。实验结果表明,在负载均衡度近似的情况下,改进后的P-PMETIS算法具有更好的执行效率,其划分耗时更短。4、针对异构计算部件之间在计算能力、存储能力和通信能力上的差异,提出了一种异构计算部件的任务映射方法。该方法利用异构计算部件性能评估结果和任务流图中任务的属性权值,通过改变任务流图中可并行任务的执行硬件类型,计算出整个任务流图的关键路径长度,并选取关键路径最短的任务流图形式作为异构计算部件与任务之间的映射关系,实现了异构计算部件与任务流图中任务的合理映射。实验结果表明,应用程序整体执行性能可以提升3倍,映射至GPU和FPGA的任务加速比分别可以达到14倍和43倍。5、针对异构计算系统对当前各种高性能计算程序继承性较差、对编程人员专业性要求较高的问题,本文在任务流模型的基础上,基于Open64开源编译器实现了一种面向异构体系结构的任务流化工具。通过任务流化工具中的任务划分、流化、粒度调整与映射实现了应用程序的源源变换。采用在应用程序中添加相应编译指示语句的方式减低编程难度,提高了异构计算部件的使用效率。实验结果表明,映射至GPU和FPGA上执行的任务的加速比分别可以达到23.43倍和8.86倍,应用程序整体执行性能较之串行执行方式提升了4倍,与MPI并行方式相比平均可以提高2倍,达到了较好的加速效果,为应用程序向异构计算系统的移植和应用提供了有益参考。