论文部分内容阅读
并行程序的开发是并行计算中一个公认的难题。其中一个重要的原因在于缺乏系统的开发并行程序的方法和相关的辅助工具。现有的大多数并行程序设计模型本质上是对并行程序编码的研究,它们为并行程序的设计编码提供一个抽象的平台,但缺乏指导程序员在其所提供的平台上进行并行程序开发、推导和验证的方法。如何在一个给定的抽象模型的平台上设计出符合问题要求的并行程序,完全取决于程序员的技巧和经验;程序的可靠性、开发效率都难以得到保证。 在本文的前期研究中,我们提出了一种系统的基于泛型编程的并行程序开发方法和模型,该模型支持从问题到并行程序的整个程序开发过程,并提供了泛型算法结构库和泛型并行结构库作为编程者进行抽象并行程序开发的支持。编程者通过在该模型下开发并行程序,将并行程序开发过程中的创造性工作和非创造性工作区分开来,创造性工作由编程者完成,非创造性工作由机器完成,有效地提高了程序的开发效率。 泛型并行结构库是上述描述的并行编程模型中的一个重要组成部分。通过对编程者提供泛型并行结构库的支持,编程者在并行实现时,无需关注大部分的低层次细节,极大地减轻了编程者的负担,提高了并行程序的可编程性,可重用性和可靠性等。本文工作即是对该模型中的泛型并行结构库的几个主要模式进行开发、设计与实现。因此,本文工作涵盖了以下几点: 1)本文对并行计算中的管理者—工人、流水线并行和工作池三种并行结构进行了深入研究,并为这三种结构进行抽象出了三种并行结构模式。其中,如何应用设计模式(Design Pattern)和泛型程序设计(Generic Programming)思想,抽象出灵活、高效、优雅的并行结构模式是本文研究的难点和关键之一; 2)以本文抽象出的三种并行结构模式为基础,实现出相应的并行结构模板,以支持抽象并行程序的实现。 3)以大量的具体算法实例和多组的对比实验,对本文开发的三种并行结构模板的可重用性、可编程性、可靠性和运行效率,与传统的PVM/MPI并行编程方法进行了比较和分析。