System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及图数据结构的分布式存储与计算领域,尤其涉及一种分布式的基于邻居节点聚类的图分割方法及装置。
技术介绍
1、图数据结构在大数据存储与计算领域承担着举足轻重的作用。现实生活中的社交网络、交通物流网络、疫情传播等都可以建模为一个图g(v,e),节点v∈v表示每个社交网络用户、物流集散点或者疫病感染者,边e=(u,v)∈e则表示节点间的关系,例如社交网络的关注、交通道路或者疫情传播链。随着图结构规模的不断扩大,直至单个服务器主机已无法容纳的数量级(109甚至更高),对图的分布式存储就成为了图数据库与图计算引擎性能的重要影响因素,于是对图分割算法的研究应运而生:将图结构的节点与边分散至分布式存储架构中的多台主机,并尽可能地实现负载均衡以及图计算过程中分布式通信开销的最小化。
2、图分割算法包括点分割与边分割两大类型,前者构成了相关研究与应用的主流。将图的点集v分割为指定数量的k个子集并在负载均衡的前提下尽可能减少跨分区的边的数量。相关研究提出了迭代启发式优化、邻居节点聚类、多层图分割等多种算法范式。其中以ldg为代表的邻居节点聚类,即优先选取最多个邻居所在的分区,因为实现简单、计算开销较低的同时效果良好,得到了不少图计算解决方案的青睐。然而,现有的研究(包括算法设计与实验设计)对于巨型图的分布式图分割算法缺乏足够的涉足,而关于分布式算法的已有研究要么实现繁杂、算法的复杂度常数巨大;要么算法设计存在局限,仅适用于k=2i,或者节点权值均为1的特殊情形。针对上述问题,本专利技术对ldg算法进行了分布式并行化改造,对算
技术实现思路
1、本专利技术目的在于针对现有技术的不足,提出一种分布式的基于邻居节点聚类的图分割方法及装置,本专利技术将图的每个节点的信息指派至合适的存储节点,通过负载均衡确保存储和计算开销的均匀,通过割边最小化降低服务器主机间的通信开销。
2、本专利技术的目的是通过以下技术方案来实现的:第一方面,本专利技术提出了一种分布式的基于邻居节点聚类的图分割方法,该方法包括以下步骤:
3、(1)分布式计算集群中共有p台主机,分布式计算集群中所有计算节点构成无向图结构g(v,e);其中v表示计算节点的集合,e表示计算节点之间构成的边的集合;
4、(2)将点集v和边集e分别划分为p个子集,将划分后边集的子集以及点集的子集中所有计算节点权值作为对应主机的初始输入;
5、(3)通过主机间的all-to-all集合通信将所有计算节点的权值c(u)移动至第i台主机;将所有满足起始点的边(u,v)移动至第i台主机,得到预处理后的边集,表示为标号在ri-1~ri-1范围内的所有计算节点;ri表示第i台主机计算节点标号分界点;
6、(4)在第i台主机内部,定义为所有终点位于第j台主机的边,为上述中出现过的所有起始节点,i≠j,便于确定节点间通信的目标主机;
7、(5)对于每个计算节点v∈v,令π(v)←randint(1,k),即在1~k之间等概率随机选取一个分区标号;
8、(6)执行若干次迭代,每轮迭代对分区结果π(v)进行更新;得到第i台主机输出所有内部节点最终的分区标号π(u)。
9、进一步地,步骤(3)中,根据得到的处理结果,对每个计算节点所在的主机进行索引,对于每个计算节点v∈v,只需要凭借v的标号能够定位到计算集群中哪台主机将其作为内部节点。
10、进一步地,步骤(3)中,具体步骤如下:
11、(3.1)在每台主机内部,将每条无向边拆分为两条边(u,v)和(v,u);
12、(3.2)对所有拆分后的边按照(u,v)的字典序执行任一保证排序后负载均衡的分布式排序算法,使得算法结束后,第1台主机持有的边集持有字典序最小的2|e|/p条边,第2台主机持有的边集持有紧随其后的2|e|/p条边……以此类推直至最后一台主机
13、(3.3)计算每台主机对应的分界点即每个节点u被划归至自身作为边的起点出现时,标号最小的主机;
14、(3.4)令为标号在ri-1~ri-1范围内的所有节点,通过主机间的all-to-all集合通信将所有节点的权值c(u)移动至第i台主机;
15、(3.5)输入策略标号a或b。若maxdeg(v)>2|e|/p,则强制将策略标号修改为b;若策略标号为b,则跳转至步骤3.7;否则,跳转至步骤3.6;
16、(3.6)将所有满足起始点的边(u,v)移动至第i台主机,得到预处理后的边集结束预处理步骤;
17、(3.7)对于每一个分区令
18、(3.8)令表示所有“跨分区”的节点u:其自身处于另外第j台主机的内部节点之内,却在当前第i台主机内存在以u为起点的边。从自身存储的完成对所有的计算之后,通过all-to-all集合通信算子将其告知第j台主机,结束预处理步骤。
19、进一步地,步骤(6)中,每一轮迭代过程如下:
20、(6.1)同步分区结果:第i台主机通过all-to-all集合通信将内所有节点的分区结果发送至第j台主机;
21、(6.2)单机ldg算法:每台主机分别对所有内部节点以k,λ为参数执行单机ldg算法,更新所有内部节点的所在分区π(u)。
22、进一步地,单机ldg算法的步骤如下:
23、1)计算所有内部节点的总权值以及每个分区的容量上限li=(1+λ)ci/k;
24、2)记录每个分区的余量li,j,初始时第j个分区的余量为ri,j←li;
25、3)遍历所有内部节点:对于每个节点为其选取分区标号即以各分区余量为惩罚因子之后,邻居节点所在最多的分区,然后令ri,π(u)←ri,π(u)-c(u)减少所选分区的余量。
26、第二方面,本专利技术还提供了一种分布式的基于邻居节点聚类的图分割装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现所述的一种分布式的基于邻居节点聚类的图分割方法。
27、第三方面,本专利技术还提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时,实现所述的一种分布式的基于邻居节点聚类的图分割方法。
28、本专利技术的有益效果:相比于metis等基于多层图收缩的划分算法,本专利技术提出的基于邻居节点聚类的算法具有分布式实现简单、运行时间开销较小,以及可扩展性强等优点。对多个大型图结构的实验结果表明,若以割边数量作为衡量标准,本专利技术的算法可以在更短的时间内取得与metis近似的分割效果。
本文档来自技高网...【技术保护点】
1.一种分布式的基于邻居节点聚类的图分割方法,其特征在于,该方法包括以下步骤:
2.根据权利要求1所述的一种分布式的基于邻居节点聚类的图分割方法,其特征在于,步骤(3)中,根据得到的处理结果,对每个计算节点所在的主机进行索引,对于每个计算节点v∈V,只需要凭借v的标号能够定位到计算集群中哪台主机将其作为内部节点。
3.根据权利要求1所述的一种分布式的基于邻居节点聚类的图分割方法,其特征在于,步骤(3)中,具体步骤如下:
4.根据权利要求1所述的一种分布式的基于邻居节点聚类的图分割方法,其特征在于,步骤(6)中,每一轮迭代过程如下:
5.根据权利要求1所述的一种分布式的基于邻居节点聚类的图分割方法,其特征在于,单机LDG算法的步骤如下:
6.一种分布式的基于邻居节点聚类的图分割装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述处理器执行所述可执行代码时,实现如权利要求1-5中任一项所述的一种分布式的基于邻居节点聚类的图分割方法。
7.一种计算机可读存储介质,其上存储有程序,其特征
...【技术特征摘要】
1.一种分布式的基于邻居节点聚类的图分割方法,其特征在于,该方法包括以下步骤:
2.根据权利要求1所述的一种分布式的基于邻居节点聚类的图分割方法,其特征在于,步骤(3)中,根据得到的处理结果,对每个计算节点所在的主机进行索引,对于每个计算节点v∈v,只需要凭借v的标号能够定位到计算集群中哪台主机将其作为内部节点。
3.根据权利要求1所述的一种分布式的基于邻居节点聚类的图分割方法,其特征在于,步骤(3)中,具体步骤如下:
4.根据权利要求1所述的一种分布式的基于邻居节点聚类的图分割方法,其特征在于,步骤(6)中...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。