[发明专利]基于GPU的高性能图挖掘方法及系统有效
申请号: | 202011078543.7 | 申请日: | 2020-10-10 |
公开(公告)号: | CN111984833B | 公开(公告)日: | 2023-08-01 |
发明(设计)人: | 谭光明;林志恒;张春明;段勃 | 申请(专利权)人: | 中科院计算所西部高等技术研究院 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903 |
代理公司: | 北京海虹嘉诚知识产权代理有限公司 11129 | 代理人: | 胡博文 |
地址: | 401121 重庆市渝*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 gpu 性能 挖掘 方法 系统 | ||
1.一种基于GPU的高性能图挖掘方法,其特征在于,包括以下步骤:
根据不同的图挖掘应用,构建相应的搜索空间;
根据用户提供的子图信息在所述搜索空间内候选出若干顶点或边,构建初始的候选子图集合;
将所述搜索空间和候选子图集合作为Grow-Cull执行模型的输入,通过Grow操作对所述候选子图集合进行扩展得到中间子图集合,然后通过Cull操作在所述中间子图集合中筛选出合格的子图得到新候选子图集合;
判断所述新候选子图集合是否满足用户指定条件,若是,则结束操作,此时所述新候选子图集合包括所有用户所需要得子图;否则,将所述新候选子图集合覆盖前一轮的候选子图集合作为Grow操作的输入,迭代执行Grow操作和Cull操作,直到找到所有满足用户指定条件的子图;
采用GPU执行所述Grow操作,采用CPU执行Cull操作,GPU执行所述Grow操作后将得到的中间子图集合拷贝至CPU执行Cull操作,并将所述中间子图集合保存在CPU内存中;在迭代执行Grow操作和Cull操作时,每次仅将当轮迭代过程中得到的新候选子图集合拷贝至GPU执行Grow操作。
2.根据权利要求1所述的基于GPU的高性能图挖掘方法,其特征在于,上述通过Grow操作对所述候选子图集合进行扩展得到中间子图集合具体包括:
对候选子图集合中的子图进行点扩展或者边扩展;
检查所述点扩展或者边扩展的合法性;
删除不满足扩展合法性的子图,同时根据满足扩展合法性的子图生成中间子图集合。
3.一种基于GPU的高性能图挖掘系统,其特征在于,包括GPU和CPU;所述GPU和CPU通过以下步骤实现图挖掘:
通过所述CPU根据不同的图挖掘应用,构建相应的搜索空间;并根据用户提供的子图信息在所述搜索空间内候选出若干顶点或边,构建初始的候选子图集合;
将所述候选子图集合拷贝至所述GPU,通过GPU执行Grow操作,对所述候选子图集合进行扩展得到中间子图集合;
将所述中间子图集合拷贝至所述CPU进行保存,并CPU通执行Cull操作,在所述中间子图集合中筛选出合格的子图得到新候选子图集合并保存在CPU主存上;
利用CPU得到的新候选子图集合替换所述候选子图集合,迭代执行Grow操作和Cull操作,直至得到所有满足用户指定条件的子图。
4.根据权利要求3所述的基于GPU的高性能图挖掘系统,其特征在于,还包括用户编程接口;所述用户编程接口包括应用于Grow阶段的TOEXPAND接口和TOADD接口以及应用于Cull阶段的FOREDGE接口、TOCHECK接口和TOCOMPARE接口;其中,
TOEXPAND接口,用于确定需要处理子图的某一个顶点以及如何访问该顶点的邻居;
TOADD接口,用于消除子图的同构冗余,以及描述剪枝操作以加速搜索;
TOCHECK接口,用于以子图为输入,判断新加入的顶点与当前子图内的所有顶点之间的关系;
FOREDGE接口,用于定制统一的边关系;
TOCOMPARE接口,用于判断候选子图和查询子图是否同构。
5.根据权利要求4所述的基于GPU的高性能图挖掘系统,其特征在于,所述用户编程接口还包括:
IS_CONNECT接口,用于判断两个顶点是否有边相连;
COMMON_NEIGHBOR接口,主要是来寻找两个顶点的公共邻居。
6.根据权利要求3-5任一所述的基于GPU的高性能图挖掘系统,其特征在于,所述CPU和GPU之间可同时双向拷贝数据,CPU计算和GPU计算可同时执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科院计算所西部高等技术研究院,未经中科院计算所西部高等技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011078543.7/1.html,转载请声明来源钻瓜专利网。