[发明专利]一种基于多GPU的强连通图检测方法有效
申请号: | 201910371236.9 | 申请日: | 2019-05-06 |
公开(公告)号: | CN110264392B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 吴广君;王树鹏;侯骏腾;李斌斌 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06T1/60 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 陈艳 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu 连通 检测 方法 | ||
1.一种基于多GPU的强连通图检测方法,其特征在于,包括以下步骤:
加载图数据并统一存储格式;
对图数据进行预处理,包括按照分区个数进行图分割并进行分区保存,对相互链接的处于不同分区的顶点进行复制顶点处理;
将预处理好的数据存入多个GPU中,以复制顶点为中心进行广度优先遍历并记录复制边信息;
将复制边传回CPU,利用Tarjan算法检测强连通图并标记属于同一个强连通图的顶点;
将标记的顶点传回上述多个GPU中,所有GPU同时并行执行利用FB-Reinfore算法进行强连通图检测,包括:复制顶点处的强连通图检测,非复制顶点处的数据并行的强连通图检测,以及非复制顶点处的任务并行的强连通图检测。
2.如权利要求1所述的方法,其特征在于,图数据包括的信息有顶点数、边数、每条边的头顶点和尾顶点的编号。
3.如权利要求1所述的方法,其特征在于,将图数据以CSR格式进行统一存储,包括以下步骤:
申请比边数大1的链接顶点数组C和比顶点数大1的链接顶点位置数组R;
在数组C中依次存储以每个顶点为头顶点的所有边的尾顶点信息,数组C的最后一个元素赋为空值;在数组R中,第i个元素存储以第i个顶点为头顶点的所有边的第一个尾顶点的在数组C中的位置信息,最后一个元素存储数组C中最后一个元素的位置。
4.如权利要求1所述的方法,其特征在于,预处理的步骤包括:
将图数据进行图分割后,得到每个顶点所对应的分区编号与每个分区的顶点个数,将分区编号按照顶点序号读入一数组P中,该数组P的第i个元素记录了顶点i所属的分区编号;
根据设备的GPU总数N,申请数组Ci、数组Ri、复制点标记数组Mi和对应于分区的顶点标记数组Vi,其中1≤i≤N;
对于图数据中遍历到的每个顶点,根据数组P中记录的顶点的分区号,将顶点记入所在分区的数组Vi中,将该顶点的链接顶点情况记录到数组Ci和数组Ri中;
如果一顶点j链接到的某个顶点k属于其他分区,则将该顶点k也存入顶点j对应的数组Vi中,并将顶点j标记为复制顶点,在数组Mi中顶点j所对应位置标记为1,在顶点k所属的分区中将顶点k也标记为复制顶点;如果顶点j链接到的所有顶点均属于顶点j所在分区,则在数组Mi中顶点j所对应位置标记为0。
5.如权利要求4所述的方法,其特征在于,以复制顶点为中心进行广度优先遍历并记录复制边信息为所有GPU并行运行,包括以下步骤:
对于存储于第i个GPU中的每个顶点,如果某个顶点j在数组MGi中的标记为1,则进行以顶点j为中心的广度优先遍历;
如果所遍历到的顶点k不属于当前分区或者顶点k在数组MGi中的标记为1,则将顶点组(j,k)做为新的边存入数组EGi中;
重复以上的两个步骤,直到每个GPU上的所有顶点被检测完。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910371236.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:训练数据处理方法及设备
- 下一篇:一种信息处理方法、终端和存储介质