论文部分内容阅读
并行程序设计是并行计算的两大难题之一,也是并行计算领域的一个研究热点。并行程序设计的困难主要存在于两个方面:问题的并行求解和并行程序的编码。问题并行求解的困难主要源于应用问题的多样性、问题并行求解所需的创造性思维和计算机处理能力的机械性之间的矛盾。并行程序编码的困难主要源于并行计算机系统结构的多样性,以及由于缺乏统一的并行计算机模型而导致并行程序的复杂性、低效性、不可移植性等问题。 DPaPD(Design-pattern-based Parallel Program Development)是在我们的前期研究中提出的一种系统的基于设计模式的并行程序开发模型,该模型支持从问题到并行程序的整个程序开发过程,并提供了设计模式库为程序员并行开发进行指导。程序员根据该模型来开发并行程序,可以将并行程序开发过程中的创造性工作和非创造性工作区分开来,创造性工作由编程者完成,非创造性工作由机器完成,有效地提高了程序的开发效率。 Apla(Abstract Programming Language)语言和设计模式库是DPaPD模型的重要组成部分。通过APLA语言和设计模式的使用,不仅为问题的并行求解提供了算法设计方法和策略上的指导,而且提供了并行算法实现的抽象框架,使程序员在不具备并行领域知识的情况下,就可以获得求解问题的抽象并行程序。本文工作即是Apla语言进行并行方面的扩充,然后用它来抽象描述设计模式库。因此,本文主要做了以下工作: (1)对Apla语言进行并行方面的扩充,主要是扩充了一些用于并行运算的运算符:如函数(或过程)的并行兼容运算符,函数(或过程)的并行组合运算符,并行函数作用运算符等,从而使得它能够描述设计模式和抽象的并行程序; (2)对并行计算中的并行分而治之、单步分而治之、并行分之限界三种模式进行深入地研究,并用已扩充的Apla语言描述出相应的框架,以支持抽象并行程序的实现; (3)根据DPaPD模型中的开发步骤开发一些完整的实例,即运用已扩充的Apla语言和DPaPD模型中的设计模式,得到问题的抽象并行程序,并对此抽象并行程序进行了证明。 本文的创新工作就是对DPAPD模型进行了完善,主要包括两点:①对APLA语言进行了并行方面的扩充;②运用已扩充的APLA语言描述了3个设计模式,得到APLA程序框架。