一种基于图结构分布式并行模式构建图的方法与流程

文档序号:19105760发布日期:2019-11-12 22:39阅读:247来源:国知局
一种基于图结构分布式并行模式构建图的方法与流程

一种基于图结构分布式并行模式构建图的方法,用于分布式并行模式构建图结构的图,涉及数据结构中的图结构技术领域、分布式并行运算技术领域和图的合并技术领域。



背景技术:

现有的图(即基于图结构的图)组装过程一般为串行组装,组装大致过程如下:

1.拉取所有待组装的节点,并将节点以列表的方式保留;

2.从列表中的第一个节点开始,将节点和其他所有节点做两两匹配,若能关联在一起则记录为图;

3.将列表中所有的节点都按照步骤2的方式进行对比关联后,图结构组装完成。

在上述方案中图的组建过程将会随着节点数量的增多而对比判断次数增加,对比判断次数和节点数量的关系如下:

对比次数=节点数*(节点数-1);

使用上述方法计算的缺点如下:

①决定对比次数的是节点的数量,计算的时长会随着对比次数的增加而增加;即时间过长可能造成第一次的计算没有完成,就需要开始第二次的计算。比如:实际应用用构建图的时间一般是一天一次,有可能所需构建图的节点相当庞大计算所需时间可能超过24小时,因此第一天的图还没有算出来就需要计算第二天的图,造成图永远无法完成构建。

②由于需要将节点以列表的形式保存并以备使用,需要保存列表的内存空间则会随节点的增加而增加,当存储节点列表所需的内存达到计算机内存上限时就会限制组装图的节点上限。如:如果一个节点保存需要1KB的数据量,若有一亿的节点量,则所需的存储空间仅是节点数据本身就需要约95GB,在现有IT资源中单机有95GB的服务器并不多见,若在JVM中执行程序则所需实际的内存空间大约为240G(计算中间结果也需要存储因此还需要更多的存储空间),在系统架构上来说单机内存过高则是不合理的,从计算机硬件的配置逻辑来说,单体资源过大会造成高速设备淹没低速设备的问题,造成IT资源运行不协调的问题,简单说就是有兼容性问题。



技术实现要素:

针对上述研究的问题,本发明的目的在于提供一种基于图结构分布式并行模式构建图的方法,解决现有串行组装的图结构,计算的时长会随着对比次数的增加而增加,可能会造成图无法完成构建的问题;保存列表的内存空间会随节点的增加而增加,当存储节点列表所需的内存达到计算机内存上限时就会限制组装图的节点上限,造成内存空间不足,配置存在兼容性问题等。

为了达到上述目的,本发明采用如下技术方案:

一种基于图结构分布式并行模式构建图的方法,其特征在于,如下步骤:

步骤1.准备所需组装图的节点;

步骤2.将步骤1得到的节点分成多份,并行的将每份中的节点进行两两间对比匹配,得到至少一个组成图或/和未组成图的节点,判断得到的组成图数、未组成图的节点数或计算轮数是否达到给定阈值,若未达到,转到步骤3,若达到,转到步骤5;

步骤3.若未达到阈值,且若步骤2得到多个组成图,将步骤2得到的多个组成图分成多份,并行将每份中的图进行两两间对比匹配,或/和

若步骤2得到多个未组成图的节点,并行将步骤2得到的多个未组成图的节点分成多份,并行的将每份中的节点进行两两间对比匹配,得到至少一个融合组成图或/和组成图或/和未组成图的节点;

步骤4、若多个组成图分成多份并行计算后得到至少一个融合组成图或/和组成图,多个未组成图的节点分成多份并行计算后得到至少一个组成图或/和未组成图的节点,则把前者的融合组成图或/和组成图与后者的组成图进行对比匹配,得到至少一个融合组成图或/和组成图或/和未组成图的节点;判断得到的组成图数、未组成图的节点数或计算轮数是否达到给定阈值,若未达到,重复步骤3-步骤4,若达到,转到步骤5;

步骤5、得到组成图或/和未组成图的节点,本步骤中的组成图为融合组成图或/和组成图,若得到的是组成图和未组成图的节点,转到步骤6,否则得到最终的组成图或未组成图的节点;

步骤6、将步骤5中得到的所有未组成图的节点分别与组成图的节点进行对比匹配,得到最终的组成图或组成图和未组成图的节点。

进一步,所述步骤2中得到至少一个组成图或/和未组成图的节点的具体步骤为:

步骤2.1、根据并行计算的服务器资源,将所有节点分成多份;

步骤2.2、并行将每一份的节点按顺序与其内部的节点进行对比匹配;

步骤2.3,步骤2.2中,每一份的节点与其内部的节点都连接,得到多个组成图;

每一份的节点与其内部的节点都不连接,得到多个未组成图的节点;

至少一份的节点与其内部的节点部分连接,得到至少一个组成图或未组成图的节点。

进一步,所述步骤3中得到至少一个融合组成图或/和组成图或/和未组成图的节点的具体步骤为:

步骤3.1、根据并行计算的服务器资源,将得到的多个组成图或/和未组成图的节点分成多份;

步骤3.2、将每一份中的组成图中的节点按顺序与其内部的组成图中的节点进行一一对比匹配,得到至少一个融合组成图和组成图;或/和

并行将每一份的未组成图的节点按顺序与其内部未组成图的节点进行对比匹配,得到至少一个组成图或/和未组成图的节点。

进一步,所述分成多份中的每份数量为:每两份的数据量相差不超过10%。

本发明同现有技术相比,其有益效果表现在:

一、本发明中,通过将节点切分多份和并行计算的过程大大缩减图的组建时间;

二、本发明中,在计算过程中所需要的内存资源不存在上限的限制(可以根据需要配置资源进行并行处理),计算过程可根据数据量的大小安排更多的服务器资源。

三、现有技术中通过遍历的方式进行组装过程,哪怕空间(即CPU的配置)再高,串行组装的方式除了在输入或输出时快些,在具体的组装过程根本无法提高速度,而且配置高了还会浪费源,而本发明可根据资源的大小和个数,进行合理的切分,然后采用并行计算的方式,不但比现有技术提高了N倍,每并行一次,即提高了所对应资源数的倍数,并且合理的利用了各资源。

四、本发明中,在每次并行计算前进行分成(切分成)多份时,若数量能平均分配的情况下,一定选用平均分配的方法,若不能平均分配的情况下,最好数据量相差最好不要超过10%,相差越小越好,是为了防止数量多的计算慢,也就限制了计算快的资源设备。

附图说明

图1为本发明中的具体实施方式中的数据变化步骤图。

具体实施方式

下面将结合附图及具体实施方式对本发明作进一步的描述。

一种基于图结构分布式并行模式构建图的方法,其特征在于,如下步骤:

步骤1.准备所需组装图的节点;

步骤2.将步骤1得到的节点分成多份,并行的将每份中的节点进行两两间对比匹配,得到至少一个组成图或/和未组成图的节点,判断得到的组成图数、未组成图的节点数或计算轮数是否达到给定阈值,若未达到,转到步骤3,若达到,转到步骤5;至少一个组成图或/和未组成图的节点是指至少一个组成图或/和至少一个未组成图的节点;

步骤3.若未达到阈值,且若步骤2得到多个组成图,将步骤2得到的多个组成图分成多份,并行将每份中的图进行两两间对比匹配,或/和

若步骤2得到多个未组成图的节点,并行将步骤2得到的多个未组成图的节点分成多份,并行的将每份中的节点进行两两间对比匹配,得到至少一个融合组成图或/和组成图或/和未组成图的节点,至少一个融合组成图或/和组成图或/和未组成图的节点具体是指至少一个融合组成图或/和至少一个组成图或/和至少一个未组成图的节点,本文中其它地方的相同表述的具体含义也同此处;

步骤4、若多个组成图分成多份并行计算后得到至少一个融合组成图或/和组成图,多个未组成图的节点分成多份并行计算后得到至少一个组成图或/和未组成图的节点,则把前者(多个组成图分成多份并行计算后得到至少一个融合组成图或/和组成图)的融合组成图或/和组成图与后者(多个未组成图的节点分成多份并行计算后得到至少一个组成图或/和未组成图的节点)的组成图进行对比匹配,得到至少一个融合组成图或/和组成图或/和未组成图的节点;判断得到的组成图数(为融合组成图或/和组成图的图数)、未组成图的节点数或计算轮数是否达到给定阈值,若未达到,重复步骤3-步骤4,若达到,转到步骤5;

步骤5、得到组成图或/和未组成图的节点,本步骤中的组成图为融合组成图或/和组成图,若得到的是组成图和未组成图的节点,转到步骤6,否则得到最终的组成图或未组成图的节点;

步骤6、将步骤5中得到的所有未组成图的节点分别与组成图的节点进行对比匹配,得到最终的组成图或组成图和未组成图的节点。

进一步,所述步骤2中得到至少一个组成图或/和未组成图的节点的具体步骤为:

步骤2.1、根据并行计算的服务器资源,将所有节点分成多份;

步骤2.2、并行将每一份的节点按顺序与其内部的节点进行对比匹配;

步骤2.3,步骤2.2中,每一份的节点与其内部的节点都连接,得到多个组成图;

每一份的节点与其内部的节点都不连接,得到多个未组成图的节点;

至少一份的节点与其内部的节点部分连接,得到至少一个组成图或未组成图的节点。

进一步,所述步骤3中得到至少一个融合组成图或/和组成图或/和未组成图的节点的具体步骤为:

步骤3.1、根据并行计算的服务器资源,将得到的多个组成图或/和未组成图的节点分成多份;

步骤3.2、将每一份中的组成图中的节点按顺序与其内部的组成图中的节点进行一一对比匹配,得到至少一个融合组成图和组成图;或/和

并行将每一份的未组成图的节点按顺序与其内部未组成图的节点进行对比匹配,得到至少一个组成图或/和未组成图的节点。

进一步,所述分成多份中的每份数量为:每两份的数据量相差不超过10%。

实施例

如图1所示:

步骤1、准备所需组装图的1000个节点;

步骤2、有10个并行计算的服务器资源,将1000个节点分成10份;10份中的每一份在各自的服务器资源中进行各自的计算(即实现并行计算),每个服务器资源是将每一份的节点按顺序与其内部的节点进行一一对比匹配;计算(即对比匹配)结束后共计得到100个组成图,200个未组成图的点,判断得到的组成图数是否小于15、未组成图的节点数是否小于45或计算轮数是否小于5,若其中之一小于,就执行步骤5,经过判断,并没有小于设定的阈值,所以要执行下一步骤3;

步骤3、选择6个并行计算的服务器资源,其中用4个来计算图,即将100个组成图分成4份,每份25个组成图,每一个服务器资源将其内部的25个组成图,依次选择一个图中的节点,按顺序与其内部的组成图中的节点进行一一对比匹配,很多情况下,不用全部匹配完,就可让图与图之间建立连接,最差的情况也就是一个点一个点匹配,若不是最差情况,其它情况都可实现快速匹配,最终得到60个组成图(包含融合组成图和组成图);2个来计算没有组成图的节点200个点分成2份,每份100个点,按照步骤2中的方式进行对比匹配,最终得到20个组成图和40个未组成图的点;

步骤4、将60个组成图与20个组成图再进行一次比对,得到70个组成图(包含融合组成图和组成图),此步骤得到70个组成图,40个未组成图的点,再判断得到的组成图数(为融合组成图和组成图的图数)是否小于15、未组成图的节点数是否小于45或计算轮数是否小于5,若其中之一小于,则要执行下一步骤5,判断结果是执行步骤5;

步骤5、步骤4的结果得到的是70个组成图(此处得到的组成图为步骤4中得到的融合组成图和组成图)和40个未组成图的点,执行步骤6;

步骤6、将组成图70个组成图与40个未组成图的点进行对比计算,得到得到68个组成图,20个未组成图的点,最终得到结论这1000个点可以计算得到68个图,20个与任何图都没有关系的孤点。

以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1