一种可提高软件重用性的分布式计算框架:Pydra

一种可提高软件重用性的分布式计算框架:Pydra

论文摘要

分布式计算框架是一种降低并行程序开发复杂度的有效方法。一般来说,它提供一个分布式运行环境,封装了大部分分布式操作的逻辑,并要求开发者基于受限的编程接口开发并行程序。从本质上看,分布式计算框架通过软件重用,降低了开发的难度和成本。尽管如此,在现有的这些框架中,重用仅限于代码、程序库级别,而不能应用于更为高层的组件级别。基于组件的重用作为一种粗粒度的软件重用,能够很好地应对复杂的应用场景,也有助于灵活的程序开发,更是诸如软件产品线工程等高级开发方法的基础。要实现分布式计算框架上的组件级重用,框架需要从平台级别提供对组件管理、组件交互的支持。然而现有的框架都缺少对这一方面的关注,这既限制了它们在并行程序开发方面的表达能力,也可能导致开发效率的降低。本文设计的Pydra是一个新型的分布式计算框架。它采用面向任务的设计,将用户编写的任务作为组件进行管理,并从平台级别允许任务以一种灵活的方式相互动态调用,从而实现了并行程序开发中组件级别的软件重用。在运行时刻,Pydra负责协调组件之间的交互,隔离组件的运行上下文,并通过沙箱机制阻止恶意代码运行,确保系统的安全性。通过其自带的多种任务类型,Pydra也实现了对传统分布式计算框架中若干种编程模型的支持,如数据并行模型和MapReduce模型,拥有极大的开发灵活性。Pydra运行-在以高速以太网互联的计算机之上,采用传统的主从模型:用户向主节点提交自己的任务代码;主节点将代码同步到从节点上,并以一种对多用户公平的方式调度任务在从节点上的运行。实验表明,Pydra具有良好的伸缩性,其计算性能随着工作节点的增加而提升。在开发实验程序的过程中,实践证明Pydra的确能够提高程序开发的重用性,减少开发成本,从而提高并行程序开发的效率。

论文目录

  • 摘要
  • Abstract
  • 目录
  • 图目录
  • 表目录
  • 第一章 绪论
  • 1.1. 本文工作
  • 1.1.1. 问题范畴
  • 1.1.2. 目标
  • 1.2. 挑战
  • 1.3. 本文贡献
  • 1.4. 小结
  • 第二章 研究背景
  • 2.1. 软件重用
  • 2.1.1. 软件重用的意义
  • 2.1.2. 软件重用的级别
  • 2.2. 并行程序开发中的软件重用
  • 2.2.1. 现状
  • 2.2.2. 平台级别的重用支持
  • 第三章 设计与实现
  • 3.1. 面向任务的架构
  • 3.1.1. 任务类型
  • 3.1.2. 任务接口
  • 3.1.3. 任务标记
  • 3.2. 系统概述
  • 3.3. 任务调度
  • 3.3.1. 任务的生命周期
  • 3.3.2. 调度算法
  • 3.3.3. 负载均衡
  • 3.4. 组件管理
  • 3.5. 容错性
  • 3.5.1. 检查点和备份
  • 3.5.2. 从节点失效
  • 3.6. 安全性
  • 3.6.1. 使用沙箱隔离运行任务
  • 3.6.2. 安全的传输通道
  • 第四章 实验评估
  • 4.1. 实验配置
  • 4.1.1. k-means聚类
  • 4.1.2. 矩阵乘法
  • 4.2. 伸缩性
  • 4.3. 软件重用
  • 4.3.1. 实验程序的开发方法
  • 4.3.2. 与其他分布式计算框架的比较
  • 第五章 相关研究
  • 5.1. 基于数据流的计算系统
  • 5.2. 软件产品线工程
  • 5.3. 程序运行安全
  • 第六章 总结和展望
  • 6.1. 总结
  • 6.2. 未来工作展望
  • 6.2.1. 数据类型
  • 6.2.2. 对数据密集计算的更好支持
  • 6.2.3. 完整的开发工具支持
  • 参考文献
  • 致谢
  • 发表论文
  • 参与项目
  • 相关论文文献

    标签:;  ;  ;  ;  ;  

    一种可提高软件重用性的分布式计算框架:Pydra
    下载Doc文档

    猜你喜欢