一种数据处理的方法及装置制造方法及图纸

技术编号:17597899 阅读:25 留言:0更新日期:2018-03-31 10:49
本发明专利技术公开了一种数据处理的方法,应用于Mahout机器学习算法,该方法包括:读取样本集,将所述样本集中的数据分块,并对参数进行初始化;将各分块数据及所述参数传输至各集群节点的FPGA加速卡;调用硬件应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果;判断算法是否收敛;若收敛则输出所述计算结果。利用FPGA加速卡对Mahout机器学习算法进行加速处理,有效提升了Mahout机器学习算法的计算性能。本发明专利技术还公开了一种数据处理的装置,同样具有上述技术效果。

A method and device for data processing

The invention discloses a method for processing data, applied to the Mahout machine learning algorithm, the method includes: reading the sample set, the sample data block, and initialize the parameters; FPGA the block of data and the transmission parameters to each cluster node hardware accelerator; call application the program, accelerator calculate and return results to the block data using the FPGA algorithm to determine whether; convergence; the calculation results if the convergence is output. The FPGA acceleration card is used to speed up the Mahout machine learning algorithm, which effectively improves the computing performance of the Mahout machine learning algorithm. The invention also discloses a device for data processing, which also has the above technical effect.

【技术实现步骤摘要】
一种数据处理的方法及装置
本专利技术涉及机器学习算法领域,特别涉及一种数据处理的方法及装置。
技术介绍
大数据时代,数据处理朝着智能数据挖掘的方向发展,极大地推动了机器学习算法的研究与应用。Mahout是ASF(ApacheSoftwareFoundation,Apache软件基金会)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout最大的特点是基于Hadoop实现,具有Hadoop的所有优势。Hadoop的框架最核心的设计是Hadoop分布式文件系统HDFS和MapReduce。其中,HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统)为海量数据提供存储,MapReduce则为海量的数据提供计算。Mahout借助于Hadoop把很多以前运行于单机上的算法,转化为了MapReduce模式,在一定程度上满足了数据并行化处理的需求,提升了算法可处理的数据量和处理性能。然而,由于单节点处理能力有限,Hadoop需要通过扩展集群节点规模来实现计算性能提升,而这种集群扩展往往使得系统成本和能耗快速增加,大幅降低了集群扩展带来的计算性能增益。因此,如何提高Hadoop的单节点的处理能力是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术的目的是提供一种数据处理的方法,该方法将复杂的Mahout机器学习算法在FPGA加速卡中进行,有效提升了Mahout机器学习算法的计算性能。本专利技术的另一个目的是提供一种数据处理的装置。为解决上述技术问题,本专利技术提供了一种数据处理的方法,所述方法应用于Mahout机器学习算法,包括:读取样本集,将所述样本集中的数据分块,并对参数进行初始化;将各分块数据及所述参数传输至对应的FPGA加速卡;调用硬件应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果;判断算法是否收敛;如果所述算法收敛,则输出所述计算结果。优选的,所述调用硬件应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果包括:调用OpenCL应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果。优选的,所述调用OpenCL应用程序包括:利用JNI调用所述OpenCL应用程序。本专利技术还提供了一种Mahout机器学习算法的加速的装置,包括:初始化单元,用于读取样本集,将所述样本集中的数据分块,并对参数进行初始化;传输单元,用于将各分块数据及所述参数传输至对应的FPGA加速卡;执行单元,用于调用OpenCL应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果;判断单元,用于判断算法是否收敛;如果所述算法收敛,则输出所述计算结果。优选的,所述执行单元包括:执行子单元,用于调用OpenCL应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果;优选的,所述执行子单元包括:调用子单元,用于利用JNI调用所述OpenCL应用程序。本专利技术提供的数据处理的方法,读取样本集,将所述样本集中的数据分块,并对参数进行初始化;将各分块数据及所述参数传输至对应的FPGA加速卡;调用OpenCL应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果;判断算法是否收敛;如果所述算法收敛,则输出所述计算结果。可见,本专利技术在充分分析Mahout机器学习算法的基础上,将Mahout机器学习算法中计算量大且适合并行计算的部分引入到FPGA加速卡中,通过调用硬件应用程序,在FPGA加速卡中进行相关计算。利用FPGA加速卡对Mahout机器学习算法进行加速处理,有效提升了Mahout机器学习算法的计算性能。本专利技术提供的数据处理的装置同样具有上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的数据处理的方法的示意图;图2为本专利技术实施例提供的数据处理的装置的示意图。具体实施方式本专利技术的核心是提供一种数据处理的方法,该方法将复杂的Mahout机器学习算法在FPGA加速卡(Field-ProgrammableGateArray,现场可编程门阵列)中进行加速处理,有效提升了Mahout机器学习算法的计算性能。本专利技术的另一个核心是提供一种数据处理的装置,同样具有上述技术效果。为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,图1为本专利技术实施例提供的数据处理的方法的示意图,参考图1可知,该方法可以包括以下步骤:S100:读取样本集,将样本集中的数据分块,并对参数进行初始化;其中,读取样本集、对参数进行初始化等操作可以按照Mahout机器学习算法的原有机制执行。S200:将各分块数据及参数传输至对应的FPGA加速卡;具体的,样本集中的数据分块后,将参数以及不同的数据块传送传输至对应的FPGA加速卡。其中,各原Hadoop集群节点与对应的FPGA加速卡组成新的Hadoop集群节点,FPGA加速卡与原Hadoop集群节点通过PCIe总线进行互联通信。S300:调用硬件应用程序,利用各FPGA加速卡对各分块数据进行迭代计算并返回计算结果;由于FPGA加速卡支持verilog硬件语言、VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,超高速集成电路硬件描述语言)硬件语言、OpenCL(OpenComputingLaguage,开放式计算语言)高级语言等;所以,可以通过调用verilog硬件语言或VHDL硬件语言实现在FPGA加速卡中对各所述分块数据进行迭代计算的目的。优选的,调用硬件应用程序,利用各FPGA加速卡对各分块数据进行迭代计算并返回计算结果包括:调用OpenCL应用程序,利用各FPGA加速卡对各分块数据进行迭代计算并返回计算结果。具体的,OpenCL应用程序的内核程序通过编译过程生成FPGA加速卡的逻辑电路并作为FPGA的配置参数。接收到参数以及数据块后,各FPGA加速卡根据参数以及数据块同时执行相同的算法,然后将计算结果返回至CPU。因为OpenCL语言较之verilog硬件语言、VHDL硬件语言来说,开发相对容易、开发周期相对较短。所以,该优选方案可以较容易地实现调用OpenCL应用程序,利用各FPGA加速卡对各分块数据进行迭代计算并返回计算结果的目的。其中,Mahout调用OpenCL应用程序的接口实现,可以借助JNI(JavaNativeInterface,Java本地接口)、g++等工具实现。其中,JNI提供了若干API(Applic本文档来自技高网...
一种数据处理的方法及装置

【技术保护点】
一种数据处理的方法,其特征在于,应用于Mahout机器学习算法,包括:读取样本集,将所述样本集中的数据分块,并对参数进行初始化;将各分块数据及所述参数传输至对应的FPGA加速卡;调用硬件应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果;判断算法是否收敛;如果所述算法收敛,则输出所述计算结果。

【技术特征摘要】
1.一种数据处理的方法,其特征在于,应用于Mahout机器学习算法,包括:读取样本集,将所述样本集中的数据分块,并对参数进行初始化;将各分块数据及所述参数传输至对应的FPGA加速卡;调用硬件应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果;判断算法是否收敛;如果所述算法收敛,则输出所述计算结果。2.根据权利要求1所述的方法,其特征在于,所述调用硬件应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果包括:调用OpenCL应用程序,利用各所述FPGA加速卡对各所述分块数据进行迭代计算并返回计算结果。3.根据权利要求2所述的方法,其特征在于,所述调用OpenCL应用程序包括:利用JNI调用所述OpenCL应用程序。...

【专利技术属性】
技术研发人员:曹芳
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1