当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于FPGA的低能耗社区挖掘方法技术

技术编号:19009224 阅读:39 留言:0更新日期:2018-09-22 09:05
本发明专利技术涉及一种基于FPGA的低能耗社区挖掘方法,包括以下步骤:S1.将大型网络抽象成一个图,初始化系统参数,设置遍历节点的半径阈值;S2.遍历还没有被访问过的节点,根据节点半径的阈值,选择输入到FPGA的数据,从而建立起基于FPGA的数据结构;将该节点设置为社区圈子的种子,从该节点出发进行扩展圈子;S3.不断扩展该节点,采用基于FPGA的节点遍历函数、基于FPGA的导率计算函数,使用FPGA的查找表结构标记节点的访问状态,当社区圈子的导率无法再减小时,社区扩展完毕,将社区圈子加入到社区圈子集合;S4.判断节点访问状态,如果仍有节点没有被访问,跳到步骤S2,否则进入步骤S5;S5.输出挖掘出来的社区圈子。

A low energy community mining method based on FPGA

The invention relates to a low-energy community mining method based on FPGA, which comprises the following steps: S1. abstracting a large-scale network into a graph, initializing system parameters, setting the radius threshold of traversing nodes; S2. traversing nodes that have not been visited, selecting data input to the FPGA according to the threshold of node radius, and thus establishing Starting from the data structure based on FPGA, the node is set as the seed of the community circle, from which to expand the circle; S3. Continuously expanding the node, using the node traversal function based on FPGA, the derivative calculation function based on FPGA, using the look-up table structure of FPGA to mark the access state of the node, when the community circle's derivative. When it can not be reduced, the community expands and joins the community circle into the community circle subset; S4. Judges the access status of nodes, if there are still nodes not accessed, jump to S2, otherwise enter the community circle excavated by S2; S5. Output.

【技术实现步骤摘要】
一种基于FPGA的低能耗社区挖掘方法
本专利技术涉及并行计算与社交网络领域,更具体地,涉及一种基于FPGA的低能耗社区挖掘方法。
技术介绍
近年来,随着FPGA(FieldProgrammableGateArray,即现场可编程逻辑门阵列)的并行计算能力的增强,以及其可编程的灵活性和低能耗的优势,越来越多基于FPGA的研究涌现出来。FPGA的其中一个特性是可编程性,可以使用VHDL等硬件描述语言来实现算法,它也是CPLD等可编程器件的升级器件,具有很强的可编程能力,解决了原有编程器件的不足,同时也克服了专用定制电路的不灵活;FPGA具有很高的并行能力,相比于CPU和GPU而言,FPGA具有更多的可执行单元(ProcessingElement),能够实现更高的并行度,尤其适用于高并发性算法的执行;FPGA是一种低能耗的器件,相比于CPU和GPU,其能耗可以降低很多,其根本原因在于FPGA本身的设计以及其时钟频率较低,但是其高并发性弥补了其性能的不足。社区挖掘(CommunityDetection)可以看成一个聚类算法,将不同的节点聚类成一个个的社区,社区内部的节点之间的连接往往很紧密,而与社区外部的节点的连接往往较为稀疏。挖掘出来的社区主要分为可重叠社区和非重叠社区,区别在于两个社区之间是否有顶点的交集。这是一种比较定性的刻画,但是社区可以理解为一个高度聚合的子图,包含部分顶点和顶点之间的边。近年来,随着社交网络(如Facebook,微博)的兴起,社区挖掘逐渐成为一个热门的研究领域,挖掘出来的社区可以用于商品推荐,广告投放或者风险预测等应用。但是,由于社交网络一般是一个庞大的网络,需要非常多的计算资源,并且目前的CPU和GPU的实现在可扩展性方面表现并非很好,CPU和GPU的能耗较高,同时已有的社区挖掘算法,有些局限于不可重叠的社区挖掘,并且已有的在FPGA实现的图的计算引擎,只涉及到简单的算法(比如BFS遍历算法),目前比较少基于FPGA的社区挖掘算法的研究,并且FPGA的高并发度也给基于大型网络的社区挖掘算法,带来了新的机遇。但是,在FPGA之上设计社区挖掘算法,需要充分考虑FPGA的特性,比如BRAM和On-chipmemory的本身的大小。
技术实现思路
本专利技术的专利技术目的在于提供一种基于FPGA的低能耗社区挖掘方法,可以挖掘出可重叠的社区圈子,同时该方法充分利用FPGA的特性,可以实现较高的并行度。此外,由于FPGA本身的功耗较低,相比于传统的CPU和GPU设计,本方法能够实现较低的能耗。为实现以上专利技术目的,采用的技术方案是:一种基于FPGA的低能耗社区挖掘方法,包括以下步骤:S1.将大型网络抽象成一个图,初始化系统参数,设置遍历节点的半径阈值;S2.遍历还没有被访问过的节点,根据节点半径的阈值,选择输入到FPGA的数据,从而建立起基于FPGA的数据结构;将该节点设置为社区圈子的种子,从该节点出发进行扩展圈子;S3.不断扩展该节点,采用基于FPGA的节点遍历函数、基于FPGA的导率计算函数,使用FPGA的查找表结构标记节点的访问状态,当社区圈子的导率无法再减小时,社区扩展完毕,将社区圈子加入到社区圈子集合;S4.判断节点访问状态,如果仍有节点没有被访问,跳到步骤S2,否则进入步骤S5;S5.输出挖掘出来的社区圈子。与现有技术相比,本专利技术的有益效果是:本专利技术基于FPGA的抽象图结构设计,设计了一种低能耗的社区挖掘方法。本专利技术提供的方法可以挖掘出可重叠的社区,不需要提前知道社区圈子的数目,同时本专利技术涉及的社区挖掘算法是一种以点为中心的社区挖掘方法,可以并行执行,充分利用FPGA的高并发度的特点,并且不需要将大型图分割成若干个分离的图。此外,由于FPGA本身的功耗较低,相比于传统的CPU和GPU设计,本方法能够实现较低的能耗。附图说明图1为系统框架图。图2为VertexTable和EdgeTable的数据结构设计示例图。图3为bitmap的实例示意图(0表示节点不在社区之中,1表示节点在社区之中)。图4为基于FPGA的低能耗社区挖掘方法的流程图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;以下结合附图和实施例对本专利技术做进一步的阐述。实施例1本专利技术使用G=(V,E)抽象化表示一个网络,其中V表示节点的集合,E表示网络之中边的集合。如果节点u,v∈V,同时存在一条边连接着这两个节点,那么可以表示为(u,v)∈E。首先展示整个框架,如图1所示,整个系统由InputElement(IE,输入单元),FilterElement(FE,过滤单元),MemoryInterface(MI,内存接口),ProcessingElement(PE,处理单元)构成,基于FPGA的低能耗社区挖掘方法将会运行在PE处理单元之中,因为FPGA之上有着很多的PE,同时本专利技术提供的方法是以点为中心的社区挖掘方法,可以并行跑在这些PE之上。FE的主要作用是剔除冗余的圈子,如果两个圈子的相似度较大,则只保留较大的圈子。IE和MI的作用在于数据的传输,包括刚开始图的输入,以及执行完毕社区圈子的输出。在传统的社区挖掘的研究之中,主要采用Conductance(导率)和Modularity(模块度)作为衡量的指标,本专利技术主要采用Conductance作为衡量的指标,并且定义Conductance为:越低的Conductance表示社区圈子更加紧密,那么如何最小化Conductance的过程,就是不断扩充社区的过程。注意到FPGA的On-Chipmemory是有限的,无法将整个图导入到板上的内存之中,所以本专利技术采用一种从点出发的社区挖掘方法,通过不断地扩展该点的邻居点,最终形成Conductance最低的圈子。那么在这个过程之中,本专利技术发现其主要遍历从该点出发的顶点,因为一个社区的半径应该有一个阈值,那么可以根据On-Chipmemory的大小,动态调整这个阈值,从而决定应该往BRAM上导入多少数据。举个例子,如果BRAM能够支持半径为20的大小,那么就将阈值设为20,那么从该点出发的半径为20以内的顶点,都会被导入到BRAM之中。如果数据过大,那么就将阈值设小。本专利技术主要设计三种数据结构,分别是VertexTable(存储节点的查找表),EdgeTable(存储节点之间的边的查找表),bitmap(用来表示节点是否在社区圈子之中)。其中VertexTable和EdgeTable都是FPGA的查找表(LookUpTable),访问速度很快,充分利用了FPGA的特性。设计的VertexTable和EdgeTable如图2所示。注意到存储VertexTable时,加入了一个指针,用来快速指向该节点相关的边的起始位置,这样可以更迅速的找到与顶点相关联的边。在扩充圈子的过程之中,以点为中心的社区挖掘方法,主要是扩充邻居点,那么需要判断顶点是否在圈子之中,所以本专利技术设计的一个bitmap实例,其结构如图3所示。下面结合图4来解释方法的主要步骤,具体步骤如下:(Step1)将大型网络抽象成一个图,初始化系统参数,设置遍历节点的半径阈值。(Step2)遍历还没有被访问过的节点,根据节点半径的阈值,选择输入到FPGA的数据(节点数据Vert本文档来自技高网
...
一种基于FPGA的低能耗社区挖掘方法

【技术保护点】
1.一种基于FPGA的低能耗社区挖掘方法,其特征在于:包括以下步骤:S1.将大型网络抽象成一个图,初始化系统参数,设置遍历节点的半径阈值;S2.遍历还没有被访问过的节点,根据节点半径的阈值,选择输入到FPGA的数据,从而建立起基于FPGA的数据结构;将该节点设置为社区圈子的种子,从该节点出发进行扩展圈子;S3.不断扩展该节点,采用基于FPGA的节点遍历函数、基于FPGA的导率计算函数,使用FPGA的查找表结构标记节点的访问状态,当社区圈子的导率无法再减小时,社区扩展完毕,将社区圈子加入到社区圈子集合;S4.判断节点访问状态,如果仍有节点没有被访问,跳到步骤S2,否则进入步骤S5;S5.输出挖掘出来的社区圈子。

【技术特征摘要】
1.一种基于FPGA的低能耗社区挖掘方法,其特征在于:包括以下步骤:S1.将大型网络抽象成一个图,初始化系统参数,设置遍历节点的半径阈值;S2.遍历还没有被访问过的节点,根据节点半径的阈值,选择输入到FPGA的数据,从而建立起基于FPGA的数据结构;将该节点设置为社区圈子的种子,从该节点出发进行扩展圈子;S...

【专利技术属性】
技术研发人员:吴迪叶国桥黄宇韬
申请(专利权)人:中山大学
类型:发明
国别省市:广东,44

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

1