当前位置: 首页 > 专利查询>中山大学专利>正文

用于大规模图的分布式并行PageRank算法制造技术

技术编号:34445960 阅读:24 留言:0更新日期:2022-08-06 16:41
本发明专利技术提供了用于大规模图的分布式并行PageRank算法,该算法将目标图数据的顶点PageRank值计算平均分配给若干数量的计算线程,通过独立的控制线程对若干数量的计算线程进行控制,实现并行计算,为了防止多线程环境下的数据竞争,本算法增设了顶点互斥锁,确保不同顶点对象的累积信息量PR计算不会互相干扰,确保顶点PageRank值的准确性;计算线程的数量设置具体取决于目标图数据规模以及分布式硬件环境条件,用户可根据实际需求设置计算线程的数量达到快速进行大规模图数据顶点PageRank值计算,本发明专利技术可广泛应用于各种互联网重要度排序问题,充分支持应用于分布式硬件环境。环境。环境。

【技术实现步骤摘要】
用于大规模图的分布式并行PageRank算法


[0001]本专利技术涉及互联网重要度排序领域,具体涉及用于大规模图的分布式并行PageRank算法。

技术介绍

[0002]PageRank算法肇始于互联网领域,初始用于解决谷歌搜索引擎的网页排序问题,当搜索引擎根据检索词返回大量相关网页时,用户自然希望将“重要的”网页排在前面,而对网页进行排序首先面临的问题是如何定义网页的重要性。以网页为顶点、超链接为边将整个网络抽象为一张有向图,PageRank值是顶点重要程度的度量,通过网页(顶点)的PageRank值即可获得网页的排序结果。图是一种很广泛的抽象,PageRank计算仅与图的拓扑结构有关,时至今日,PageRank计算理论的日趋完善,应用范围也拓展至化学、生物、体育及人文社科领域。
[0003]计算PageRank值常使用传统的幂方法,幂方法以迭代π(k+1)=Pπ(k)计算PageRank值,简单稳定,但无法消除不同迭代轮次间的依赖,不能够完全并行。随着互联网的发展及应用范围的拓展,图的规模越来越大,幂方法在面对大规模图时均存在性能瓶颈。
[0004]现有技术中公开了一种优化分布式PageRank算法通信过程的方法及装置的专利,该方法包括:依据分区计算将全图中的顶点和边划分给相应计算节点;其中,完成划分的顶点称为相应计算节点的主点,完成划分的边的一个顶点与边归属于相同的计算节点,若另一个顶点与边归属于不同的计算节点,则在所述相同的计算节点中创建与所述另一顶点对应的虚点;遍历各个计算节点中的主点,计算主点的PageRank值;将主点的预设比例的PageRank值通过一轮网络通信发送给与主点有对应关系的其他计算节点中的主点或虚点;迭代计算和网络通信直到满足停止迭代的预设条件;该专利对现有算法的存储消耗和通信次数进行了优化,缩短了整体计算所需的时间,提高了算法运行效率,但该专利方法通过主点和虚点实现分布式并行计算,存在对内存占用分配要求比较高,且计算量较大的问题。

技术实现思路

[0005]本专利技术提供用于大规模图的分布式并行PageRank算法,解决快速进行大规模图数据顶点PageRank值的分布式并行计算问题。
[0006]为了达到上述技术效果,本专利技术的技术方案如下:
[0007]用于大规模图的分布式并行PageRank算法,包括以下步骤:
[0008]S1:根据目标图数据规模以及分布式硬件环境条件,确定计算线程并行度K,并对目标图数据进行初始化处理,得到初始化变量和初始化列表;
[0009]S2:按照步骤S1得到的计算线程并行度K,启动的K个计算线程,然后启动控制线程,通过控制线程对K个计算线程进行控制,结合步骤S1得到的初始化变量和初始化列表,计算目标图数据中所有顶点对象的顶点累计信息量;
[0010]S3:根据步骤S2得到的所有顶点对象的顶点累计信息量,计算所有顶点对象的
PageRank值,输出包含所有顶点对象PageRank值的PageRank向量。
[0011]本专利技术算法将目标图数据的顶点PageRank值计算平均分配给若干数量的计算线程,通过独立的控制线程对若干数量的计算线程进行控制,实现并行计算,计算线程的数量设置具体取决于目标图数据规模以及分布式硬件环境条件,用户可根据实际需求设置计算线程的数量达到快速进行大规模图数据顶点PageRank值计算,本专利技术可广泛应用于各种互联网重要度排序问题,充分支持应用于分布式硬件环境。
[0012]进一步地,所述步骤S1中,所述目标图数据中顶点对象v
ID
,其中ID表示顶点对象编码,顶点对象v
ID
的状态分为两种,一种作为当前源顶点对象v
i
,其中i=ID,另一种作为目标顶点对象v
j
,其中j=ID;所有顶点对象v
ID
均通过有向边e
ij
进行连接,当某个顶点对象v
ID
作为当前源顶点对象v
i
时,它通过有向边e
ij
所指向的所有其它顶点对象v
ID
均称为目标顶点对象v
j
,其对应关系结合有向边可记为e
ij
=(v
i
,v
j
),即当前源顶点对象v
i
指向目标顶点对象v
j
;当顶点对象v
ID
作为当前源顶点对象v
i
时,它所指向的目标顶点对象v
j
的总数称为顶点对象v
ID
的出度;当顶点对象v
ID
作为目标顶点对象v
j
时,它被指向的当前源顶点对象v
i
的总数称为顶点对象v
ID
的入度。
[0013]目标图数据可对应多种实际应用场景,如网页网络,社交网络和学术文献引用网络等,其中对于网页网络而言,本专利技术算法的顶点对象对应的就是网页,有向边对应的是网页的链接指向和被链接指向关系,当某个网页作为当前源网页时,它所链接指向的所有其它网页均称为目标网页,它所链接指向的目标网页的总数为该网页的出度,它被链接指向的当前源网页的总数为该网页的入度;对于社交网络而言,本专利技术算法的顶点对象对应的就是社交用户,有向边对应的是用户的关注和被关注关系,当某个用户作为当前源用户时,它所关注的所有其它用户均称为目标用户,它所关注的目标用户的总数为该用户的出度,它被关注的当前源用户的总数为该用户的入度;对于学术文献引用网络而言,本专利技术算法的顶点对象对应的就是学术文献,有向边对应的是学术文献的引用和被引用关系,当某篇学术文献作为当前源学术文献时,它所引用的所有其它学术文献均称为目标学术文献,它所引用的目标学术文献的总数为该学术文献的出度,它被引用的当前源学术文献的总数为该学术文献的入度;
[0014]进一步地,所述步骤S1中,所述初始化处理,包括以下步骤:
[0015]S11:确定所需的初始化变量和初始化列表,其中初始化变量包括阻尼系数c、顶点信息量下限ξ、顶点对象相关变量、计算线程相关变量和控制对象相关变量,其中顶点对象相关变量包括顶点累积信息量PR、顶点待处理信息量RES和顶点互斥锁MTX;计算线程相关变量包括计算线程编码TID;控制对象相关变量包括原子布尔型的线程状态标识ATO和原子布尔型的线程运算状态标识READY;
[0016]S12:创建初始化变量和初始化列表。
[0017]由于计算顶点对象的PageRank值时会产生信息数值传递,为了方便计算过程的信息数值传递,设置了顶点累积信息量PR和顶点待处理信息量RES;为了防止多线程环境下的数据竞争,设置了顶点互斥锁MTX;为了保证最终计算结果的收敛性,设置了阻尼系数c;为了判断顶点对象是否都处理完成,设置了顶点信息量下限ξ;为了方便控制线程对计算线程的控制,设置了线程状态标识ATO和线程运算状态标识READY。
...

【技术保护点】

【技术特征摘要】
1.用于大规模图的分布式并行PageRank算法,其特征在于,包括以下步骤:S1:根据目标图数据规模以及分布式硬件环境条件,确定计算线程并行度K,并对目标图数据进行初始化处理,得到初始化变量和初始化列表;S2:按照步骤S1得到的计算线程并行度K,启动的K个计算线程,然后启动控制线程,通过控制线程对K个计算线程进行控制,结合步骤S1得到的初始化变量和初始化列表,计算目标图数据中所有顶点对象的顶点累计信息量;S3:根据步骤S2得到的所有顶点对象的顶点累计信息量,计算所有顶点对象的PageRank值,输出包含所有顶点对象PageRank值的PageRank向量。2.根据权利要求1所述的用于大规模图的分布式并行PageRank算法,其特征在于,所述步骤S1中,所述目标图数据中顶点对象v
ID
,其中ID表示顶点对象编码,顶点对象v
ID
的状态分为两种,一种作为当前源顶点对象v
i
,其中i=ID,另一种作为目标顶点对象v
j
,其中j=ID;所有顶点对象v
ID
均通过有向边e
ij
进行连接,当某个顶点对象v
ID
作为当前源顶点对象v
i
时,它通过有向边e
ij
所指向的所有其它顶点对象v
ID
均称为目标顶点对象v
j
,其对应关系结合有向边可记为e
ij
=(v
i
,v
j
),即当前源顶点对象v
i
指向目标顶点对象v
j
;当顶点对象v
ID
作为当前源顶点对象v
i
时,它所指向的目标顶点对象v
j
的总数称为顶点对象v
ID
的出度;当顶点对象v
ID
作为目标顶点对象v
j
时,它被指向的当前源顶点对象v
i
的总数称为顶点对象v
ID
的入度。3.根据权利要求1所述的用于大规模图的分布式并行PageRank算法,其特征在于,所述步骤S1中,所述初始化处理包括以下步骤:S11:确定所需的初始化变量和初始化列表,其中初始化变量包括阻尼系数c、顶点信息量下限ξ、顶点对象相关变量、计算线程相关变量和控制对象相关变量,其中顶点对象相关变量包括顶点累积信息量PR、顶点待处理信息量RES和顶点互斥锁MTX;计算线程相关变量包括计算线程编码TID;控制对象相关变量包括原子布尔型的线程状态标识ATO和原子布尔型的线程运算状态标识READY;S12:创建初始化变量和初始化列表。4.根据权利要求3所述的用于大规模图的分布式并行PageRank算法,其特征在于,所述步骤S11中的初始化列表,包括顶点对象列表NODE、顶点对象内存地址列表SRC、有向边权重列表DEST,以及计算线程

顶点对象映射表VECQUE。5.根据权利要求4所述的用于大规模图的分布式并行PageRank算法,其特征在于,所述步骤S12中,所述创建初始化变量和初始化列表,具体包括创建阻尼系数c,根据具体的应用场景确定;创建顶点信息量下限ξ,根据所需的结果精度制定;创建顶点累积信息量v
ID
.PR,初始值为0;创建顶点待处理信息量v
ID
.RES,初始值为1;创建顶点互斥锁v
ID
.MTX,每一个顶点对象v
ID
都有唯一对应的顶点互斥锁v
ID
.MTX;创建计算线程编码TID,每一个计算线程都有唯一对应的计算线程编码TID;创建线程状态标识ATO,初始为假状态;创建线程运算状态标识READY,初始为假状态;创建顶点对象列表NODE,其中每一项元素包含的信息由顶点编码ID和顶点对象v
ID
对应内存地址v
ID
.addr组成;创建顶点对象内存地址列表SRC,其中每一项元素对应一个顶点对象v
ID
的对应内存地址v
ID
.addr,元素信息由顶点对象列表NODE得到;创建有向边权重列表v
ID
.DEST,其中每一项元素包含的信息由目标顶点对象v
j
对应内存地址v
j
·
addr和有向边权重e
ij
.weight,其中有向边权重e
ij

【专利技术属性】
技术研发人员:姚正安张奇唐荣霞
申请(专利权)人:中山大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1