【技术实现步骤摘要】
用于大规模图的分布式并行PageRank算法
[0001]本专利技术涉及互联网重要度排序领域,具体涉及用于大规模图的分布式并行PageRank算法。
技术介绍
[0002]PageRank算法肇始于互联网领域,初始用于解决谷歌搜索引擎的网页排序问题,当搜索引擎根据检索词返回大量相关网页时,用户自然希望将“重要的”网页排在前面,而对网页进行排序首先面临的问题是如何定义网页的重要性。以网页为顶点、超链接为边将整个网络抽象为一张有向图,PageRank值是顶点重要程度的度量,通过网页(顶点)的PageRank值即可获得网页的排序结果。图是一种很广泛的抽象,PageRank计算仅与图的拓扑结构有关,时至今日,PageRank计算理论的日趋完善,应用范围也拓展至化学、生物、体育及人文社科领域。
[0003]计算PageRank值常使用传统的幂方法,幂方法以迭代π(k+1)=Pπ(k)计算PageRank值,简单稳定,但无法消除不同迭代轮次间的依赖,不能够完全并行。随着互联网的发展及应用范围的拓展,图的规模越来越大,幂方法在面对大规模图时均存在性能瓶颈。
[0004]现有技术中公开了一种优化分布式PageRank算法通信过程的方法及装置的专利,该方法包括:依据分区计算将全图中的顶点和边划分给相应计算节点;其中,完成划分的顶点称为相应计算节点的主点,完成划分的边的一个顶点与边归属于相同的计算节点,若另一个顶点与边归属于不同的计算节点,则在所述相同的计算节点中创建与所述另一顶点对应的虚点;遍历各个计算节点中的主点,计
【技术保护点】
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。