论文部分内容阅读
随着科学、技术和社会经济的发展,人们对计算机处理能力提出了更高的要求,特别是在基因工程、气象等大规模科学计算领域。理论上,问题的并行求解是一种有效的解决方案。然而,并行程序开发是比较困难的,其根本原因在于并行计算机体系结构的多样性。为了简化并行程序的开发,我们提出了一种基于两级抽象的三层并行编程模型,分别为抽象语言层、并行语言层和实现层。其中,抽象语言层属于设计阶段,并行语言层和实现层属于实现阶段。该模型可以将并行程序开发过程中的创造性工作和非创造性工作区分开来,创造性工作在抽象语言层由编程者完成,非创造性工作在并行语言层和实现层由机器完成,可以有效地降低并行程序编程难度和提高程序的开发效率。我们还对其支撑平台进行了有益的探索,骨架库是我们基于骨架的编程系统中的重要组成部分,骨架库的研究对于系统的实用性、可编程性和可扩展性方面具有重要作用。本文主要工作是对骨架库中的结构骨架进行深入的研究,主要包括以下几个方面的内容:(1)提出了一种并行骨架的抽象形式,通过对其进行扩展,可以形成各种结构骨架,如Singleton骨架、Farm骨架、Pipeline骨架、Taskqueue骨架。这样,一方面可以使得并行结构骨架之间的相互组合变得容易;另一方面也为算法骨架的实现提供了必要的条件。(2)对系统底层通信库MPI的调用接口进行了简化,以方便编程者进行性能调整。同时也使得编程者对特定骨架的通信特性有更清晰的认识。(3)对骨架描述方法进行了研究,提出了一种基于XML的通用骨架描述方法,并使用该方法对现有结构骨架进行了统一描述,以便更好地指导编程者,使其能较为准确地选择、比较和使用并行结构骨架。(4)在PC机群和MPICH组成的并行计算平台上对两个经典实例――数组求和及矩阵-向量乘法问题均进行了基于MPI、基于结构骨架的并行实现,并对它们的性能进行了评价。运行结果表明,基于结构骨架的并行程序开发方法在基本不损失性能的同时,降低了并行程序的开发难度,提高了并行程序的开发效率。