CN106970779A - 一种面向内存计算的流式平衡图划分方法 - Google Patents
一种面向内存计算的流式平衡图划分方法 Download PDFInfo
- Publication number
- CN106970779A CN106970779A CN201710200289.5A CN201710200289A CN106970779A CN 106970779 A CN106970779 A CN 106970779A CN 201710200289 A CN201710200289 A CN 201710200289A CN 106970779 A CN106970779 A CN 106970779A
- Authority
- CN
- China
- Prior art keywords
- community
- streaming
- algorithm
- internal memory
- division methods
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000001514 detection method Methods 0.000 claims description 5
- 230000000644 propagated effect Effects 0.000 claims description 3
- 238000012804 iterative process Methods 0.000 claims description 2
- 238000011068 loading method Methods 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 abstract description 4
- 241001229889 Metis Species 0.000 description 9
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于流式的平衡图划分方法,属于并行图计算领域,该算法针对现实大部分图呈现幂率分布的特点,首先对原始输入图快速的进行约束条件下的社区检测,再对社区进行排序,最后按照确定性贪婪流算法依次将顶点分配到指定的处理单元,相对于传统的划分算法,在划分质量与划分效率上都有很大的改善。本发明适用于呈幂率分布的大规模网络进行并行计算的任务划分。
Description
技术领域
本发明属于内存计算的任务划分领域,涉及大规模计算任务并行化以及任务分配方法。
背景技术
图模型可以表达对象之间的复杂关系,在诸多领域都有广泛的应用,如社交网络、健康医疗、生物领域、科学与计算任务均可采用图来表示并计算。然而随着问题规模的扩大,如Facebook就有超过8亿的活跃用户和数百亿的关系链接,因此此类问题难以在单台计算机难以此类问题计算,需要将任务划分到并行计算环境中执行。
为应对大图计算任务分析需求,分布式迭代处理系统相应的被开发出来,如spark,pregel,GiraphLab,Trinity等。这些系统主要利用哈希方式将顶点分配到各个分区,此方式虽然复杂度低但是处理单元之间的通信量(割边)会很大,增加了迭代处理的时间。如果用划分质量更好的算法代替哈希方式(如metis),由于metis极高的时间复杂度,虽然迭代处理时间降低了,但总的消耗时间反而比哈希方式大的多,因此设计效率更高的图分割算法已经成为现有分布式图计算系统亟待解决的问题.
现有图划分工作方式,无论是集中式和流式划分,都难以同时满足划分效率与划分质量上的需求。例如经典的Kernighan-Lin算法只适合处理规模较小的图,对于大图处理效率很低,难以满足大数据时代的大图划分和计算的需要.流式图划分算法一次只处理一个点,所使用到的信息通常是点的邻接等比较简单的数据,因此流式划分的效率要高于集中式划分.但是划分质量要比集中式划分算法低很多.
此外,现有的方法都忽视了图自身结构的特点,特别是大部分现实的图结构都呈幂率分布特征,即“小世界”的性质。这就亟需本领域技术人员解决相应的技术问题。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种面向内存计算的流式平衡图划分方法。
为了实现本发明的上述目的,本发明提供了一种面向内存计算的流式平衡图划分方法,如下步骤:
S1,根据图片呈现幂律分布的特点,对输入的图片快速的进行社区检测,满足检测条件则停止迭代;
S2,对S1中检测出的社区图片进行排序,确定社区图片顺序;
S3,按照社区图片顺序采用确定性贪婪流算法依次将点分配到对应的处理单元中,从而划分图片的社区属性。
所述的面向内存计算的流式平衡图划分方法,优选的,所述S1包括:
S1-1,采用标签传播的方法,每次迭代过程中取周围邻居图片相同标签号最多的一类为自身的标签号,如果相同标签号不止一类时,则随机取一类作为自己的标签号;
S1-2,为了防止过大的社区图片出现,对社区的规模以及迭代次数进行了限制,每个社区的规模V为图的顶点数,k表示分区的数量,下标i为正整数,N+为正整数。
所述的面向内存计算的流式平衡图划分方法,优选的,所述S2包括:
对S1中检测出的社区进行排序,确定流顺序:F1,F2...Fn为检测出的社图片,其中下标n为正整数,不同社区图片之间的边数用edgei,j,其中,i,j代表不同的社区表示,cleft定义为处理单元剩余的容量,确定社区的顺序步骤如下:
S2-1,随机选择某一社区作为队列的第一位,t表示某t时刻,按照S3载入处理单元;
S2-2,如果选择
S2-3,如果选择
所述的面向内存计算的流式平衡图划分方法,优选的,所述S3包括:
S3-1,采用确定性贪婪流算法按照顺序依次将点分配到对应的处理单元的步骤如下:表示t时刻顶点v所在的单元Si,c为分区可接受的最大容量,Γ(v)为点v邻居集合,对于同一社区的顶点,原则上分配到同一个处理单元,由于负载均衡的要求,相同社区的点可能不在同一个单元,对于此类顶点我们用确定性贪婪算法(DG)来进一步优化割边率,点v所放置的单元ind为:
综上所述,由于采用了上述技术方案,本发明的有益效果是:
部分子团内部链接要比子团之间的链接要稠密,如果先将这些子团检测出来,对后续图的划分非常有利。而标签传播算法(LPA)能够简单高效实现社区发现(线性复杂度),算法迭代四次后有接近百分之九十八的标签可以划分到某一社区,不再变化。因此该方法很适合本发明的预处理工作。
相对于哈希方式,割边率明显降低,图计算过程中计算机之间通信量减少;实际计算的总时间(包括图的划分,图的装载及图的计算)有所降低,并且随着迭代次数的增多,效果会更加的明显。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明算法的流程图;
图2是本发明与传统算法在图Amazon0312划分比较;
图3A和3B是本发明与传统算法在理论随机图和幂律图上的划分比较;
图4是本发明的稳定性分析。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
如图1所示,本发明所述的基于流式的平衡图划分方法包括以下步骤:
(1)利用真实世界的图大多呈幂律分布的特点,采用标签传播的思想对输入图快速的进行社区检测,满足条件则停止迭代,为了防止出现大量详细的小社区或者过大的社区出现,我们对迭代次数与社区的规模都进行的限制,每个社区的规模迭代次数t<4。K为分区的数目。
(2)对第一步骤发现的结果(F1,F2...Fn)进行排序,社区与社区之间的边数用edgei,j(i,j代表不同的社区)表示.cleft定义为处理单元可接受的剩余容量,确定社区的顺序步骤如下:
a)随机选择某一社区作为队列的第一位(t表示某t时刻),按照步骤(3)装入处理单元。
b)如果选择
c)如果选择
(3)采用确定性贪婪流算法按照社区顺序依次将点分配到对应的处理单元。表示t时刻顶点v所在的单元si,c为分区最大的容量,Γ(v)为点v邻居集合,对于同一社区的顶点,原则上分配到同一个单元,由于处理单元容量的限制和负载均衡的要求,相同社区的顶点可能不在同一个单元,对于此类的顶点我们用确定性贪婪算法(DG)来进一步优化割边率,点v所放置的单元ind:
实施例一
参考图2不同划分算法在图Amazon0312的划分结果,纵坐标表示割边率Ecuti,j表示不同处理单元之间的割边数,E表示图的总边数。横坐标表示不同的划分方法,哈希算法(H),平衡算法(B),指数权重确定性贪心算法(EDG),指数权重三角算法(ET),线性权重确定性贪心算法(LDG),线性权重三角算法(LT),三角算法(T),分块算法(C)。K=32,红线代表Metis的划分结果0.08%,图上标注的数值表示对应算法的平衡系数,三角算法(T)的平衡系数最大2.11,本发明的平衡系数为1.00,割边率为21%,最接近Metis.Metis平衡系数为1.02。
实施例二
参考图3在理论幂律图(PL)与非幂律图(ER)的划分结果,纵坐标表示割边率横黑线表示metis划分结果(理想值),值越接近Metis,划分的质量越好.相对应度的频率图右上角所示.ER图划分结果中线性权重确定性贪心算法(LDG)划分质量最好,达到了83%,哈希算法(hash)结果最差92%,本发明为85%,Metis为81%。PL的划分结果中本发明的割边率为49%,Metis为50%.因为幂律网络图的“小世界”特性特别适合初始的社团检测,因此本发明特别适合于幂律图的划分。
实施例三
参考图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
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (4)
1.一种面向内存计算的流式平衡图划分方法,其特征在于,如下步骤:
S1,根据图片呈现幂律分布的特点,对输入的图片快速的进行社区检测,满足检测条件则停止迭代;
S2,对S1中检测出的社区图片进行排序,确定社区图片顺序;
S3,按照社区图片顺序采用确定性贪婪流算法依次将点分配到对应的处理单元中,从而划分图片的社区属性。
2.根据权利要求1所述的面向内存计算的流式平衡图划分方法,其特征在于,所述S1包括:
S1-1,采用标签传播的方法,每次迭代过程中取周围邻居图片相同标签号最多的一类为自身的标签号,如果相同标签号不止一类时,则随机取一类作为自己的标签号;
S1-2,为了防止过大的社区图片出现,对社区的规模以及迭代次数进行了限制,每个社区的规模V为图的顶点数,k表示分区的数量,下标i为正整数,N+为正整数。
3.根据权利要求1所述的面向内存计算的流式平衡图划分方法,其特征在于,所述S2包括:
对S1中检测出的社区进行排序,确定流顺序:F1,F2...Fn为检测出的社图片,其中下标n为正整数,不同社区图片之间的边数用edgei,j,其中,i,j代表不同的社区表示,cleft定义为处理单元剩余的容量,确定社区的顺序步骤如下:
S2-1,随机选择某一社区作为队列的第一位,t表示某t时刻,按照S3载入处理单元;
S2-2,如果选择
S2-3,如果选择
4.根据权利要求1所述的面向内存计算的流式平衡图划分方法,其特征在于,所述S3包括:
S3-1,采用确定性贪婪流算法按照顺序依次将点分配到对应的处理单元的步骤如下:表示t时刻顶点v所在的单元Si,c为分区可接受的最大容量,Γ(v)为点v邻居集合,对于同一社区的顶点,原则上分配到同一个处理单元,由于负载均衡的要求,相同社区的点可能不在同一个单元,对于此类顶点我们用确定性贪婪算法(DG)来进一步优化割边率,点v所放置的单元ind为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710200289.5A CN106970779B (zh) | 2017-03-30 | 2017-03-30 | 一种面向内存计算的流式平衡图划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710200289.5A CN106970779B (zh) | 2017-03-30 | 2017-03-30 | 一种面向内存计算的流式平衡图划分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106970779A true CN106970779A (zh) | 2017-07-21 |
CN106970779B CN106970779B (zh) | 2020-01-03 |
Family
ID=59336692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710200289.5A Expired - Fee Related CN106970779B (zh) | 2017-03-30 | 2017-03-30 | 一种面向内存计算的流式平衡图划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106970779B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298940A (zh) * | 2018-09-28 | 2019-02-01 | 考拉征信服务有限公司 | 计算任务分配方法、装置、电子设备及计算机存储介质 |
CN111737531A (zh) * | 2020-06-12 | 2020-10-02 | 深圳计算科学研究院 | 一种应用驱动的图划分调整方法和系统 |
WO2021238305A1 (zh) * | 2020-05-27 | 2021-12-02 | 深圳大学 | 一种基于强化学习的通用分布式图处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008148959A1 (fr) * | 2007-05-29 | 2008-12-11 | France Telecom | Procede de classification d'un ensemble de documents electroniques |
US20130254280A1 (en) * | 2012-03-22 | 2013-09-26 | Microsoft Corporation | Identifying influential users of a social networking service |
CN105303450A (zh) * | 2015-11-09 | 2016-02-03 | 北京工业大学 | 基于谱聚类改进交叉的复杂网络社区发现方法 |
-
2017
- 2017-03-30 CN CN201710200289.5A patent/CN106970779B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008148959A1 (fr) * | 2007-05-29 | 2008-12-11 | France Telecom | Procede de classification d'un ensemble de documents electroniques |
US20130254280A1 (en) * | 2012-03-22 | 2013-09-26 | Microsoft Corporation | Identifying influential users of a social networking service |
CN105303450A (zh) * | 2015-11-09 | 2016-02-03 | 北京工业大学 | 基于谱聚类改进交叉的复杂网络社区发现方法 |
Non-Patent Citations (2)
Title |
---|
殷晓波等: "一种松弛的优化均衡流式图划分算法研究", 《计算机科学》 * |
阙建华: "社交网络中基于近似因子的自适应社区检测算法", 《计算机工程》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298940A (zh) * | 2018-09-28 | 2019-02-01 | 考拉征信服务有限公司 | 计算任务分配方法、装置、电子设备及计算机存储介质 |
WO2021238305A1 (zh) * | 2020-05-27 | 2021-12-02 | 深圳大学 | 一种基于强化学习的通用分布式图处理方法及系统 |
CN111737531A (zh) * | 2020-06-12 | 2020-10-02 | 深圳计算科学研究院 | 一种应用驱动的图划分调整方法和系统 |
CN111737531B (zh) * | 2020-06-12 | 2021-05-28 | 深圳计算科学研究院 | 一种应用驱动的图划分调整方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106970779B (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810101B (zh) | 一种软件缺陷预测方法和软件缺陷预测系统 | |
CN106204154A (zh) | 基于层次分析法和熵值法的用户价值评分系统及其方法 | |
CN106970779A (zh) | 一种面向内存计算的流式平衡图划分方法 | |
CN106897821A (zh) | 一种暂态评估特征选择方法及装置 | |
CN106708989A (zh) | 基于空间时序数据流应用的Skyline查询方法 | |
CN103838852B (zh) | 一种快速查找多块结构化网格对接关系的方法 | |
CN107229693A (zh) | 基于深度学习的大数据系统配置参数调优的方法和系统 | |
CN106777093A (zh) | 基于空间时序数据流应用的Skyline查询系统 | |
CN106407258A (zh) | 一种缺失数据预测方法及装置 | |
CN116976747B (zh) | 一种液晶显示器的密封剂生产管理方法及系统 | |
CN106845536A (zh) | 一种基于图像缩放的并行聚类方法 | |
CN107862863A (zh) | 一种交通数据质量提升的方法及装置 | |
CN107909194A (zh) | 系统级测试性设计多目标优化方法 | |
CN112541584A (zh) | 深度神经网络模型并行模式选择方法 | |
Samanlioglu et al. | A fuzzy AHP-VIKOR approach for evaluation of educational use simulation software packages | |
CN110309955B (zh) | 一种云环境应用系统非停机升级时的负载预测方法及装置 | |
CN107239338B (zh) | 一种包装检测结果数据生成方法及服务器 | |
Liu et al. | Quantum-inspired African vultures optimization algorithm with elite mutation strategy for production scheduling problems | |
CN105956318A (zh) | 基于改进分裂 h-k 聚类方法的风电场机群划分方法 | |
CN112434923A (zh) | 一种基于子空间聚类的机械产品质量分析方法 | |
CN111965442A (zh) | 一种数字孪生环境下的能源互联网故障诊断方法及装置 | |
CN110110158A (zh) | 一种三维网格数据的存储空间划分方法及系统 | |
CN106201655A (zh) | 虚拟机分配方法和虚拟机分配系统 | |
CN101556604B (zh) | 一种面向复杂数据仓库环境的优化策略自动生成方法 | |
CN110956010B (zh) | 基于梯度提升树的大规模新能源接入电网稳定性辨识方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200103 Termination date: 20210330 |
|
CF01 | Termination of patent right due to non-payment of annual fee |