本发明属于内存计算的任务划分领域,涉及大规模计算任务并行化以及任务分配方法。
背景技术:
图模型可以表达对象之间的复杂关系,在诸多领域都有广泛的应用,如社交网络、健康医疗、生物领域、科学与计算任务均可采用图来表示并计算。然而随着问题规模的扩大,如facebook就有超过8亿的活跃用户和数百亿的关系链接,因此此类问题难以在单台计算机难以此类问题计算,需要将任务划分到并行计算环境中执行。
为应对大图计算任务分析需求,分布式迭代处理系统相应的被开发出来,如spark,pregel,giraphlab,trinity等。这些系统主要利用哈希方式将顶点分配到各个分区,此方式虽然复杂度低但是处理单元之间的通信量(割边)会很大,增加了迭代处理的时间。如果用划分质量更好的算法代替哈希方式(如metis),由于metis极高的时间复杂度,虽然迭代处理时间降低了,但总的消耗时间反而比哈希方式大的多,因此设计效率更高的图分割算法已经成为现有分布式图计算系统亟待解决的问题.
现有图划分工作方式,无论是集中式和流式划分,都难以同时满足划分效率与划分质量上的需求。例如经典的kernighan-lin算法只适合处理规模较小的图,对于大图处理效率很低,难以满足大数据时代的大图划分和计算的需要.流式图划分算法一次只处理一个点,所使用到的信息通常是点的邻接等比较简单的数据,因此流式划分的效率要高于集中式划分.但是划分质量要比集中式划分算法低很多.
此外,现有的方法都忽视了图自身结构的特点,特别是大部分现实的图结构都呈幂率分布特征,即“小世界”的性质。这就亟需本领域技术人员解决相应的技术问题。
技术实现要素:
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种面向内存计算的流式平衡图划分方法。
为了实现本发明的上述目的,本发明提供了一种面向内存计算的流式平衡图划分方法,如下步骤:
s1,根据图片呈现幂律分布的特点,对输入的图片快速的进行社区检测,满足检测条件则停止迭代;
s2,对s1中检测出的社区图片进行排序,确定社区图片顺序;
s3,按照社区图片顺序采用确定性贪婪流算法依次将点分配到对应的处理单元中,从而划分图片的社区属性。
所述的面向内存计算的流式平衡图划分方法,优选的,所述s1包括:
s1-1,采用标签传播的方法,每次迭代过程中取周围邻居图片相同标签号最多的一类为自身的标签号,如果相同标签号不止一类时,则随机取一类作为自己的标签号;
s1-2,为了防止过大的社区图片出现,对社区的规模以及迭代次数进行了限制,每个社区的规模
所述的面向内存计算的流式平衡图划分方法,优选的,所述s2包括:
对s1中检测出的社区进行排序,确定流顺序:f1,f2...fn为检测出的社图片,其中下标n为正整数,不同社区图片之间的边数用edgei,j,其中,i,j代表不同的社区表示,cleft定义为处理单元剩余的容量,确定社区的顺序步骤如下:
s2-1,随机选择某一社区
s2-2,如果
s2-3,如果
所述的面向内存计算的流式平衡图划分方法,优选的,所述s3包括:
s3-1,采用确定性贪婪流算法按照顺序依次将点分配到对应的处理单元的步骤如下:
综上所述,由于采用了上述技术方案,本发明的有益效果是:
部分子团内部链接要比子团之间的链接要稠密,如果先将这些子团检测出来,对后续图的划分非常有利。而标签传播算法(lpa)能够简单高效实现社区发现(线性复杂度),算法迭代四次后有接近百分之九十八的标签可以划分到某一社区,不再变化。因此该方法很适合本发明的预处理工作。
相对于哈希方式,割边率明显降低,图计算过程中计算机之间通信量减少;实际计算的总时间(包括图的划分,图的装载及图的计算)有所降低,并且随着迭代次数的增多,效果会更加的明显。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明算法的流程图;
图2是本发明与传统算法在图amazon0312划分比较;
图3a和3b是本发明与传统算法在理论随机图和幂律图上的划分比较;
图4是本发明的稳定性分析。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
如图1所示,本发明所述的基于流式的平衡图划分方法包括以下步骤:
(1)利用真实世界的图大多呈幂律分布的特点,采用标签传播的思想对输入图快速的进行社区检测,满足条件则停止迭代,为了防止出现大量详细的小社区或者过大的社区出现,我们对迭代次数与社区的规模都进行的限制,每个社区的规模
(2)对第一步骤发现的结果(f1,f2...fn)进行排序,社区与社区之间的边数用edgei,j(i,j代表不同的社区)表示.cleft定义为处理单元可接受的剩余容量,确定社区的顺序步骤如下:
a)随机选择某一社区
b)如果
c)如果
(3)采用确定性贪婪流算法按照社区顺序依次将点分配到对应的处理单元。
实施例一
参考图2不同划分算法在图amazon0312的划分结果,纵坐标表示割边率
实施例二
参考图3在理论幂律图(pl)与非幂律图(er)的划分结果,纵坐标表示割边率
实施例三
参考图4本发明第一步骤中对于点的标号选取问题,如果周围邻居中最多标号的种类不止一类时,此时是随机的选取一种,包含有随机性,因此,需要验证是否此随机性对划分结果有影响.用3个真实图(amazon0505,amazon0312,amazon0601)来验证本发明的稳定性,纵坐标为标准差值differenc=λt-λt+1表示前一次实验的割边率与下一次的割边率的差,横坐标表示实验次数,由图4可以看出每次的差值波动都是在a*102,(a∈[1,9])附近,波动率很小,对于大图而言可以忽略不计,说明了本算法的稳定。
实施例四
参考表1图twitter-2010在20台机器上的pagerank计算的总时间,分别迭代了9次与12次,预处理中的迭代次数设置为小于4,pagerank迭代9次时与迭代12次两算法的差值在逐渐增加,随着计算迭代次数的增多,本发明的优势会越明显。表1展示了在spark集群系统中,分别调用本发明策略与哈希策略对twitter图进行pagerank计算的总时间。
表1
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。