论文部分内容阅读
人类对计算能力无休止的需求,以及并行计算领域两次重要的技术变革,使并行计算技术越来越受到人们的重视,尤其是通过各种互联技术连接在一起的分布式集群并行处理体系结构已经成为当今并行计算的主流。其中,一种特殊的结构是CMP-CLUSTER,即集群系统中单个计算节点是基于多个CMP芯片的共享存储多处理器并行系统,由于涉及到分布式存储和共享存储两种并行体系结构,我们称之为混合并行计算系统。并行编程难一直是阻碍并行计算广泛普及的主要原因,尤其是在CMP-CLUSTER这样的混合并行计算环境中存在多级并行化问题,即节点间并行、处理器芯片间并行、处理器芯片内多个核心并行,涉及到消息传递和共享变量两种并行编程模型,其编程难度更大。因此,如何为该混合并行计算环境提供特定的并行程序设计方法、编程模型、环境和工具来简化并行编程,是并行计算领域研究的热点和难点。本文正是在这种背景下展开了工作,所做的主要工作包括:系统地建立了CMP-CLUSTER混合并行计算环境概念模型下的通信层次模型和存储层次模型,指出通信层次模型中每个层次的操作开销和影响,结合CMP系统共享高速缓存的存储特征,研究提出了在通信层面和存储器访问层面并行编程的特征,并以此为基础、以最大化CMP-CLUSTER混合系统中每个并行硬件层次的优势为目标,提出了适合于CMP-CLUSTER环境的并行编程模式,并对该模式的特点进行了研究和总结。根据本文提出的CMP-CLUSTER混合并行计算环境概念模型的特征,提出针对于该混合并行计算环境的分层次、自顶向下、逐步细化的并行编程模型,该模型分为五层:任务分配模式层、任务计算模式层、设计模式并行编程框架层、中间框架代码层、任务部署与映射层。每一层分别对应在CMP-CLUSTER混合并行计算环境概念模型下进行并行处理的某一个特定的目的和步骤。针对本文提出的并行编程模型中的每一层,本文都研究了相应的简化并行编程实现的方法、技术和工具,以帮助在混合并行计算环境下进行并行程序设计的人员提高编程效率,减少人为因素引进的错误。基于设计模式的思想,设计并实现了两种并行编程框架,用户可以直接调用框架提供的高级应用程序接口,就可以自动的完成数据的划分和任务的自动并行化执行。基于数据并行计算提出了一种基于阵列数据并行的FJRR并行设计模式,并以并行编程框架的形式实现了该设计模式的自动计算;另外,提出了一种基于任务交互图模式的并行编程框架,并具体实现了基于动态规划模式的任务自动并行与调度系统,从而大大的简化用户在这两种模式下进行并行编程的复杂度。