CN110780947B - 用于社交图数据的PageRank并行计算加速方法 - Google Patents
用于社交图数据的PageRank并行计算加速方法 Download PDFInfo
- Publication number
- CN110780947B CN110780947B CN201910999376.0A CN201910999376A CN110780947B CN 110780947 B CN110780947 B CN 110780947B CN 201910999376 A CN201910999376 A CN 201910999376A CN 110780947 B CN110780947 B CN 110780947B
- Authority
- CN
- China
- Prior art keywords
- vertex
- calculation
- vertexes
- pagerank
- incidence
- 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.)
- Active
Links
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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了用于社交图数据的PageRank并行计算加速方法,包括:采用基于加载均衡控制机制与以目标顶点为中心的分区方法对给定图计算任务进行有向分配,得到多个互不相交的子任务,每个子任务由一个线程执行,各个子任务并行执行;在进行PageRank计算时,基于push计算模式,采用消息合并机制进行顶点间信息交换,将原本一次迭代需要完成的两次信息交换操作合并成一个操作,以减少顶点进行信息交换的时间;同时采用不同启动点的计算方法,基于顶点的入度,对不同入度顶点采用不同的启动点,以减少高入度顶点的冗余计算。本发明通过有向预处理,结合消息合并机制与不同启动点的方法,可以相对更快地完成图的PageRank并行计算。
Description
技术领域
本发明涉及并行图计算领域,具体涉及一种用于社交图数据的PageRank并行计算加速方法。
背景技术
PageRank算法源产生于使机器能够自动进行网页排名,从而判断网页优劣的需要。每个网页抽象成图结构中的一个独立顶点,网页之间的链接关系则抽象成顶点之间的边,抽象完成后,使用PageRank算法对所得图结构进行图计算,可得每个顶点在该网络结构中的排名。由于自然图,如社交网络图等,亦存在进行类似网页排名计算的需要,PageRank算法现已被广泛用于发现社交网络中的重要用户、好友推荐系统等。
一般地,图计算涉及顶点之间的信息交换与顶点本地数据的计算更新两个操作。顶点信息交换的具体实现方式的不同又可将图计算分为基于pull模式的图计算与基于push模式的图计算。pull模式下,顶点自主从其邻居获取信息,以完成信息交换;push模式下,顶点需要自主地将自身的信息发送给其邻居,以完成信息交换。PageRank算法作为一种广泛使用的图算法,其计算过程亦可采用以上一至两种模式,不同的模式在具体的条件下计算效率优劣有差别。
在多核甚至多处理机的计算环境下,为了充分利用计算资源,需要采用并行编程的方法进行PageRank计算。并行环境下进行PageRank图计算,如不采取有效的预处理方法,在迭代计算过程可能出现数据的同步问题。在以上两种计算模式中,pull模式由于其自身的“共同读”性质,在并行环境下执行不会出现同步问题。push模式由于其“共同写”性质,在并行环境下执行则会出现同步问题。如果不对该同步问题进行有效的处理,则会导致数据的不一致性,破坏计算结果的正确性。处理该问题的一种方法是采用锁机制(J.Shun andG.E.Blelloch.Ligra:alightweight graph processing framework for sharedmemory.In ACM Sigplan Notices,volume 48,pages 135–146.ACM,2013),该机制下,每次仅允许一个顶点往同一个目标顶点发送信息,从而避免数据不一致性问题,但由于锁机制的限制,使得顶点在进行信息交换时转成串行执行,降低并行计算的效果,特别是PageRank算法以及类似的算法,其计算机时间主要消耗在信息交换操作,会因此受到的影响更大。为使得顶点在交换信息阶段能够完全并行,(K.Lakhotia,R.Kannan,S.Pati,andV.Prasanna.GPOP:a cache and memory-efficient framework for graphprocessingover partitions.In ACM PPoPP,2019)对图进行分区之后,某顶点在进行信息交换阶段不再直接将其本身的信息直接发送给其邻居,而是在其邻居所在分区中设置一个该顶点的镜像顶点,将信息交换操作分成两个子操作,先是顶点将自身信息传递给其镜像顶点,然后该顶点的邻居再从镜像顶点获取信息,完成信息交换。此优化方法利用数据局部性原理,能够降低cache的缺失率,从而加快计算速度。但其缺点在于,该方法将原来一步可以完成的信息交换操作分成了两步,且设置镜像顶点需要额外的存储空间。
在进行PageRank计算时,度不同的顶点的收敛速度相异,故图计算中一个共同的优化是设置收敛状态,每次迭代仅由活跃状态的顶点参与计算,以减少冗余计算。基于以上两种图计算模式,加入收敛状态设置这个优化之后,变成了GAS(Gather-Apply-Scatter)(J.E.Gonzalez,Y.Low,H.Gu,D.Bickson,and C.Guestrin.PowerGraph:distributedgraph-parallel computation on natural graphs.In USENIX OSDI,2012)计算模式,该模式下,每个活跃顶点一次迭代操作包含两次信息交换子操作与一次本地计算子操作。该模式能够使得每次迭代都尽可能只有活跃顶点参与迭代,如果该模式的信息交换阶段使用的是pull模式,由于活跃顶点可能需要获取到收敛顶点的信息,该模式则不能完全保证每次迭代仅由活跃顶点参与,并不能够充分体现设置收敛状态这个优化的优势;如果该模式的信息交换阶段使用的是push模式,每次信息交换仅由活跃顶点完成,故该模式能够完全保证每次迭代仅由活跃顶点参与,完全体现设置收敛状态这个优化的优势。基于该两种不同信息交换方式的GAS模式,均需要获取顶点当次迭代与下次迭代的状态,使得每次迭代需要额外一次信息交换操作,用以返回活跃顶点集合。GAS模式虽能够减少收敛顶点的冗余计算,但其每次迭代需要返回活跃顶点集的操作亦需要额外的时间开销。
进行PageRank计算时,若未设置收敛条件,所有顶点启动计算点与结束计算点均相同;若设置收敛条件,所有顶点启动计算点相同,结束计算点不同。以上两种情况,所有顶点的启动计算点均相同。后者考虑了不同度的顶点收敛速度不同,从而引入了设置收敛状态的优化,以减少冗余计算。同样的,所有顶点启动点相同,也会存在冗余计算,浪费计算资源。
发明内容
本发明的目的是针对以上三个问题,结合基于冲突避免的图计算任务分配方法、顶点更新消息合并发送的方法与采用不同启动点的方法,设计提供一种相对高效的、用于社交图数据的PageRank并行计算加速方法。使得类似PageRank算法的图算法能够在大规模图数据中更快地得到正确的计算结果。
本发明采用的具体技术方案如下:
一种用于社交图数据的PageRank并行计算加速方法,包括:
加载图数据,采用基于加载均衡控制与以目标顶点为中心的分区方法对图计算任务进行有向分配,得到多个子任务;
以入度的高低为依据,标记每个子任务中的顶点,按照顶点入度由低至高的顺序参与PageRank计算。
本发明采用基于加载均衡控制与以目标顶点为中心的分区方法对图计算任务进行有向分配,能够保证各个子任务的计算量相对均衡,且在各个子任务执行基于push模式的PageRank计算时不会出现数据冲突访问的现象,以实现程序的完全并行化。此外,针对不同入度顶点采用不同的启动计算点,是本发明提出的一种入度感知优化的计算方法,通过控制顶点参与PageRank计算的先后顺序,以减少高入度顶点的冗余计算。
作为本发明的进一步改进,所述有向分配包括:
基于图数据总的边数目|E|和分区数目Pnum,计算平均每个分区需要处理的边的数目AVRE=|E|/Pnum;
从第一个分区开始,使用公式(1)进行边分配:
Pi=PiUEj,i∈[1,Pnum],j∈[1,|V|] (1)
当|Pi|>AVRE时,若|Pi|+|Pi-Ej|>2×ΑVRΕ,执行公式(2):
Pi=Pi-Ej,i∈[1,Pnum],j∈[1,|V|] (2)
若|Pi|+|Pi-Ej|≤2×AVRE,则i=i+1,继续执行下一个分区的分配工作,直至完成所有分区的任务分配工作;
其中:Pi为第i个分区所需要处理的边,|Pi|为第i个分区所需要处理的边数目,不同分区处理不同的边;|V|为图数据总的顶点数目;Ej为ID为j的顶点的所有入边,|Ej|为ID为j的顶点的所有入边数目。
进一步的,完成边分配之后,对每个分区中的边采用邻接表进行存储;所述邻接表由顶点ID表与每个顶点在该分区的出边链表构成。便于基于push模式的PageRank计算。
作为本发明的进一步改进,所述每个子任务由单线程执行,所有子任务并行执行。
作为本发明的进一步改进,首先启动低入度顶点参与PageRank计算,当低入度顶点收敛数目与低入度顶点总数目比值大于设定值时,触发启动高入度顶点参与PageRank计算。
进一步的,以入度的高低为依据的顶点标记方式为:
基于图数据总的边数目|E|和顶点数目|V|计算划分高低入度的顶点边界值Bhl=|E|/|V|;
根据顶点边界值Bhl逐一标记图数据中每个顶点,对于任一顶点vj∈V,j∈[1,|V|],若|Ej|<Bhl,则标记ID为j的顶点为低入度顶点,否则标记为高入度顶点,其中|Ej|表示ID为j的顶点的入边数目。
进一步的,所述设定值的定义方式为:统计起始点-终点为低入度顶点-低入度顶点的边的数目Nb;
设定值ratio=Nb/AVRE;
其中AVRE为平均每个分区需要处理的边的数目,AVRE=|E|/Pnum。
进一步的,PageRank计算流程为:
将标记为低入度的顶点添加至活跃顶点集中,高入度顶点暂置于收敛状态,启动PageRank计算;
当低入度收敛顶点数目与总的低入度顶点数目的比值大于设定值时,启动高入度顶点参与PageRank计算,未收敛的低入度顶点继续参与计算。
进一步的,进行PageRank计算时,采用基于push模式与设置收敛优化的图计算模式,通过顶点更新消息合并发送的方法进行迭代。基于push模式与设置收敛优化的图计算模式下,一次迭代需要进行两次信息交换操作,一次是活跃顶点将自身的信息发送给其出边邻居,完成信息交换;一次是当次迭代完成后仍让是活跃状态的顶点,需要通过信息交换操作将其本身与其出边邻居添加至下次迭代的活跃顶点集。本发明提出一种消息合并发送机制,通过顶点更新消息合并发送的方法进行迭代,将一次迭代中需要完成的两次信息交换操作合并成一个操作完成,计算结果一致,但计算速度相对较快,可在两次信息交换均能够完成的前提下,更好地利用数据局部性原理以加速PageRank的计算。
进一步的,所述通过顶点更新消息合并发送的方法包括:
首次迭代执行信息交换操作,完成初始处于活跃状态的顶点的信息交换;
从第2次迭代直至最后计算完成,每次迭代由顶点本地计算与信息交换两个子操作完成,其中本地计算子操作完成顶点在该次迭代的计算,得到一个最新值;信息交换子操作完成活跃顶点将自身信息发送给其出边邻居和激活其出边邻居的工作。
本发明主要涉及PageRank并行计算中的数据冲突访问避免的方法、顶点更新信息合并发送的方法、不同度的顶点启动计算点不同的方法。该冲突访问避免方法通过划分并行域,控制图计算任务的分配,从而避免并行图计算中的数据同步问题。该信息合并方法通过调整顶点一次迭代操作中子操作的顺序,以获得数据的局部性效益,从而加快图计算的速度。该不同启动点方法基于PageRank的计算规则,考虑顶点的计算收敛规律,让不同顶点在不同的启动点参与计算,以减少冗余计算。运用该方法对给定图数据进行预处理之后,使得图计算在没有冲突的前提下进行并行计算,并采用消息合并发送机制与不同启动点的方法,可以更快地完成图计算。
附图说明
图1为本发明用于社交图数据的PageRank并行计算加速方法的流程图。
图2为本发明图分区机制程序流程图。
图3为本发明基于不同启动点的计算程序流程图,其中No(vj)表示顶点vj的出边邻居集。
图4为本发明基于消息合并机制的计算模式图,其中Ο1表示顶点本地计算操作,O2表示顶点间信息交换操作,Δ表示顶点当前计算结果与前一次计算结果的差值,表示激活信息,当顶点进行当次PageRank计算后还处于活跃状态时,通过该信息激活其出边邻居参与下一次的迭代。
具体实施方式
下面结合附图说明和具体实施方式对本发明的技术方案作进一步阐述。
本发明方法的流程如图1所示,包括以下步骤:
(1)加载用户给定的图数据,采用基于加载均衡控制与以目标顶点为中心的分区方法对该图计算任务进行有向分配,得到多个子任务,每个子任务由一个线程执行,所有子任务并行执行。
具体的任务分配方法如下(见图2):
1)对于给定的图G=(V,E),其中V表示图结构中的顶点,E表示顶点之间的关系,|V|表示该图总的顶点数目,|E|表示该图总的边数目。
2)根据需要进行分区的数目Pnum,计算得平均每个分区所需要处理的边的数目AVRE=|E|/Pnum。
3)根据AVRE,基于顶点ID,结合以下公式进行任务分配工作,
Pi=?i∈[1,Pnum] (1)
Pi=PiUEj,i∈[1,Pnum],j∈[1,|V|] (2)
Pi=Pi-Ej,i∈[1,Pnum],j∈[1,|V|] (3)
其中Pi表示第i个分区所需要处理的边,|Pi|表示第i个分区所需要处理的边数目,不同的分区处理不同的边。Ej表示ID为j的顶点的所有入边,|Ej|表示ID为j的顶点的所有入边数目。
结合公式(2)(3)进行分区工作,具体分配步骤如下:从第一个分区开始进行边分配,使用公式(2)进行边分配,当|Pi|>AVRE时,若
|Pi|+|Pi-Ej|>2×ΑVRΕ,执行(3),即撤销将第j个顶点的所有入边分配给第i个分区的操作,以追求各个分区工作量的相对均衡;若
|Pi|+|Pi-Ej|≤2×AVRE,i=i+1,继续执行下一个分区的分配工作,直至完成所有分区的任务分配工作。
4)完成边分配之后,对每个分区中的边采用邻接表进行存储。该邻接表由顶点ID表与每个顶点在该分区的出边链表构成。
(2)对步骤(1)中得到的多个子任务,以入度的高低为依据,标记各个子任务中的顶点。完成标记后,首先启动低入度顶点参与PageRank计算,当低入度顶点收敛数目与低入度顶点总数目比值大于某个用户给定值时,触发启动高入度顶点参与PageRank计算。
具体步骤如下(见图3):
1)根据G的|V|与|E|计算划分高低入度顶点边界值Bhl,其中Bhl=|E|/|V|。
2)根据1)中的边界值Bhl,逐个标记G中每个顶点,对于vj∈V,j∈[1,|V|],若|Ej|<Bhl,则标记ID为j的顶点为低入度顶点,并统计低入度顶点的数目Nl,否则标记其为高入度顶点。其中|Ej|表示ID为j的入边数目。
3)经过步骤2)的标记工作,每个顶点具有一个高低入度标志。根据该标志,遍历图数据文件,完成以下标记与统计工作:
a)标记为L→H并统计该类边的数目Na,若该边源点为低入度顶点,终点为高入度顶点;
标记为L→L并统计该类边的数目Nb,若该边源点为低入度顶点,终点为低入度顶点;
标记为H→L并统计该类边的数目Nc,若该边源点为高入度顶点,终点为低入度顶点;
标记为H→H并统计该类边的数目Nd,若该边源点为高入度顶点,终点为高入度顶点;
b)根据以上统计结果计算ratio,其中ratio=Nb/AVRE。
c)初始进行PageRank计算时,将标记为低入度的顶点添加至活跃顶点集中,高入度顶点暂置于收敛状态,启动PageRank计算。当低入度收敛顶点数目CONVl与总的低入度顶点数目Nl的比值大于ratio时,即CONVl/Nl>ratio时,开始启动高入度顶点参与PageRank计算。未收敛的低入度顶点也会继续参与计算。对于部分存在高入度入边邻居的低入度顶点,若激活高入度顶点参与计算时,该类顶点未收敛,其将继续参与PageRank计算,高入度顶点的延迟计算不影响计算结果,该计算模式可得正确结果;若该类顶点在高入度顶点激活时已经收敛,在高入度顶点被激活参与计算后,由于高入度顶点前后两次迭代计算差值的变化,该类低入度顶点也将会被激活,在其与高入度顶点进行信息交换之后,结合从其低入度顶点邻居获取的信息,便拥有完整的邻居信息以进行PageRank计算,可得正确的计算结果。
(3)采用基于push模式与设置收敛优化的图计算模式,通过顶点更新消息合并发送的方法进行迭代。
具体的消息合并机制如下(见图4):
1)采用消息合并机制后,PageRank计算的首次迭代仅由一个子操作组成,即信息交换操作(传统的基于收敛状态的GAS计算模式,每一次迭代均由三个子操作组成,包含两次信息交换操作与一次本地计算操作,即gather-apply-scatter),该操作完成初始处于活跃状态的顶点的信息交换。
2)从第2次迭代直至最后计算完成,每次迭代均由两个子操作完成,为顶点本地计算子操作与信息交换子操作。其中本地计算子操作完成顶点在该次迭代的计算,得到一个最新值;信息交换子操作完成活跃顶点将自身信息发送给其出边邻居和激活其出边邻居的工作。
以上所述的消息合并机制将传统模式中一次迭代中两次信息交换子操作合并成一个子操作,会使得在新模式下顶点间的消息交换出现变化。以下是验证该变化对PageRank计算结果正确性的影响:
首先,观察传统未设置收敛的PageRank计算到设置收敛状态的PageRank计算的转变,考虑边EA→B∈E,采用基于push模式的PageRank-Delta进行计算(PageRank-Delta是PageRank的一个改版,在PageRank-Delta计算中,每个活跃顶点每次向其出边邻居发送的其自身当次计算结果与前一次计算结果的差值,而在PageRank计算中,每次发送的是该顶点当次迭代计算的结果,此为二者的主要区别,二者计算所得结果一致)。
1)若未设置收敛状态,顶点B每次迭代均可收到顶点A发送过来差值ΔA,若当前迭代次数为T时,顶点B能够收到A发送过来的信息量VA→B=∑Δi A,i∈[1,T]。
2)若设置收敛状态,假定收敛阈值为tolerance,对于某顶点前后两次迭代计算结果差值Δ,若|Δ|<tolerance,则置该顶点的状态为收敛状态,否则置为活跃状态。同样地,考虑边EA→B∈E,经过(T-1)次迭代计算:
a)当前顶点A处于活跃状态,顶点B亦处于活跃状态,第T次迭代顶点A与顶点B会继续参与计算,顶点B会接收到顶点A发送过来的ΔA,故顶点B收到顶点A发送的信息量与1)中顶点B收到的信息量一致。
b)当前顶点A处于活跃状态,B顶点处于收敛状态。由于顶点B是顶点A的出边邻居且顶点A处于活跃状态,顶点B也将被激活加入活跃顶点集,第T次迭代顶点A与顶点B会继续参与计算,顶点B会接收到顶点A发送过来的ΔA,故顶点B收到顶点A发送的信息量与1)中顶点B收到的信息量一致。
c)当前顶点A处于收敛状态,B顶点处于收敛状态。第T次迭代顶点A与顶点B均不参与计算。此类情况在不设置收敛状态时相当于顶点A与顶点B只计算(T-1)次,即固定迭代次数为(T-1)次,计算在第(T-1)次迭代完成后终止,顶点B在第T次不会收到顶点A的信息。故该情况下顶点B收到顶点A发送的信息量与1)中顶点B收到的信息量一致。
d)当前顶点A处于收敛状态,B顶点处于活跃状态。第T次迭代顶点B继续参与计算,顶点A不会参与计算,在PageRank-Delta计算模式下,第T次迭代顶点B不会收到顶点A的信息,故顶点B收到顶点A发送的信息量相对于1)中顶点B收到的信息量少其中/>
3)以上考虑,仅2)中的d)与1)中的信息量相异,差值为且/>认为该顶点当次计算结果不对整体计算结果产生影响,故置其为收敛状态,且不将该差值发送给其出边邻居。此观察是本发明设置消息合并发送机制的来源。
以下,观察传统的GAS计算模式到基于本发明的消息合并机制的计算模式的转变。同样地,考虑边EA→B∈E,采用基于push模式的PageRank-Delta进行计算。假定经过(T-1)次迭代计算,当前顶点A与顶点B的状态如下:
a)顶点A处于活跃状态,顶点B处于活跃状态。两种模式下顶点A与顶点B均参与第T次迭代,故两种模式下顶点B与其出边邻居交换信息量一致。
b)顶点A处于收敛状态,顶点B处于活跃状态。两种模式下顶点A均不参与第T次计算,顶点B参与第T次迭代,故两种模式下顶点B与其出边邻居交换信息量一致。
c)顶点A处于收敛状态,顶点B处于收敛状态。两种模式下顶点A与顶点B均不参与第T次迭代,故两种模式下顶点B与其出边邻居交换信息量一致。
顶点A处于活跃状态,顶点B处于收敛状态。两种模式下,顶点B均会被顶点A激活,参与第T次迭代的计算。区别在于,传统GAS模式下,顶点B在第(T-1)次迭代时,先将自身信息发送给其出边邻居再进行本地操作。但是在基于消息合并机制的计算模式下,信息交换操作在本地计算操作之后,故顶点B经过本地计算后转为收敛状态,不执行第(T-1)次的信息交换操作。因此,该模式相对于传统的GAS模式,顶点B发送给其出边邻居的信息量少了但/>故该差值被认为对计算结果不会产生影响,同3)中的观察,所以基于本发明的消息合并机制的计算模式可得正确的计算结果。
Claims (6)
1.一种用于社交图数据的PageRank并行计算加速方法,其特征在于,包括:
加载图数据,采用基于加载均衡控制与以目标顶点为中心的分区方法对图计算任务进行有向分配,得到多个子任务;
所述有向分配包括:
基于图数据总的边数目|E|和分区数目Pnum,计算平均每个分区需要处理的边的数目AVRE=|E|/Pnum;
从第一个分区开始,使用公式(1)进行边分配:
Pi=Pi∪Ej,i∈[1,Pnum],j∈[1,|V|] (1)
当|Pi|>AVRE时,若|Pi|+|Pi-Ej|>2×ΑVRΕ,执行公式(2):
Pi=Pi-Ej,i∈[1,Pnum],j∈[1,|V|] (2)
若|Pi|+|Pi-Ej|≤2×AVRE,则i=i+1,继续执行下一个分区的分配工作,直至完成所有分区的任务分配工作;
其中:Pi为第i个分区所需要处理的边,|Pi|为第i个分区所需要处理的边数目,不同分区处理不同的边;|V|为图数据总的顶点数目;Ej为ID为j的顶点的所有入边,|Ej|为ID为j的顶点的所有入边数目;
完成边分配之后,对每个分区中的边采用邻接表进行存储;所述邻接表由顶点ID表与每个顶点在该分区的出边链表构成;
以入度的高低为依据,标记每个子任务中的顶点,首先启动低入度顶点参与PageRank计算,当低入度顶点收敛数目与低入度顶点总数目比值大于设定值时,触发启动高入度顶点参与PageRank计算;
所述每个子任务由单线程执行,所有子任务并行执行。
2.根据权利要求1所述的方法,其特征在于,以入度的高低为依据的顶点标记方式为:
基于图数据总的边数目|E|和顶点数目|V|计算划分高低入度的顶点边界值Bhl=|E|/|V|;
根据顶点边界值Bhl逐一标记图数据中每个顶点,对于任一顶点vj∈V,j∈[1,|V|],若|Ej|<Bhl,则标记ID为j的顶点为低入度顶点,否则标记为高入度顶点,其中|Ej|表示ID为j的顶点的入边数目。
3.根据权利要求1所述的方法,其特征在于,所述设定值的定义方式为:统计起始点-终点为低入度顶点-低入度顶点的边的数目Nb;
则设定值ratio=Nb/AVRE;
其中AVRE为平均每个分区需要处理的边的数目,AVRE=|E|/Pnum。
4.根据权利要求1所述的方法,其特征在于,PageRank计算流程为:
将标记为低入度的顶点添加至活跃顶点集中,高入度顶点暂置于收敛状态,启动PageRank计算;
当低入度收敛顶点数目与总的低入度顶点数目的比值大于设定值时,启动高入度顶点参与PageRank计算,未收敛的低入度顶点继续参与计算。
5.根据权利要求1所述的方法,其特征在于,进行PageRank计算时,采用基于push模式与设置收敛优化的图计算模式,通过顶点更新消息合并发送的方法进行迭代。
6.根据权利要求5所述的方法,其特征在于,所述通过顶点更新消息合并发送的方法包括:
首次迭代执行信息交换操作,完成初始处于活跃状态的顶点的信息交换;
从第2次迭代直至最后计算完成,每次迭代由顶点本地计算与信息交换两个子操作完成,其中本地计算子操作完成顶点在该次迭代的计算,得到一个最新值;信息交换子操作完成活跃顶点将自身信息发送给其出边邻居和激活其出边邻居的工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910999376.0A CN110780947B (zh) | 2019-10-21 | 2019-10-21 | 用于社交图数据的PageRank并行计算加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910999376.0A CN110780947B (zh) | 2019-10-21 | 2019-10-21 | 用于社交图数据的PageRank并行计算加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110780947A CN110780947A (zh) | 2020-02-11 |
CN110780947B true CN110780947B (zh) | 2023-10-13 |
Family
ID=69386147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910999376.0A Active CN110780947B (zh) | 2019-10-21 | 2019-10-21 | 用于社交图数据的PageRank并行计算加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110780947B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257865B (zh) * | 2020-09-09 | 2023-11-03 | 中国科学院信息工程研究所 | 一种gpu上的基于着色优化的置信传播方法 |
CN113392280B (zh) * | 2021-06-10 | 2023-08-04 | 东北大学 | 一种面向跨区域的多主模型分布式图计算方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914556A (zh) * | 2014-04-15 | 2014-07-09 | 西北工业大学 | 大规模图数据处理方法 |
EP2884453A1 (en) * | 2013-12-12 | 2015-06-17 | Telefonica Digital España, S.L.U. | A computer implemented method, a system and computer program product for partitioning a graph representative of a communication network |
CN104835110A (zh) * | 2015-04-15 | 2015-08-12 | 华中科技大学 | 一种基于gpu的异步图数据处理系统 |
CN105808779A (zh) * | 2016-03-30 | 2016-07-27 | 北京大学 | 基于剪枝的图漫游并行计算方法和应用 |
-
2019
- 2019-10-21 CN CN201910999376.0A patent/CN110780947B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2884453A1 (en) * | 2013-12-12 | 2015-06-17 | Telefonica Digital España, S.L.U. | A computer implemented method, a system and computer program product for partitioning a graph representative of a communication network |
CN103914556A (zh) * | 2014-04-15 | 2014-07-09 | 西北工业大学 | 大规模图数据处理方法 |
CN104835110A (zh) * | 2015-04-15 | 2015-08-12 | 华中科技大学 | 一种基于gpu的异步图数据处理系统 |
CN105808779A (zh) * | 2016-03-30 | 2016-07-27 | 北京大学 | 基于剪枝的图漫游并行计算方法和应用 |
Also Published As
Publication number | Publication date |
---|---|
CN110780947A (zh) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4781089B2 (ja) | タスク割り当て方法およびタスク割り当て装置 | |
CN115248728B (zh) | 面向智能计算的分布式训练任务调度方法、系统和装置 | |
Mojumder et al. | Profiling dnn workloads on a volta-based dgx-1 system | |
Liu et al. | Task scheduling with precedence and placement constraints for resource utilization improvement in multi-user MEC environment | |
CN110780947B (zh) | 用于社交图数据的PageRank并行计算加速方法 | |
Chen et al. | Efficient and robust asynchronous federated learning with stragglers | |
Xu et al. | An intelligent load balancing algorithm towards efficient cloud computing | |
Almasri et al. | Update on k-truss decomposition on gpu | |
US20230038051A1 (en) | Data transmission method and apparatus | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
WO2021238305A1 (zh) | 一种基于强化学习的通用分布式图处理方法及系统 | |
LiWang et al. | Multi-task offloading over vehicular clouds under graph-based representation | |
CN112148451A (zh) | 一种低时延的协同自适应cnn推断系统及方法 | |
CN117785490B (zh) | 一种图神经网络模型的训练架构、方法、系统及服务器 | |
de Oliveira Souza et al. | Cbnet: Minimizing adjustments in concurrent demand-aware tree networks | |
CN109739670A (zh) | 节点内进程通信方法、装置、计算机设备和存储介质 | |
CN116954866A (zh) | 基于深度强化学习的边缘云下任务调度方法及系统 | |
CN109254844B (zh) | 一种大规模图的三角形计算方法 | |
CN113342313B (zh) | 一种基于参数服务器异步更新Spark MLlib中线性分类模型参数的方法 | |
CN111813525A (zh) | 一种异构系统工作流调度方法 | |
Rakshith et al. | Performance analysis of distributed deep learning using horovod for image classification | |
CN115774736B (zh) | 一种数据延迟发送的numa架构时变图处理方法与装置 | |
ZheXing et al. | Dynamic Task Offloading Strategy for Multi-Agent Deep Reinforcement Learning Based on Lyapunov | |
Jain et al. | Value Iteration on Multicore Processors | |
Ghidouche et al. | Two parallel implementations of Ehrlich-Aberth algorithm for root-finding of polynomials on multiple GPUs with OpenMP and MPI |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
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 |