【技术实现步骤摘要】
一种基于FPGA的分布式流计算系统加速方法
本专利技术属于分布式流计算领域,尤其涉及一种基于FPGA的分布式流计算系统加速方法。
技术介绍
当前,大数据的发展已经呈现白热化状态,数据的爆炸性增长,数据类型的多样化、数据产生速度的不断增长都对数据处理提出了越来越高的要求。实时购物推荐、社交数据实时分析、站点日志处理、智能电网的实时数据处理等很多应用都要求数据处理的实时性,流计算的技术就由此发展而来,成为当前研究的热点。越来越多流式数据计算平台涌现出来,它们依托实时处理相关技术,逐步成为了企业界和研究界重要的在线分析和处理工具。衡量数据流计算系统最重要的两个性能指标就是延迟和吞吐量,不同的流式处理平台都面临着如何提高这两项指标或者说如何兼顾这两项指标的挑战。现如今摩尔定律已近暮年,“免费的午餐”时代已经快要结束,不得不寻找其他方式来提高计算的速度,采用处理器加速技术为这一挑战带来了新的曙光。GPU和FPGA是目前两种主流的处理器加速技术,其中FPGA加速部件具有能效比和绝对性能方面的优势。近年来,随着半导体工艺技术的发展,FPGA芯片的容量和运行频率得到了大幅度提高。 ...
【技术保护点】
1.一种基于FPGA的分布式流计算系统加速方法,FPGA设备(401)与CPU模块(3)按照协同计算的方式完成流处理作业的运算处理,其特征在于,所述分布式流计算系统加速方法至少包括如下步骤:按照将所述FPGA设备(401)安装至从节点(2)的方式构建具有主节点(1)的基于FPGA的分布式流计算系统;将流处理作业程序划分为适合所述FPGA设备(401)执行的第一任务和适合所述CPU模块(3)执行的第二任务;在所述流处理作业程序按照配置能够在所述FPGA设备(401)上编译执行的内核程序文件或内核程序文件上传的文件路径的方式提交至所述主节点(1)的情况下,所述主节点(1)按照对 ...
【技术特征摘要】
1.一种基于FPGA的分布式流计算系统加速方法,FPGA设备(401)与CPU模块(3)按照协同计算的方式完成流处理作业的运算处理,其特征在于,所述分布式流计算系统加速方法至少包括如下步骤:按照将所述FPGA设备(401)安装至从节点(2)的方式构建具有主节点(1)的基于FPGA的分布式流计算系统;将流处理作业程序划分为适合所述FPGA设备(401)执行的第一任务和适合所述CPU模块(3)执行的第二任务;在所述流处理作业程序按照配置能够在所述FPGA设备(401)上编译执行的内核程序文件或内核程序文件上传的文件路径的方式提交至所述主节点(1)的情况下,所述主节点(1)按照对所述流处理作业程序进行预处理的方式对资源进行分配和调度。2.根据权利要求1所述的分布式流计算系统加速方法,其特征在于,主节点(1)至少按照如下步骤对资源进行分配和调度:获取系统集群中待调度的所有流处理作业并对每一流处理作业至少执行添加系统组件、添加数据统计组件并执行标准化处理以完成所述预处理;获得第一任务的第一总量、第二任务的第二总量以及处于空闲状态的FPGA设备(401)的第三总量;在所述第三总量小于等于零的情况下,将所有的流处理作业均调度至CPU模块(3)中执行,在所述第三总量大于零且所述第一总量小于所述第三总量的情况下,将所述第一任务调度至FPGA设备(401)中执行,并将所述第二任务调度至CPU模块(3)中执行,或者在所述第三总量大于零且所述第一总量大于所述第三总量的情况下,基于所述第三总量将所述第一任务划分为第一子任务和第二子任务,其中,第一子任务调度至FPGA设备(401)中执行,所述第二子任务按照转化为所述第二任务的方式传输至所述CPU模块(3)中执行。3.根据权利要求2所述的分布式流计算系统加速方法,其特征在于,主节点(1)对资源进行分配和调度还包括如下步骤:在流处理作业程序包含所述第一任务并且内核程序文件或内核程序文件上传的文件路径均提交至所述主节点(1)的情况下,将所述流处理作业程序判定为合法并对其进行调度。4.根据权利要求3所述的分布式流计算系统加速方法,其特征在于,所述预处理至少包括如下步骤:在拓扑中包含需要第一任务运行的特殊组件并且为所述特殊组件配置所述FPGA设备(401)能够执行的内核函数名称的情况下,基于用户在提交拓扑时的并行度设置和组件类型的选择将拓扑中的每一个组件均实例化为相应数量的第一任务的执行器或第二任务的执行器。5.根据权利要求4所述的分布式流计算系统加速方法,其特征在于,CPU模块(3)中至少设置有第一作业执行器(6)、第二作业执行器(7)和第三作业执行器(8),所述FPGA设备(401)和所述CPU模块(3)按照如下步骤对所述流处理作业进行协同计算:所述第一作业执行器(6)配置为接收上游传输的若干条数据,按照流水线的方式对数据进行逐一处理,并将处理结果通过线程发送至下游的第二作业执行器(7);所述第二作业执行器(7)配置为接收第一作业执行器(6)传输的处理结果并将其缓存至其自带的内存中,在缓存的数据量达到设定阈值的情况下,将缓存的所有数据通过接口发送至FPGA设备(401);第三作业执行器(8)配置为根据预先设定的数据依赖关系接收第二作...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。