论文部分内容阅读
并行计算模型与并行编程模型一直是并行计算领域研究热点。并行计算模型为上层并行算法设计提供硬件抽象模型,并行编程模型为上层用户提供编写并行程序的基本构件与抽象模型。并行计算机体系结构在多个领域的发展出现了不同类型的层次性,例如存储层次不断增加的多核处理器及GPU加速部件,同时,在并行编程模型发展中,也出现了提供显式局部性控制构件的编程语言。对于事物建立抽象模型是对其深入理解并提供简化的设计平台的重要研究方法。为此,本文从局部性角度提出了若干模型对不同硬件平台和软件算法进行抽象,包括多核处理器,GPU加速部件,网络通信,非规则计算,并研究并行编程模型局部性特征。
针对多核处理器越来越复杂的存储层次,以及面向众多具有加载计算模式的并行编程模型、数据结构设计以及算法优化技术,本文提出了一个基于算法局部性函数的性能分析模型。利用该模型可以根据算法局部性特征,分析在具有不同深度存储层次架构上的性能。此外,本文还从数据访问角度扩展了Amdahl定律,得到了不同体系模型上的加速比,弥补了以往只关注计算能力加速比的不足。
针对近几年飞速发展的GPU计算技术及其复杂的存储层次,本文提出了延迟隐藏因子概念,并基于此设计了新的并行计算模型,描述了GPU计算中通过大量细粒度线程的执行与切换来隐藏内存访问开销这一与传统CPU计算最显著区别。
针对超级计算机互连系统出现的网络通信层次性,本文提出了LogGPH模型,将原始具有单层通信参数的计算模型层次化为具有一定自适应能力的多层计算模型。基于该模型,本文设计了新的MPI_Allgather算法的进程映射方案,充分地平衡地利用了各通信层次进行数据传输。
针对非规则计算的局部性,本文为图的广度优先遍历算法提出一个新的模型,该模型基于一个新的称为结点距离的概念,通过该模型将容易测量的结点距离映射为常用的程序局部性描述方法,即重用距离。从层次化的角度看,本文在重用距离签名之上建立了结点距离签名的概念,层次化了图算法的局部性描述,然后通过融合图拓扑信息的模型,将结点距离转化为重用距离。
针对众多并行编程模型设计中的局部性构件,本文进一步将局部性分为横向局部性和纵向局部性两种类型,对各种并行编程模型从两种局部性角度进行分析,明确了下一代并行编程模型和语言所应具有的特点,指出了未来发展以及研究方向。