分布式流体系结构及其编程模型与资源管理(
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分布式流体系结构及其编程模型与资源管理*
李鑫1,2,3,4,杨学军1,2,徐新海1,2
(1.国防科学技术大学 计算机学院,湖南 长沙 410073;2.国防科学技术大学 高性能计算国家重点实验室,湖南 长
沙 410073;3.解放军理工大学,江苏 南京 210007;4.总参第六十三研究所,江苏 南京 210007) 摘要:利用互联网资源提供大数据计算服务面临着资源异构性、动态性与通信长延迟等方面的挑战,现有分布式计算模型仍存在一些不足。基于流计算模型提出了分布式流体系结构,包括分布式流编程模型与资源管理等,能够高效支持多种并行执行模式。在10个CPU-GPU 异构结点上实现了原型系统,仿真实验验证了7个不同的测试用例。实验结果表明,与本地串行计算相比,分布式流体系结构可以平均提高39倍计算性能,具有较大的应用潜力。
关键词:分布式流体系结构;大数据;编程模型;分布式计算
中图分类号:TP338.8 文献标志码:A 文章编号:
The Programming Model and Resource Management of the Distributed Stream Architecture
LI Xin 1,2,3,4, YANG Xuejun 1,2, XU Xinhai 1,2
(1. College of Computer, National University of Defense Technology, Changsha 410073, China ;2. State Key Laboratory of High Performance Computing, National University of Defense Technology, Changsha 410073, China ;3. PLA University of Science and Technology, Nanjing 210007, China ;4. The 63rd Research Institute of PLA General Staff Headquarters,
Nanjing 210007, China)
Abstract: While providing big data computing services using Internet resources, there remains a big challenge to researchers, including heterogeneity of Internet resources, dynamics of Internet resources and long latency of the Internet communication. However, current influent distributed computing models still have some shortage. Therefore, a novel distributed stream computing model is proposed based on the traditional stream computing model, including the distributed stream programming model and resource management. They can efficiently support multiple parallel execution modes. The prototype system has been implemented on the 10 CPU-GPU heterogeneous nodes. Seven different benchmarks are used in the simulation experiment. The experimental result shows that the distributed stream architecture can achieve the speedup of at least 39x on average over the local serial computing, with significant potential for applications.
Keywords: distributed stream architecture; Big Data; programming model; distributed computing
*收稿日期:2015-09-06
基金项目:国家自然科学基金资助项目(61221491,61303071)
作者简介:李鑫(1984-),男,安徽安庆人,博士研究生,E-mail :xinli@ ; 杨学军(通信作者),男,教授,博士,博士生导师,E-mail :xjyang@
近年来,“大数据”已经成为国际社会普遍关注的热点,在金融、军事、电信等领域引起了人们的高度重视。大数据具有数据量大、种类繁多、处理速度快与价值密度低等4V 特征。利用互联网资源构建面向大数据计算的运行环境具有较好的发展前景,这种方法不仅能降低计算成本与提高资源利用率,还能提供可扩展的计算能力,但是却需要应对互联网资源异构性、动态性、通信长延迟与有限带宽等挑战。 目前,主流的分布式计算模型仍然存在一些不足。云计算[1]主要基于虚拟化技术等提供弹性可扩展的快速服务部署能力,提供大数据架构基础设施的运行环境。Hadoop 等主流大数据技术能应对多种应用场景,如MapReduce [2]模型等特别适合松耦合的大规模数据处理应用的批处理过程,Spark [3-4] 等适合于机器学习等内存迭代计算,Spark Streaming [5]等比较适合于数据规模庞大且不可预知或者实时动态产生
的流式数据处理,Dremel[6]与Impala[7]等交互式处理技术主要是在数据量非常大的情况下提供实时或准实时的数据查询分析能力,PowerGraph [8]等图计算技术则是面向互联网社交网络等大规模图相关的应用场景,它们主要支持非结构化数据与半结构化数据的大规模处理,通常运行在数据中心较稳定的大规模同构资源上,但是在支持互联网资源异构性以及动态性上还存在一些不足。网格计算[9]采用类MPI编程模型,在支持动态负载均衡上还有待改进。P2P计算模型[10]提供的大数据处理方式较为简单,计算任务并行性较好,通常处理流程较简单。
近年来,流计算模型已经成功应用在高性能计算、媒体类应用等领域[11-13],并取得了“天河”等广泛而有影响力的应用成果[14-15]。本文分析认为流计算模型具有计算资源普适性、高度数据并行性、延迟计算绑定特性以及流水线并行性等特点,有很大的潜力应对上述互联网多方面的挑战。因此,本文基于流计算模型首次提出了一种新型的分布式流体系结构(Distributed Stream Architecture,DSA)以试图解决互联网环境下大数据计算模型的科学问题,并设计实现了分布式流体系结构编程模型Brook#与资源管理。仿真实验结果表明分布式流体系结构比本地串行计算平均提高了39倍的计算性能。
1 分布式流体系结构
分布式流体系结构首次将流处理思想引入分布式领域,扩展了传统流计算模型的概念,将可用的软硬件计算对象定义为Kernel(计算核心),同时将计算数据与控制状态数据定义为Stream(流或数据流),其基本概念如下:定义1:
●控制数据流(ControlStream):控制计
算流程的数据或状态数据;
●计算数据流(ComputeStream):封装
计算核心并行处理的数据。
定义2:
●软计算核心(SoftKernel,SK):封装
计算核心程序信息的对象,其元信息
包括软件共享库名称、网络位置等;
●硬计算核心(HardKernel,HK):封
装结点内可用计算结点硬件资源信息
的对象,其元信息包括网络地址、处
理器类型、线程数目等;
●应用计算核心(ApplicationKernel,
AK):封装应用程序中主程序代码相
关信息的对象,负责申请获取资源,
管理与监控计算任务运行;
●客户管理计算核心(Client
Management Kernel,CMK):提供用
户查询和请求服务的接口;
●资源管理计算核心(Resource
Management Kernel,RMK):提供命
令解释器与执行器的功能,负责向
SMK注册本地资源信息;
●服务管理计算核心(Service
Management Kernel,SMK):提供应
用服务等功能,负责维护服务(查询、
添加、删除、更新等)、Kernel(HK、
SK、AK与RMK)与用户(CMK)
的元信息,并负责调度软硬件资源。
图1 分布式流体系结构基本概念与MPEG2编码应用Fig.1 The basic concepts of DSA and MPEG2 encoder
application
如图1所示,分布式流体系结构的资源管理采用了主从架构,SMK负责统一维护资源元信息与资源调度,RMK负责命令解释与执行,CMK用于提交应用程序请求。运行一个完整的分布式流应用程序通常采用1个host结点用于管理执行环境与多个device结点用于执行计算核心程序,其中,host结点上运行主程序(AK),负责管理整个应用执行流程,device 结点上运行普通计算核心程序(SK)。AK与SK均由RMK负责启动执行。如图1所示,MPEG2编码应用的复杂处理流程共包括1个