技术发展现状
近年来,数据规模快速增长,使得Hadoop、Spark等大数据批处理系统在现实中得到了广泛应用。同时,应用对数据处理时效性需求不断加强,促使诸如Flink的大数据流式处理系统应运而生。现实中的很多大数据应用,比如高通量视频处理应用,既需要处理大量数据,又对数据处理时延有极高要求,亟需将批处理技术和流式处理技术进行整合。在处理器方面,GPU已成为加速数据处理的重要硬件,而现有的大数据处理技术如Hadoop、Spark、Flink仍以通用处理器为主。因此,有必要系统地开展研究,构建面向CPU-GPU异构体系结构的高性能分布式数据处理技术与系统,充分利用新型硬件的加速特性。
图1. 技术发展现状
项目团队
国家重点研发计划“面向异构体系结构的高性能分布式数据处理技术与系统”,是由华东师范大学牵头,联合湖南大学、西北工业大学、东北大学、中国人民解放军国防科技大学、湖南城市学院、湖南工业大学、武汉大学、南开大学、浪潮电子信息产业股份有限公司、中网数据(北京)股份有限公司等十家高校和企业单位共同承担的云计算和大数据专项项目。项目启动于2018年5月,执行期3年。
在应用方面,项目团队与中国铁路广州局集团有限公司株洲车辆段和湖南新型智慧城市研究院建立了合作,分别在“中欧班列”快速货运列车故障检测、“天眼工程”大中城市交通监控等项目上进行了深入研究并积累了大量视频数据。在研究方面,项目团队承担或参与多项973、863计划项目、国家自然科学基金系列项目,在并行与分布式系统、海量数据处理、海量存储系统、内存计算、可重构计算、视频处理等领域开展了一系列前沿性研究工作。在 SIGMOD、VLDB、ICDE、AAAI、IJCAI、HPDC、IPDPS、TPDS、TKDE、TOC、JPDC等重要国际会议和期刊发表论文150余篇,成果应用于交通银行、华为、浪潮、NEC、江苏移动、国家电网等大规模数据处理系统和软件产品中。项目团队成员先后参与研制银河系列巨型机、天河系列超级计算机及应用(“天河二号”超级计算机在 Top500 排行榜上获六连冠),并负责国家超级计算长沙中心运营。
研究内容
项目根据三个科学问题设置了七项研究内容,分为五个课题进行研发(如图2所示)。
图2. 项目的课题设置
课题一: 面向大数据集的数据流编程模型及示范应用
课题一主要应对科学问题一,对数据流编程模型所涉及的主要关键技术进行系统研究,旨在对传统的编程模型进行扩展,定义数据流编程语言的原语及其编译前端等工具链。课题一产生数据流中间代码,用于描述应用层处理的语义,同时结合“中欧班列”和“天眼工程”两个场景,利用数据流编程模型开发示范应用系统,以此验证CPU-GPU异构体系结构对高通量视频处理的提升效果。
课题二: 面向数据流的分布式处理引擎与性能优化
课题二对三个科学问题都有涉及,传统数据处理系统根据应用场景的不同,分为处理历史数据的批处理、处理在线数据的流处理两类。课题二通过控制数据集的处理窗口等方式,兼容现有的批处理和流处理两类任务,构建面向数据流的分布式处理引擎。课题二编译和解析课题一输出的“声明式”的数据流中间代码,结合异构计算集群的信息,输出刻画分布式异构环境下如何具体执行的任务拓扑图。
课题三: 分布式异构系统资源管理及数据流性能分析工具
课题三主要应对科学问题二和三,提供分布式下异构资源的管理,研究数据流任务拓扑图的合理异构资源配置、调度和管理,对其他的课题的开展发挥着重要作用。异构集群中的每个执行节点都包含GPU 和CPU等异构资源,需要进行统一的资源管理。不合理的资源管理,使得某些节点因为任务多造成资源严重过载,或者因为任务少而闲置资源,这使得资源的利用率非常低。此外, 数据流任务在执行过程中,面临数据流量、数据倾斜等变化因素,因此需要监控和分析数据流应用的性能参数。
课题四: 异构体系结构的分布式数据存储与管理
课题四主要应对科学问题三,实现面向多种数据的统一物理存储模型和元数据管理,为数据流处理系统提供高效的数据缓存和可靠的数据持久化机制。课题四旨在解决在高通量的数据流处理模型中低效的数据存储访问问题,以及分布式数据处理的容错问题。基于数据流处理模型,面向高通量的实时数据处理应用,提供中间结果和检查点的持久化。
课题五: 面向CPU-GPU异构节点的混合执行引擎
课题五主要应对科学问题二,异构体系结构节点执行引擎部分主要包括基于GPU的粗粒度并行、利用单SM部署多kernel的数据流图细粒度流水并行,以及异构系统任务划分和负载均衡。课题五实现基于CPU-GPU粗/细粒度并行,并在单节点内部实现CPU和GPU间的任务划分和负载均衡。存储访问优化则通过节点内的CPU和GPU统一虚拟地址共享,以实现数据流的低延迟处理。课题五还将研究数据与模型的压缩技术,保证计算精度的同时,提高计算吞吐率。
本项目的五个课题之间既相互联系又相对独立,课题间的关系如图3所示。
图3. 课题之间的逻辑关系
课题一旨在根据应用的处理逻辑,产生数据流中间代码,并调用课题二的处理接口,从而实现数据流的执行。此外,课题一使用课题四提供的多层存储系统缓存高通量视频示范应用中摄像头产生的实时视频流数据流,解决视频注入和视频处理的不匹配。
课题二根据其他课题的研究成果,进行分布式处理引擎的性能优化。利用课题三提供的异构体系集群的资源使用和数据流性能信息,实现数据流任务拓扑的静态优化和动态优化。课题二需要考虑课题四的存储和计算的高效划分,降低数据传输开销。为了避免系统故障导致数据流应用的状态发生丢失,需要结合课题四提供的检查点持久化,共同实现数据流应用的容错处理。
课题三为课题二分配分布式异构计算资源。数据流任务在执行过程中,面临任务执行中数据流量、数据倾斜等变化因素,因此课题三提供的运行时性能分析调优是课题二进行数据流处理任务静态优化和动态优化的基础。
课题四通过实现面向多种数据的统一物理存储模型和元数据管理,为课题一的示范应用提供高效稳定的分布式数据缓存,为课题五提供多种针对性的数据访问方式和存储操作原语,也有效地避免数据访问瓶颈,支撑课题五中的低延迟处理。对检查点的分布式持久化机制也为课题二实现数据流容错处理提供保障。
课题五充分发挥CPU-GPU异构体系结构的性能优势,对课题二产生的任务拓扑子图进行加速执行。课题五利用课题三提供的CPU-GPU异构资源抽象,实现CPU-GPU混合比例的优化。此外,课题五通过异构地址空间共享技术,优化课题四提供的数据访问功能。
预期成果
项目的预期成果包括面向CPU-GPU异构体系结构的高性能分布式数据处理技术:含数据流编程工具链、统一数据处理引擎、异构资源管理和数据管理系统,以及高通量视频处理GPU加速模块等,实现“中欧班列”快速货运列车故障检测、“天眼工程”大中城市交通监控等高通量视频典型应用示范。
图4. 列车安全系统 & “天眼工程”
图5. 交通检测和列车故障检测初步效果图
撰稿:王嘉伦
排版:王冬慧