一种面向图数据处理引擎的优化方法技术

技术编号:20448816 阅读:21 留言:0更新日期:2019-02-27 02:56
本发明专利技术提出一种新的图数据处理引擎优化方法,其特征在于,采用本地迭代,全局通信的处理方式,所述处理方式首先在同一计算节点上开展计算,直到该计算节点上的所有图节点的数据都完成更新则停止局部迭代;在同一计算节点上开展计算的同时,边缘图节点缓存并合并消息,待局部迭代停止后批量传输计算节点间发送的消息,所述边缘图节点为跨两个或多个计算节点的图节点。

An Optimized Method for Graph Data Processing Engine

The present invention proposes a new optimization method of graph data processing engine, which is characterized by local iteration and global communication. The method first calculates on the same computing node, and then stops local iteration until all graph nodes on the computing node update their data. At the same time, edge graph nodes carry out calculation on the same computing node. The message is cached and merged, and the message sent between computing nodes is transmitted in batches after the local iteration stops. The edge graph node is a graph node spanning two or more computing nodes.

【技术实现步骤摘要】
一种面向图数据处理引擎的优化方法
本专利技术涉及一种面向图数据处理引擎的优化方法,主要涉及到面向分布式图数据处理引擎的优化与性能提升、降低处理时间、减少通信开销的方法。
技术介绍
图(Graph)是公认的世界上最复杂的数据结构。在数学和计算科学领域,图论是专门研究图的一门科学,其也可以认为是研究事物及事物间关系的一门科学。近年来,图算法及图计算引擎的研究取得了较大的进步,并在应用领域取得了较好的进展。以电网为例,电网可以认为是最为复杂的人造网络之一,学术界将电网看做一种特定类型的图,并以其为研究对象,探索了电网的图属性和各种性质,并研发了面向电网的图计算算法和引擎,解决实际应用中存在的各种问题。然而,随着图规模的增大,图算法运行时间也不断增加,且由于图算法的复杂度通常较高,导致难以在单机上进行计算。例如,庞大的图数据结构超出了内存范围,虽然可通过外存进行中转和缓存,但也使得计算时间变得不可接受。在这一背景下,分布式图计算引擎应用而生,通过多台计算节点并行完成同一计算任务,从而大大节省了任务执行时间。虽然分布式图计算引擎使得原本在单机上无法完成的图计算任务在分布式环境中得以运行,但仍然面临着分布式节点间通信开销过大以及多节点计算并行度较低的问题。例如,知名图计算引擎Graphlab在运行Pagerank算法时的并行加速比仅为0.45。这意味着该算法在Graphlab上并未能充分利用多节点的并行处理能力。其本质原因在于图计算任务难以在多计算节点实现横向扩展,以及图节点间同步等待以及计算节点间的通信开销过大问题。
技术实现思路
针对以上问题,本专利技术提出了一种面向图数据处理引擎的优化方法,该方法适用于点中心模式的图数据处理引擎。本专利技术中,单个计算节点中的多个图节点通过多轮计算和通信后达到不动点,之后多计算节点间执行批量信息交换,全局更新数据,然后再重复上述过程,直到获得最终计算结果。与现有技术相比,本专利技术能有效提升图数据处理引擎的并行度,减少通信开销,因此大幅提高现有图计算引擎的性能和计算效率。附图说明图1为本专利技术进行图数据处理的整体流程图;具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本专利技术提出了一种新的图数据处理引擎优化方法,采用“本地迭代、全局通信”处理方法,当前基于点中心方式的图计算引擎,其计算任务在图节点上执行,图节点间通过消息传递更新数据,并采用步长迭代(StepIteration)方式获得最终计算结果。执行每一步,图节点间都要传递消息,并根据消息更新图节点上的数据。对于跨计算节点间的消息传递,涉及到大量的网络传输开销,显著拖慢了计算效率。本专利技术提出的“本地迭代、全局通信”机制,首先在同一计算节点上开展计算,直到该计算节点上的所有图节点的数据都完成更新则停止局部迭代,同时边缘图节点(跨两个或多个计算节点的图节点)缓存并合并消息,待局部迭代停止后批量传输计算节点间发送的消息,因此显著降低了网络数据传输量,提高了整体效率。本专利技术在单计算节点内进行分区独立迭代计算的方法,如图1所示,具体方法如下:步骤1,迭代计算开始:计算节点内的图节点开始执行计算任务,计算任务完成后会生成中间计算结果,图节点会根据预设的消息触发条件将中间计算结果发送给相邻图节点。步骤2,迭代计算进行:图节点收到来自相邻图节点的消息后,会根据自身的计算任务和来自相邻图节点的消息输入,进行新一轮迭代计算。步骤3,迭代计算停止:在单个计算节点内部,每个图节点按此计算模式进行多轮迭代,当计算节点上的所有图节点的数据不再更新时,则表示分区独立迭代结束。为了提升数据传输效率,减少计算节点间的通信开销,本专利技术提出的面向图数据处理引擎的批量消息通信机制,具体步骤如下:步骤1,边缘节点消息缓存:在单个计算节点迭代的过程中,计算节点中运行的图节点将聚集并缓存来自其它图节点的消息。按照“聚集-更新-扩展”模式,图计算引擎中的每个图节点再汇聚来自其它节点的消息后,将根据消息更新自身状态,并将新产生的消息扩散给其它节点。通过在边缘图节点缓存待传递消息,直到整个计算节点完成迭代后,再批量传递消息。步骤2,边缘节点消息同步:步骤1会导致消息被延迟发送,这也导致计算节点间的消息传递不同步。为了保持同步,本专利技术设置了“计步器”来标志消息传递的进程。在进行全局消息同步时,会根据消息的“计步器”来进行消息同步。步骤3,消息合并及图节点状态更新:当位于不同计算节点的边缘图节点接收到批量发来的消息后,会根据“计步器”来进行消息合并,即位于相同步内的消息合并。完成合并后,再按“计步器”顺序更新图节点状态。计步器记录了迭代计算和消息同步的进程。在单个计算节点内,每进行一轮“收集消息”、“图节点执行计算任务并更新数值”、“消息同步扩散”,则计步器增加1。当所有计算节点执行完本地计算任务,其上的图计算节点的数据不再更新,此时将进行多计算节点间的消息同步。在消息同步过程中,会根据计步器确定,哪些消息会被合并,即只有处于同一“step”的消息才会被合并。本专利技术提出的一种图数据处理引擎优化方法,该方法可降低网络传输开销、提升图处理引擎的整体效率。本专利技术的图数据处理引擎的优化框架,该框架包含一种“本地迭代、全局通信”机制,确保计算节点首先完成内部迭代计算,然后再进行节点间的批量通讯。与现有技术的单步迭代方式相比,有效降低了网络带宽消耗,同时也显著降低了消息同步的次数,因此整体提高了计算效率。最后应说明的是:以上实施例仅用以说明本专利技术的技术方案,而非对其限制;尽管参照前述实施例对本专利技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本专利技术各实施例技术方案的精神和范围。本文档来自技高网...

【技术保护点】
1.一种新的图数据处理引擎优化方法,其特征在于,采用本地迭代,全局通信的处理方式,所述处理方式首先在同一计算节点上开展计算,直到该计算节点上的所有图节点的数据都完成更新则停止局部迭代;在同一计算节点上开展计算的同时,边缘图节点缓存并合并消息,待局部迭代停止后批量传输计算节点间发送的消息,所述边缘图节点为跨两个或多个计算节点的图节点。

【技术特征摘要】
1.一种新的图数据处理引擎优化方法,其特征在于,采用本地迭代,全局通信的处理方式,所述处理方式首先在同一计算节点上开展计算,直到该计算节点上的所有图节点的数据都完成更新则停止局部迭代;在同一计算节点上开展计算的同时,边缘图节点缓存并合并消息,待局部迭代停止后批量传输计算节点间发送的消息,所述边缘图节点为跨两个或多个计算节点的图节点。2.如权利要求1所述的方法,其特征在于,在所述本地迭代的具体步骤为:步骤1,计算节点内的图节点开始执行计算任务,计算任务完成后会生成中间计算结果,图节点会根据预设的消息触发条件将中间计算结果发送给相邻图节点;步骤2,图节点收到来自相邻图节点的消息后,根据自身的计算任务和来自相邻图节点的消息输入,进...

【专利技术属性】
技术研发人员:王锋华钱仲文夏洪涛成敬周陈婷王政张旭东张建松陈俊黄敏谭程文琚小明李博
申请(专利权)人:国网浙江省电力有限公司浙江华云信息科技有限公司国网浙江仙居县供电有限公司
类型:发明
国别省市:浙江,33

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

1