论文部分内容阅读
本文的工作是为北京大学软件工程研究所正在研发的基于Erlang/OTP(OpenTelecom Platform)的分布式并行计算平台UNIAS设计并实现了支持弹性的主从结构并行计算框架。本框架能够合理地调度和分配UNIAS集群中各个节点的存储和计算资源,协调和组织各个节点上任务的分配、运行、监控和结果收集,并提供动态伸缩和出错处理机制,保证并行应用的可靠、高效运行。 本文首先介绍了UNIAS平台的研发目标和应用的特点,总结了本框架的设计目标:支持计算任务透明分布和弹性伸缩。然后,本文调研了分布式计算中的弹性机制和现有的主从结构并行程序设计模式,提出了本框架的设计思路和实现方法。 本文的工作主要分为四个部分:第一,将进程管理和任务集管理进行了分离,从机制上支持了弹性伸缩和容错;第二,设计和实现了可迭代的多层主从结构的进程组织方式,其可以灵活地根据当前系统负载和网络环境调整工作进程的分布,从而实现了计算任务的透明分布和弹性伸缩,保障应用的可靠运行;第三,抽象了UNIAS应用的处理逻辑,用户只需实现程序代码和应用配置文件就可以开发并行应用,而不必考虑系统的底层细节;第四,利用Erlang的open_port机制,使得平台能够调度非Erlang语言开发的应用。 通过本文的工作,分布式并行计算平台UNIAS具有了支持多种语言开发的并行应用的能力,用户可以像编写单任务程序那样,较容易地开发可透明分布执行的主从结构并行应用,降低了开发、管理和维护分布并行应用的难度。 为了验证本文工作的有效性,本文选取了两个典型的示例程序对实现的并行计算框架进行测试。测试结果展示了其对于数据密集和计算密集应用在任务透明分布、并行加速和弹性伸缩方面的支持。