论文摘要
并行程序设计是并行计算中一个公认的难题。其中一个重要原因在于缺乏系统的开发并行程序的方法及其支持工具。现有的大多数并行程序设计模型本质上是对并行程序编码的研究,它们为并行程序设计提供一个抽象平台,但缺乏指导程序员在其上有效地进行并行程序开发的方法。基于skeleton的并行程序设计方法通过为程序员提供通用的问题并行求解skeleton,使得程序员摆脱了琐碎的并行细节,而更关注问题本身,因而是一种更高层次的并行程序设计方法。本文前期研究中,给出了并行模式/skeleton的新定义,并在此基础上,提出一种系统的基于skeleton的并行程序开发模型及其支撑环境。该系统支持从问题规范到并行程序的整个开发过程,Apla+语言、skeleton库、模板库是其中的重要组成部分。Apla+语言的使用为系统提供了一种抽象、简洁的skeleton描述语言;而skeleton库及其模板库的支持,不仅为问题的并行求解提供了算法设计方法与策略上的指导,而且提供了并行算法的实现框架,使程序员在不具备并行领域知识的情况下,就可获得求解问题的(抽象)并行程序。本文的工作是对系统的Apla+语言、skeleton库及其模板库的研究,主要涵盖以下几点:(1)深入研究基于skeleton的并行工作,分析其中skeleton的概念、描述语言等方面存在的问题与困难,探索一种可行的解决方案。(2)对PAR方法中的Apla语言进行了并行扩充,主要包括描述并行运算的运算符、表示并行性的语句等,形成Apla+语言,以提供一种skeleton抽象描述语言。(3)对并行计算中的并行分而治之、Farm和Taskqueue三种典型skeleton进行了深入研究,并使用Apla+语言对其进行抽象描述,以支持问题的抽象并行程序开发。(4)在曙光3000 CPPVM环境下,采用C++模板机制对上述三种skeleton进行了预实现,并集成为模板库。(5)对skeleton库、模板库的组织进行了初步研究,为整个并行编程环境的集成提供了初步的研究思路。
论文目录
摘要ABSTRACT第一章 绪论1.1 研究背景和意义1.2 相关的研究领域1.2.1 并行程序开发模型1.2.2 并行程序开发方法1.2.3 并行编程环境1.2.4 泛型程序设计与STL1.2.5 PAR 方法与PAR 平台1.3 本文研究内容与章节结构第二章 基于SKELETON 的并行程序设计方法2.1 设计模式概述2.1.1 设计模式的概念与描述2.1.2 并行领域中的设计模式2.2 SKELETON 概述2.2.1 skeleton 分类2.2.2 skeleton 组合2.2.3 skeleton 性能研究2.3 基于SKELETON 的代表性并行编程系统2.4 小结第三章 一种基于SKELETON 的并行编程环境3.1 程序设计思想3.2 系统结构+语言'>3.2.1 Apla+语言3.2.2 skeleton 库3.2.3 模板库3.3 与传统并行程序设计模型比较+抽象程序设计语言'>第四章 APLA+抽象程序设计语言4.1 引言4.2 APLA 语言的基本结构4.2.1 基本类型定义4.2.2 过程和函数的定义4.2.3 程序语句+语言扩充语法'>4.3 APLA+语言扩充语法+语言扩充运算符'>4.3.1 Apla+语言扩充运算符4.3.2 并行语句的扩充4.3.3 skeleton 关键字4.4 小结第五章 SKELETON 库5.1 引言5.2 典型SKELETON 实例5.2.1 并行分而治之skeleton5.2.2 Farm skeleton5.2.3 Taskqueue skeleton5.3 SKELETON 库的组织5.4 SKELETON 使用实例5.4.1 矩阵向量乘5.4.2 单源最短路径5.4.3 快速排序5.5 小结第六章 曙光3000 下SKELETON 预实现6.1 实现环境简介6.2 SKELETON 模板实例6.2.1 并行分而治之skeleton 模板6.2.2 Farm skeleton 模板6.2.3 Taskqueue skeleton 模板6.3 SKELETON 模板库的组织6.4 实例开发6.4.1 矩阵向量乘6.4.2 快速排序6.5 性能评价第七章 总结与比较7.1 相关工作比较7.2 本文工作总结7.3 进一步工作参考文献致谢申请学位期间的研究成果及发表的学术论文
相关论文文献
标签:并行程序设计论文; 并行编程环境论文; 语言论文; 模板论文;