基于FPGA的FP‑Growth算法的改进方法及装置制造方法及图纸

技术编号:15691072 阅读:211 留言:0更新日期:2017-06-24 03:59
本发明专利技术涉及一种FP‑Growth算法,特别涉及一种基于FPGA的FP‑Growth算法的改进方法及装置,属于机器学习算法处理领域,首先扫描Spark集群中的数据库,获取频繁项集;将频繁项集进行分组;为Spark集群中的每个节点加配一块FPGA板卡;在FPGA板卡上对每一组频繁项集建FP树;对每一组建的FP树进行递归挖掘;将每一组递归挖掘的结果进行合并。本发明专利技术提高了FP‑Growth算法的效率,通过在集群节点上加配FPGA板卡来提高Spark集群单节点的计算能力,同时保留了Spark集群自身的并行计算框架,有效提高了大数据环境下FP‑Growth算法的整体性能。

Method and device for improved FP Growth algorithm based on FPGA

The present invention relates to a FP Growth algorithm, particularly relates to a method and device for improved FP Growth algorithm based on FPGA algorithm, belonging to the field of learning machine, the first scan in Spark cluster database, obtaining frequent itemsets; the frequent itemsets are grouped into Spark clusters; in each node with a FPGA boards; set to build FP tree for each frequent item in the FPGA board; recursive mining for each set of FP tree; merging results each group of recursive mining. The invention improves the efficiency of FP Growth algorithm, to improve the computing ability of single node Spark cluster by adding FPGA in cluster nodes, while retaining its parallel Spark cluster computing framework, effectively improve the overall performance of the FP Growth algorithm under the big data environment.

【技术实现步骤摘要】
基于FPGA的FP-Growth算法的改进方法及装置
本专利技术涉及机器学习算法处理领域,尤其涉及基于FPGA的FP-Growth算法的改进方法及装置。
技术介绍
基于Spark平台的FP-Growth算法采用MapReduce分布式计算模型、立足于内存计算,实现了该算法的并行化,在一定程度上提升了该算法的挖掘效率;然而随着大数据时代的到来,科学和工程计算领域的数据量急剧增长,计算复杂度不断增加,给基于Spark平台的FP-Growth算法的计算性能带来了极大挑战。由于单节点处理能力有限,Spark通过扩展集群节点规模来实现算法性能的提升;而这种集群扩展不仅使得系统成本和能耗快速增加,而且使得集群网络复杂度和节点间的数据传输开销急剧上升,降低了集群扩展带来的计算性能增益。如何才能解决上述问题,增强单节点处理能力、进而减少计算集群快速扩张带来的网络传输开销,最终实现FP-Growth算法的性能提升成为亟待解决的热点问题。
技术实现思路
本专利技术提供的基于FPGA的FP-Growth算法的改进方法及装置,克服了现有技术中存在的不足,显著的提升了FP-Growth算法的计算性能。为了达到上述目的,本专利技术是通过以下技术方案实现的:本专利技术提供一种基于FPGA的FP-Growth算法的改进方法,包括以下步骤:扫描Spark集群中的数据库,获取频繁项集;将频繁项集进行分组;为Spark集群中的每个节点加配一块FPGA板卡;在FPGA板卡上对每一组的频繁项集建FP树;在FPGA板卡上对每一组建的FP树进行递归挖掘;将每一组递归挖掘的结果进行合并。进一步地,将频繁项集进行分组,包括:将其按频繁1-项集顺序递减排列;根据数据库的大小确定分组个数,按照预先设定的分组规则将其分为若干组。进一步地,在FPGA板卡对每一组建FP树,包括:建立一个根节点为NULL的FP树和一个存储节点信息的Tab表;将频繁项表中的每条处理好的事务中的数据项按降序依次插入到FP树中,构建出FP树的一条路径;在上述的插入过程中,同时用Tab的指针指向对应项的节点,并将每个节点的计数增加1。进一步地,在FPGA板卡对每一组建的FP树进行递归挖掘,包括:A:从Tab表的尾部的项开始向上遍历FP树,每次遍历得到该项的条件模式基;B:将其条件模式基转化为条件FP树;C:迭代重复步骤A步骤B,直到FP树包含一个元素项为止。进一步地,将每一组递归挖掘的结果进行合并,包括:将每一棵条件FP树生成所有的从根节点到叶子节点的路径,由路径中的集合生成其所有的非空子集。基于上述的任一项一种基于FPGA的FP-Growth算法的改进方法的一种基于FPGA的FP-Growth算法的改进装置,包括:获取模块,用于扫描Spark集群中的数据库,获取频繁项集;分组模块,用于将频繁项集进行分组;板卡模块,用于为Spark集群中的每个节点加配一块FPGA板卡;建树模块,用于在FPGA板卡上对每一组的频繁项集建FP树;挖掘树模块,用于在FPGA板卡上对每一组建的FP树进行递归挖掘;结果模块,用于将每一组递归挖掘的结果进行合并。本专利技术所提供的一种基于FPGA的FP-Growth算法的改进方法,具有如下优点:1.本专利技术通过在原有Spark集群的基础上加配FPGA,为每个集群节点增加一块FPGA板卡,由于FPGA板卡具有高性能、低功耗、易编程、动态可重构等突出优势,是一种新型的异构计算加速器件,将FPGA板卡与原有节点组成新的Spark集群节点服务于整个Spark集群,来提高集群单节点的计算能力,同时保留了Spark集群自身的并行计算框架,有效提高了大数据环境下FP-Growth算法的整体性能,且FPGA作为加速设备与CPU相配合形成异构计算平台,能够有效的提升Spark集群的综合性能;2.本专利技术将FPGA与Spark相结合,将算法中最耗时、计算量最大的建树与挖掘树部分从Spark源码中抽离并在FPGA上开发实现并优化,而算法的其他部分如数据分组、挖掘结果综合等计算量较小的部分仍按照Spark原有机制运行,充分发挥二者优势,并在此基础上对FP-Growth算法进行优化改进,有效的提升FP-Growth算法的计算性能。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例。图1为本专利技术实施例1基于FPGA的FP-Growth算法的改进方法的流程示意图之一。图2为本专利技术实施例2基于FPGA的FP-Growth算法的改进方法的流程示意图之二。图3为本专利技术实施例3基于FPGA的FP-Growth算法的改进装置的结构示意图。具体实施方式下面对本专利技术中涉及到的一些技术词语进行解释:频繁项:在多个集合中,频繁出现的元素/项。频繁项集:一系列集合,这些集合有些相同的元素,集合中同时出现频率高的元素形成一个子集,满足一定阈值条件的项集。条件模式基:同一个频繁项在FP树中的所有节点的祖先路径的集合。Spark:是通用并行框架,启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS。FPGA:英文全称为Field-ProgrammableGateArray,即现场可编程门阵列,它是一种逻辑器件,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面结合附图和实施例对本专利技术进行详细的描述。实施例1参考图1,本专利技术的一种基于FPGA的FP-Growth算法的改进方法,包括以下步骤:S101:扫描Spark集群中的数据库,获取频繁项集;S102:将频繁项集进行分组;S103:为Spark集群中的每个节点加配一块FPGA板卡;S104:在FPGA板卡上对每一组的频繁项集建FP树;S105:在FPGA板卡上对每一组建的FP树进行递归挖掘;S106:将每一组递归挖掘的结果进行合并。实施例2参考图2,本专利技术的一种基于FPGA的FP-Growth算法的改进方法,包括以下步骤:S201:扫描Spark集群中的数据库,获取频繁项集;S202:将其按频繁1-项集顺序递减排列;S203:根据数据库的大小确定分组个数,按照预先设定的分组规则将其分为若干组;S204:为Spark集群中的每个节点加配一块FPGA板卡;S205:建立一个根节点为NULL的FP树和一个存储节点信息的Tab表;S206:将频繁项表中的每条处理好的事务中的数据项按降序依次插入到FP树中,构建出FP树的一条路径;S207:在上述的插入过程中,同时用Tab的指针指向对应项的节点,并将每个节点的计数增加1;S208:从Tab表的尾部的项开始向上遍历FP树,每次遍历得到该项的条件模式基;S209:将其条件模式基本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201710088020.html" title="基于FPGA的FP‑Growth算法的改进方法及装置原文来自X技术">基于FPGA的FP‑Growth算法的改进方法及装置</a>

【技术保护点】
一种基于FPGA的FP‑Growth算法的改进方法,其特征在于,包括以下步骤:扫描Spark集群中的数据库,获取频繁项集;将频繁项集进行分组;为Spark集群中的每个节点加配一块FPGA板卡;在FPGA板卡上对每一组的频繁项集建FP树;在FPGA板卡上对每一组建的FP树进行递归挖掘;将每一组递归挖掘的结果进行合并。

【技术特征摘要】
1.一种基于FPGA的FP-Growth算法的改进方法,其特征在于,包括以下步骤:扫描Spark集群中的数据库,获取频繁项集;将频繁项集进行分组;为Spark集群中的每个节点加配一块FPGA板卡;在FPGA板卡上对每一组的频繁项集建FP树;在FPGA板卡上对每一组建的FP树进行递归挖掘;将每一组递归挖掘的结果进行合并。2.根据权利要求1所述的基于FPGA的FP-Growth算法的改进方法,其特征在于,将频繁项集进行分组,包括:将其按频繁1-项集顺序递减排列;根据数据库的大小确定分组个数,按照预先设定的分组规则将其分为若干组。3.根据权利要求1所述的基于FPGA的FP-Growth算法的改进方法,其特征在于,在FPGA板卡对每一组建FP树,包括:建立一个根节点为NULL的FP树和一个存储节点信息的Tab表;将频繁项表中的每条处理好的事务中的数据项按降序依次插入到FP树中,构建出FP树的一条路径;在上述的插入过程中,同时用Tab的指针指向对应项的节点,并将每个节点的计数增加1。4.根据权利要求3所述的基于FPGA的FP-Gro...

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

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

1