[发明专利]一种基于SCC‑DAG的图计算迭代处理方法在审
申请号: | 201611070021.6 | 申请日: | 2016-11-28 |
公开(公告)号: | CN106776858A | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 廖小飞;金海;石翔;张宇;李陈希 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 赵伟 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 scc dag 计算 处理 方法 | ||
技术领域
本发明属于计算机大数据处理的图计算领域,更具体地,涉及一种基于SCC-DAG的图计算迭代处理方法。
背景技术
“图”是一种表达对真实世界中对象与对象之间的连接关系的数据结构,基于图的结构运行图算法对图进行分析可得到其中包含的有用信息。譬如,通过PageRank算法可获取图中顶点的重要性;通过SSSP算法可获取顶点间的最短路径;这些算法通过多轮的迭代最终达到收敛的状态;收敛状态的数据即为算法运行的结果。
迭代方法包括同步迭代和异步迭代;同步迭代方法基于传统的BSP模型,严格的区分每一轮迭代的先后顺序,下一轮迭代须等待上一轮迭代的完成;每一轮迭代都需要遍历所有的图数据一遍,当多次遍历图后,图达到收敛状态。同步迭代存在以下问题:(1)负载不均衡:由于图中顶点的边数量的差异,带来了图顶点计算量的差异,每次迭代都需要等待整张图遍历完成,使得边数量很少的顶点需要等待边数量很大的顶点计算完成;(2)收敛缓慢,图算法迭代收敛的本质是根据图中顶点链接的结构,让数据在顶点间得到充分传递;由于每一轮迭代是基于上一轮的迭代数据,使得每一轮的迭代操作只能够将数据传递到顶点的邻居顶点,数据传递效率慢,使得图收敛缓慢。
异步迭代方法打破了BSP模型的屏障,迭代不再分为每一轮进行,迭代的单位也不再是整张图。当某个顶点达到计算条件时,无需等待其它无关顶点的计算是否完成,即可立即开始计算。因此消除了负载不均衡的问题,也加速了数据在顶点间的传递。但异步迭代仍然存在以下问题:(1)计算不饱和:由于顶点满足条件即可进行计算,使得一些顶点在未积累够足够的数据,便开始计算,造成计算不饱和;(2)不稳定:数据在顶点间的传递不是同时的,而是各自在顶点间的传递,造成数据在顶点间来回震荡,无法有效的完成图的收敛。
在大数据环境下,无论是同步迭代方法还是异步迭代方法,除了上述问题外,还面临着一个巨大的问题--计算冗余;计算冗余体现在迭代收敛中的“木桶效应”上。即在迭代时,大部分收敛的顶点会被少部分未收敛的顶点影响,变得不收敛,进而每次迭代都需计算整张图的大部分或全部,带来大量的计算冗余,导致大量的CPU资源消耗。并且,在大数据环境下,图数据的规模达到上百亿甚至上千亿条记录,使得计算冗余也消耗了大量的IO资源,因为内存已经无法满足对图数据的存储,需要使用外设资源,继而在迭代时存在大量的IO换入换出操作,造成巨大的IO资源消耗。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于SCC-DAG(Strongly Connected Component-Directed Acyclic Graph)的图计算迭代处理方法,其目的在于减小大数据环境下图处理中同步迭代与异步迭代的计算冗余。
为实现上述目的,按照本发明的一个方面,提供了一种基于SCC-DAG的图计算迭代处理方法,包括如下步骤:
(1)预处理:获取给定的图中所有的SCC,并对SCC进行拓扑排序,根据SCC的拓扑顺序构建SCC-DAG;
(2)计算:按照SCC的拓扑顺序依次在SCC-DAG的各SCC内进行迭代,直至所有SCC收敛。
本发明中,SCC(Strongly Connected Component)是指图的强连通分量,是给定图中的极大强连通子图;给定的图包括多个SCC;一个SCC也可以是一个顶点;
DAG(Directed Acyclic Graph)是指有向无环图,是不存在环路的图结构;将DAG中的边作为数据的流向,则DAG中的数据只会从“上游”流向“下游”;
在本发明中,对于给定的图,首先把图中所有的SCC找出来,然后将SCC抽象成点,由SCC之间的连接构成DAG,将这种由强连通分量构成的有向无环图定义为SCC-DAG。
优选地,上述基于SCC-DAG的图计算迭代处理方法,其步骤(2)包括如下子步骤:
(2.1)根据SCC-DAG中SCC的拓扑顺序从所述SCC-DAG中选定一个SCC;
(2.2)在选定的SCC中执行实际需求实现所对应的算法,并采用同步迭代或异步迭代对每个顶点进行计算;
步骤(2.1)中选定的SCC就是本步骤的迭代计算的对象;本步骤中执行何种算法是由实际需求所决定的,与实际需求相应;
譬如:若需要计算网页排名,则实现pagerank算法;若需要计算最短路径,则实现SSSP算法;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611070021.6/2.html,转载请声明来源钻瓜专利网。