论文部分内容阅读
并行计算机体系结构的发展,带来了并行计算机性能的快速提升和并行计算平台的多样化,同时也对研究和应用人员提出挑战:(1)如何降低并行编程难度,使不具有并行计算知识背景的用户能够快速有效的开发并行程序,充分发挥并行计算机在不同应用领域的计算能力;(2)如何使现有的大量串行程序以一种稳健可靠的、非颠覆式的方式并行化;(3)如何使并行编程不依赖于硬件平台,当底层计算平台发生变化时仍可以有效运行。目前,设计合理有效的并行编程模型是解决多种并行程序开发难题的主要手段。本文设计并实现了一种基于并行函数库的并行编程模型。编程模型的设计思路和方法为:(1)为简化并行编程,支持串行软件的非颠覆式并行化,以并行函数库的方式隐藏底层并行化细节,并提供与传统串行编程相似的编程接口。用户依照传统串行软件的开发逻辑,通过API调用即可开发并行程序。(2)为实现并行编程的平台无关性,将平台相关的并行函数库向上封装为统一的API接口,用户通过调用平台无关接口开发并行程序,程序可无修改地运行于多种计算平台。(3)为提高程序性能,提供任务调度和数据分配功能,使系统在处理较为复杂的多任务计算问题时,仍能达到较好的负载均衡和较低的并行开销。(4)在系统可扩展性方面,具备功能可扩展性和计算平台可扩展性。功能可扩展是指可扩展应用函数库和运行时函数库,可针对具体应用领域开发专业型编程模型;计算平台可扩展是指可以支持新的底层计算平台。本文利用矩阵乘法算法和频率统计算法设计了三组实验,分别验证编程模型的平台无关性,多任务调度系统的有效性,并测试了编程模型对程序性能的影响。实验表明该编程模型能够有效简化并行程序开发,基于该编程模型的程序可在多种计算平台上有效地编译运行;系统的任务调度功能能够提高多任务计算问题的总体性能;编程框架可能会造成一定的开销,但不影响程序的总体性能。本文在编程模型原型系统的基础上扩展和设计了面向遥感图像处理的并行编程模型。扩展的并行编程模型保留了原型系统的易用性和平台无关性,扩展了适合遥感数据特点的数据结构,增加了地理空间数据格式支持库,并且根据遥感图像处理算法的特点对函数库做分层设计,最大限度地减少代码冗余。通过在扩展的并行编程模型上进行遥感图像非监督分类的实验,验证了该编程模型的有效性。