一种基于skeleton的并行编程环境研究与实践

一种基于skeleton的并行编程环境研究与实践

论文摘要

并行程序设计是并行计算中一个公认的难题。其中一个重要原因在于缺乏系统的开发并行程序的方法及其支持工具。现有的大多数并行程序设计模型本质上是对并行程序编码的研究,它们为并行程序设计提供一个抽象平台,但缺乏指导程序员在其上有效地进行并行程序开发的方法。基于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 泛型程序设计与STL
  • 1.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 并行分而治之skeleton
  • 5.2.2 Farm skeleton
  • 5.2.3 Taskqueue skeleton
  • 5.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 进一步工作
  • 参考文献
  • 致谢
  • 申请学位期间的研究成果及发表的学术论文
  • 相关论文文献

    标签:;  ;  ;  ;  

    一种基于skeleton的并行编程环境研究与实践
    下载Doc文档

    猜你喜欢