本发明专利技术公开了一种基于NUMA架构的时变图处理方法、电子设备、介质,所述方法将顶点在不同快照上的若干副本组织成顶点组,并设计基于顶点组的时变图数据结构;采用时变图分割方法将顶点组分配存储至不同NUMA节点;再进行时变图处理,包括:依次对每个NUMA节点进行聚合计算,在每轮聚合计算的过程中,每个NUMA节点的每个顶点组向下一个NUMA节点发送聚合请求,下一个NUMA节点完成聚合任务后,再向其下一个NUMA节点发送聚合请求,直到所有NUMA节点都完成聚合,其中,每个NUMA节点对应的所有顶点组被并行执行。本发明专利技术方法有效减少了远程NUMA节点的随机访问次数,使时变图计算的内存访问效率得到显著提升。率得到显著提升。率得到显著提升。
【技术实现步骤摘要】
基于NUMA架构的时变图处理方法、电子设备、介质
[0001]本专利技术涉及时变图计算
,具体涉及一种基于NUMA架构的时变图处理方法、电子设备、介质。
技术介绍
[0002]大数据时代的来临,推动着时变图计算的发展。时变图由多张快照组成,每个快照表示图数据结构演变过程中某个时间点的状态,通过分析时变图,可以预测现实世界未来的发展趋势,为国家安全、政府、企业等提供决策支持。时变图算法往往需要在多快照上执行同一静态图算法,当执行每个快照时,顶点被并行执行;每个顶点需要访问它的邻居顶点,产生高频率细粒度的内存访问。
[0003]NUMA(Non
‑
uniform memory access)架构,是指计算机的系统架构由多个节点(Node)组成,而每个节点内部可以拥有多个CPU,节点内部的CPU使用共有的内存控制器;节点之间通过互联模块进行连接和信息交互。NUMA架构的远程随机访问的速度要比顺序访问的速度慢一个数量级。对于时变图计算而言,每个顶点需要访问它的邻居顶点,由于图数据结构的复杂性,邻居顶点随机地分布在本地节点的内存和远程节点的内存,因此整个计算过程产生大量的远程随机内存访问(即访问远程节点的内存),很大程度上降低了时变图算法的执行速度。尽管该问题可能会对图计算的效率产生很大的影响,但是现有的大部分图处理系统并没有考虑NUMA架构对算法执行效率的影响,如Graphchi、Ligra、X
‑
stream等,它们主要专注于其他方面,如改进外存访问效率等。
[0004]尽管也存在少量系统也有关注NUMA架构,如polymer,HyGN等。polymer改善了节点的访问方式,将大量的远程访问转化成本地访问,将大量的随机访问转化成顺序访问,优化了数据访问的局部性,提高了计算效率;HyGN利用同步和异步两种处理模式的特点,能够根据算法、执行阶段和图拓扑的不同,系统自行根据情况切换计算模式,支持复杂的任务调度程序,提高计算效率。但是这些系统只关注静态图的计算,而无法支持时变图的计算。要计算时变图,它们需要在多快照上分别执行静态图算法,因此算法执行时间往往与快照数量成正比,导致算法执行时间过长。
[0005]针对上述大多数图处理系统都忽视了NUMA架构的影响和缺乏针对在NUMA架构下的时变图的计算方法的问题,亟需一种基于NUMA架构的大规模时变图计算方法。
技术实现思路
[0006]本专利技术的目的在于针对现有技术的不足,提供了一种基于NUMA架构的Notify
‑
Fly
‑
Notify时变图处理方法。
[0007]为实现上述技术目的,本专利技术的技术方案为:本专利技术实施例的第一方面提出了一种基于NUMA架构的时变图处理方法,所述方法包括:
[0008]将顶点在不同快照上的若干副本组织成顶点组,并设计基于顶点组的时变图数据结构;
[0009]采用时变图分割方法将顶点组分配存储至不同NUMA节点;
[0010]通过Notify
‑
Fly
‑
Notify进行时变图处理包括:依次对每个NUMA节点进行聚合计算,在每轮聚合计算的过程中,每个NUMA节点的每个顶点组向下一个NUMA节点发送聚合请求,下一个NUMA节点完成聚合任务后,再向其下一个NUMA节点发送聚合请求,直到所有NUMA节点都完成聚合,其中,每个NUMA节点对应的所有顶点组被并行执行。
[0011]进一步地,所述顶点组由顶点的ID及N个表示顶点在不同快照的状态值组成,其中N为快照的数量。
[0012]进一步地,基于顶点组的时变图数据结构包括:顶点组ID、顶点在不同快照的状态值、顶点在不同快照的聚合值。
[0013]进一步地,NUMA节点的数据布局包括设计的基于顶点组的时变图数据结构和任务队列数据结构。
[0014]进一步地,任务队列数据结构包括:顶点ID、入边邻居ID列表、顶点在不同快照的聚合值。
[0015]进一步地,所述时变图分割方法选自METIS、SGP或RoundRobin。
[0016]进一步地,通过Notify
‑
Fly
‑
Notify进行时变图处理的过程具体包括:
[0017]收集本地入边邻居的顶点组状态,每个顶点组在本地NUMA节点完成本地聚合计算;
[0018]本地NUMA节点将每个顶点组的聚合计算结果批量发送到第一下游NUMA节点,第一下游NUMA节点接收聚合计算结果并与其本地的数据进行聚合计算,完成聚合计算后,然后将聚合结果发送给第一下游NUMA节点的下游节点;
[0019]当最后一个下游NUMA节点完成聚合计算后,将聚合计算结果回返给本地NUMA节点,在本地NUMA节点处对下游NUMA节点输出的聚合结果与本地聚合结果进行合并计算,得到最终的聚合计算结果;
[0020]重复以上步骤,直至最终的聚合计算结果达到预设的精度阈值。
[0021]进一步地,通过Notify
‑
Fly
‑
Notify进行时变图处理还包括:在对每个NUMA节点进行聚合计算的过程中每个NUMA节点对应的所有顶点组被并行执行。
[0022]本专利技术实施例的第二方面提出了一种电子设备,包括存储器和处理器,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的基于NUMA架构的时变图处理方法。
[0023]本专利技术实施例的第三方面提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的基于NUMA架构的时变图处理方法。
[0024]与现有技术相比,本专利技术的有益效果为:本专利技术通过Notify
‑
Fly
‑
Notify时变图处理方法,设计基于顶点组的时变图数据结构,将顶点组分配存储至不同NUMA节点,依次对每个NUMA节点进行聚合计算,避免了NUMA节点的远程随机访问,有效减少了远程NUMA节点的随机访问次数,使时变图计算的内存访问效率得到显著提升。
附图说明
[0025]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026]图1为本专利技术方法的流程图;
[0027]图2是本专利技术实施例的系统架构示意图;
[0028]图3为本申请实施例提供的一种电子设备。
[0029]图标:101
‑
存储器;102
‑
处理器;103
‑
通信接口。
具体实施方式
[0030]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于NUMA架构的时变图处理方法,其特征在于,所述方法包括:将顶点在不同快照上的若干副本组织成顶点组,并设计基于顶点组的时变图数据结构;采用时变图分割方法将顶点组分配存储至不同NUMA节点;通过Notify
‑
Fly
‑
Notify进行时变图处理,包括:依次对每个NUMA节点进行聚合计算,在每轮聚合计算的过程中,每个NUMA节点的每个顶点组向下一个NUMA节点发送聚合请求,下一个NUMA节点完成聚合任务后,再向其下一个NUMA节点发送聚合请求,直到所有NUMA节点都完成聚合。2.根据权利要求1所述的基于NUMA架构的时变图处理方法,其特征在于,所述顶点组由顶点的ID及N个表示顶点在不同快照的状态值组成,其中N为快照的数量。3.根据权利要求2所述的基于NUMA架构的时变图处理方法,其特征在于,基于顶点组的时变图数据结构包括:顶点组ID、顶点在不同快照的状态值、顶点在不同快照的聚合值。4.根据权利要求1或3所述的基于NUMA架构的时变图处理方法,其特征在于,NUMA节点的数据布局包括设计的基于顶点组的时变图数据结构和任务队列数据结构。5.根据权利要求4所述的基于NUMA架构的时变图处理方法,其特征在于,任务队列数据结构包括:顶点ID、入边邻居ID列表、顶点在不同快照的聚合值。6.根据权利要求1所述的基于NUMA架构的时变图处理方法,其特征在于,所述时变图分割方法选自METIS、SGP或RoundRobin。7.根据权利要求1所述的基于NUMA架构的时变图处理方法,其特征在于,通...
【专利技术属性】
技术研发人员:程永利,陈光,曾令仿,
申请(专利权)人:之江实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。