掌桥专利:专业的专利平台
掌桥专利
首页

一种基于混合内存的自适应图计算更新方法及系统

文献发布时间:2024-04-18 19:58:26


一种基于混合内存的自适应图计算更新方法及系统

技术领域

本发明属于人工智能-大数据-图计算技术领域,涉及一种基于混合内存的自适应图计算更新方法及系统。

背景技术

在计算机科学领域中,图(Graph)是最复杂且应用最广泛的数据结构之一。它使用顶点V和边E表示对象之间关系,是对事物之间关系的一种原生表达方式。一般地,将图记为:G=(V,E)。其中,顶点集V是有穷非空集合,可用来表示各种对象,其中可以包含顶点的ID编号、值信息以及用户定义的其他属性;边集E是有穷可空集合,可表示对象之间的各种关联关系。许多现实世界中的数据,都可以自然地表示为图数据。例如,Web网络中的网页可作为顶点数据,网页中超链接可作为边;交通网络中的站点可看作顶点,站点之间的路线可看作边;社交领域中的用户数据可视为顶点,用户之间的好友、关注关系可视为边。在图论的支撑下,借助于各类图算法,许多实际的问题都可以得到有效解决。例如,网页价值评估可以用中心性系列算法实现;路线规划可以借助路径搜索系列算法实现;社交群体发现可以采用社群发现算法实现。然而,随着互联网和数字化技术的飞速发展,图数据的规模呈指数级不断增长且往往伴随幂律性分布。传统的图算法难以解决负载不均衡、频繁数据交换、缓存机制低效等诸多问题,这就直接导致了传统的图算法难以满足日益增长的性能和功能需求。近年来,随着人工智能等数字化技术的快速发展,高性能图计算技术得到国内外工业界和学术界研发人员的广泛关注。

图计算是在给定硬件环境基础上,利用多种迭代范式和优化技术,对经典图算法的抽象计算过程,以满足大规模图数据高效处理的要求。从关系分析、产品推荐到欺诈检测,图计算在各个领域都发挥着极其重要的作用。近年来,随着人工智能技术的快速发展,图数据的规模呈指数级增长,导致存储、处理这些大规模图数据时,出现巨大的内存占用问题。除了庞大的数据规模,图数据往往呈现幂律分布。Kumar P等指出这种固有的不平衡特性会导致图计算的高访存-计算比问题、负载不平衡问题和并行效率低下问题等。为了应对以上问题,集中于提升图计算模型效率的研究开始大量出现。Y.Zhang等利用大容量内存构建单机内存图计算模型,以避免高昂的磁盘I/O开销;利用图划分技术在分布式集群中构建分布式内存图计算模型,并行处理多个子图,以提高单机图计算系统的可扩展性。随着持久内存(Persistent Memory,PMEM)的研究取得重大进展,这种新型内存设备与传统的内存(DRAM)组成了混合内存系统(Hybrid Memory System,HMS)。HMS成为一种以数据为中心的高效图计算的可行性解决方案。综上所述,目前基于内存的图计算模型可分为:基于传统内存的单机图计算模型、基于分布式共享内存的图计算模型和基于混合内存的图计算模型。

(一)基于传统内存的单机图计算模型

基于传统内存的单机图计算模型利用大容量的内存,搭建轻量级图计算模型。该类模型的内存容量可容纳整个图数据,便于高效编程;同时又便于提升图算法的并行执行效率。J.Shun等提出的Ligra模型提供两个典型的编程接口,分别用于边映射和顶点映射。这使得该模型非常有利于顶点集上的图遍历算法的实现。另外,基于广度优先搜索(BFS)算法中使用并行遍历思想,其中编程接口也能根据图数据稠密程度自适应切换推拉(Push-Pull)计算模式。将vertex-program为中心的程序映射成了高效可扩展的稀疏矩阵操作的GraphMat。在多核多线程并行条件下,它可进一步提升图计算模型的效率。Y.Zhang等提出的图计算模型GraphIt将图计算和图调度分离,并可处理不同结构、不同大小的图数据。由于其DRAM足够大,这些系统可避免高昂的磁盘I/O开销。

(二)基于分布式共享内存的图计算模型

该类模型的设计目标是像MapReduce一样高度抽象,可高效执行具有稀疏的计算依赖特性的迭代性图算法,并且保证计算过程中图数据的高度一致性和高效的并行计算性。由CMU(卡内基梅隆大学)的Select实验室提出的开源图计算框架,该框架使用C++语言开发实现,是一种面向大规模流式图数据并行计算框架,可在多处理机的集群环境中高效运行。Rong Chen等分析了图数据的幂律性(Power-law)并采用Hybrid划分策略。对高度顶点采用vertex-cut的策略减少产生Mirror顶点从而减少了高度顶点计算任务繁重的问题;对低度顶点采用edge-cut的切分方式保证低度顶点计算尽量在本地执行。Tim等提出图计算模型Grade,它利用资源归属方法,通过监控日志和应用程序,构建细粒度、统一的工作负载级和系统级的性能视图,并可以自动识别资源瓶颈和常见的性能问题。以上模型均可并行处理多个子图,提升单机图计算系统的并行计算能力。

(三)基于混合内存的图计算模型

该类模型旨在新兴混合内存系统中构建高效的单机内存图计算模型,并降低对传统DRAM的依赖和构建成本,提升传统内存图计算模型的可扩展性。Huang等通过结合边列表和邻接列表使用混合存储格式来处理演化图。它首先使循环遍历DRAM中的边日志,并以边列表格式存储更新的图数据。此外,它还使用许多邻接表来存储旧数据(从边日志中定期归档的边数据),从而支持高效的图存储和查询。Wang R等引入了基于PMEM的高效图存储模型XPGraph,提出了一个大规模动态图存储模型,利用PMEM友好的XPLine数据访问程序,该模型具有分层顶点缓冲管理和NUMA友好的图数据存取能力。B.Li等基于PMEM构建图计算模型EPGraph,将所有顶点和边分别放置在DRAM和PMEM中。为了减少对顶点的随机访问,他们使用DRAM作为数据缓冲器。同时,它采用了基于度感知的图数据分层方法,提高了图数据访问效率。

现有的技术方案主要包括基于传统内存的单机图计算模型、基于分布式共享内存的图计算模型和基于新兴混合内存的图计算模型三种。这几种方案中现有的主流模型在不同方面存在着一定的不足,具体如下:

1、基于传统内存的单机图计算模型:该类模型能够避免高昂的磁盘I/O开销,也便于利用多线程技术优化图算法的执行效率。该类模型能够处理一定规模的图数据,但它们严重依赖大容量的DRAM,难以处理呈指数级不断增长的图数据;虽然该类模型可利用多线程并行优化图算法,但单机计算能力毕竟有限。以上因素导致了有限资源下的单机内存图计算系统的应用受到严重限制。

2、基于分布式共享内存的图计算模型:该类模型能够利用分布式集群处理超大规模图数据,降低了单个计算节点的硬件要求,提升了单机内存图计算模型的扩展能力和并行计算能力。但图数据固有的幂率性,会造成图划分过程中出现的负载不均衡问题,以及图计算过程中的任务不均衡问题,并导致分布式计算节点之间的通信开销成为该类模型的性能瓶颈。

基于混合内存的图计算模型:该类模型利用PMEM的大容量、持久性、可字节寻址等特性,降低了模型对传统DRAM的依赖程度。由于DRAM和PMEM之间存在读写性能差异,会导致HMS中图数据访问的效率低下问题,特别是现有的混合内存图计算模型没有考虑NUMA节点之间的内存异构性,也即本地PMEM数据访问(Local PMEM Access)效率远低于远程内存数据访问(Remote Memory Access),不能获得最优性能表现。

发明内容

针对现有技术中存在的问题,本发明的目的在于提供一种基于混合内存的自适应图计算更新方法及系统。

本发明主要用来解决现有混合内存图计算模型存在的子图构建和更新模式问题;其中的子图构建是图计算模型中重要的基础环节;而图数据G的更新模式直接影响图计算的效率。本方法主要聚焦于基于Dual-Block存储方式加速子图构建,并有效支撑基于数据驱动的自适应推拉(Push-Pull)更新模型。具体而言,在HMS中,利用PMEM的大容量特性存储子图的出边(InBlock)和入边(OutBlock)数据;首先将有向图数据以出边方式进行存储时,按照顶点区间均匀划分时,顶点区间interval[i]其对应的出边数据块为OutBlock[i];同理,有向图数据以入边方式进行存储时,按照顶点区间均匀划分时,顶点区间interval[i]其对应的入边数据块为InBlock[i];构建子图G

总的来说,该方法通过双向子图数据存储Dual-Block存储子图的InBlock[i]和OutBlock[i],从而加速子图构建过程。而这种图存储方式,有效支撑了基于数据驱动的自适应推拉(Push-Pull)更新模型,这种自适应的计算模式直接提升了图计算的效率,这便成为本方法能够高效处理大规模图数据的关键。

本发明能够显著提升子图构建效率,以可接受的数据存储空间代价提升模型的整体效率。不同于之前的工作,本发明所提出的模型结合了基于Dual-Block图存储表示方式和基于数据驱动的自适应推拉策略,并且通过图数据分层和动态图数据迁移策略优化HMS中图数据访问效率。大量的实验结果也表明所提出的NPGraph模型能够提供更优的性能。

本发明的技术方案为:

一种基于混合内存的自适应图计算更新方法,其步骤包括:

1)设置两个NUMA节点,记为Node0、Node1,每一所述NUMA节点均采用混合内存系统HMS,所述混合内存系统HMS包括持久内存PMEM和内存DRAM;所述节点Node0中设有预处理模块、子图构建模块、子图更新模块;

2)预处理模块将图数据G=(V,E)的顶点集V、边集E分割成P个不相交的顶点区间V

3)子图构建模块根据从节点Node0读取每一个子图的出边数据计算各待生成子图的稠密程度,并根据对图数据G的顶点度信息的统计分析设定一比例参数δ,将节点Node0的混合内存系统HMS的持久内存PMEM中最稠密的δ*P个待生成子图数据迁移到节点Node0的混合内存系统HMS的内存DRAM中;以及从节点Node1读取对应子图的入边数据计算各待生成子图的稠密程度,并根据该比例参数δ,将节点Node1的混合内存系统HMS的持久内存PMEM中最稠密的δ*P个待生成子图数据迁移到节点Node1的混合内存系统HMS的内存DRAM中;然后子图构建模块根据节点Node0的本地内存DRAM中第i个子图数据和远程访问Node1的内存DRAM中第i个子图数据生成第i个子图G

4)子图更新模块对每一子图G

进一步的,步骤1)的具体实现方法为:首先将图数据G的出边模式数据存储在第一存储单元并按顶点区间进行子图划分,得到每一顶点区间及其对应的出边数据块,其中第i个顶点区间interval[i]对应的出边数据块为OutBlock[i];将图数据G的入边模式数据存储在第二存储单元并按顶点区间进行子图划分,得到每一顶点区间及其对应的入边数据块,其中第i个顶点区间interval[i]对应的入边数据块为InBlock[i]。

进一步的,所述第一存储单元、第二存储单元为固态硬盘或机械硬盘。

进一步的,步骤2)中,构建子图的方法为:1)节点Node0和节点Node1在DRAM中同时创建所有子图数据顶点的状态数据和属性数据;2)从节点Node0读取全部待生成子图的出边数据块OutBlock进入本地PMEM中;从节点Node1读取全部待生成子图的入边数据块InBlock进入本地PMEM中;3)节点Node0和节点Node1分别计算各待生成子图的稠密程度R

进一步的,子图G

进一步的,DRAM的访问率

进一步的,每一子图的数据包括图结构数据、属性数据和状态数据;将所述图结构数据中的顶点标记为Row、边被标记为Col;为每一顶点创建一属性数据和状态数据;将顶点的属性数据标记为D

进一步的,对子图G

一种基于混合内存的自适应图计算更新系统,其特征在于,包括两个NUMA节点,记为Node0、Node1;每一所述NUMA节点均采用混合内存系统HMS,所述混合内存系统HMS包括持久内存PMEM和内存DRAM;所述节点Node0中设有预处理模块、子图构建模块、子图更新模块;

所述节点Node0用于存储出边模式的子图数据;所述节点Node1用于存储入边模式的子图数据;

所述预处理模块,用于将图数据G=(V,E)的顶点集V、边集E分割成P个不相交的顶点区间V

所述子图构建模块,用于根据从节点Node0读取每一个子图的出边数据计算各待生成子图的稠密程度,并根据对图数据G的顶点度信息的统计分析设定一比例参数δ,将节点Node0的混合内存系统HMS的持久内存PMEM中最稠密的δ*P个待生成子图数据迁移到节点Node0的混合内存系统HMS的内存DRAM中;从节点Node1读取对应子图的入边数据计算各待生成子图的稠密程度,并根据该比例参数δ,将节点Node1的混合内存系统HMS的持久内存PMEM中最稠密的δ*P个待生成子图数据迁移到节点Node1的混合内存系统HMS的内存DRAM中;然后根据节点Node0的内存DRAM中第i个子图数据和Node1的内存DRAM中第i个子图数据生成第i个子图G

所述子图更新模块,用于对每一子图G

本发明的优点如下:

本发明是继目前主流的图计算模型,即基于传统内存的单机图计算模型、基于分布式共享内存的图计算模型、基于混合内存的图计算模型之后的具备有效竞争力的新型混合内存图计算模型,有效解决了前三种图计算模型存在的问题。简而言之,基于传统内存的单机图计算模型严重依赖大容量的DRAM,加之计算能力有限,难以处理大规模的图数据;基于分布式共享内存的图计算模型在图划分过程中容易造成负载不均衡问题,并导致分布式计算节点之间的通信开销成为该类模型的性能瓶颈。基于新兴混合内存的图计算模型,由于DRAM和PMEM之间存在读写性能差异,会导致远程数据访问开销成为主要性能瓶颈。而针对这些问题,本发明给出的方案是新型混合内存图计算模型,彻底摆脱了数据处理能力不强、计算能力不足、总体性价比不高、部署不高效的问题。从优势上来说,本发明有效结合了基于Dual-Block图存储表示方式和基于数据驱动的自适应推拉策略,并且通过图数据分层和动态图数据迁移策略优化HMS中图数据访问效率;从实验上来说,与目前最先进的模型相比,能够实现最优性能,以及高效图数据访问与高效图计算的更好平衡。

附图说明

图1为Dual-Block图存储表示方法的流程图。

图2为基于Dual-Block图储存表示的子图数据分层策略的子图构建流程图。

图3为Push模式和Pull模式;

(a)为Push模式,(b)为Pull模式。

图4为前向更新模式和后向更新模式图;

(a)为原图G,(b)为基于CSR的推模式(前向更新模式),(c)为基于CSR的拉模式(后向更新模式)。

图5为自适应更新策略的具体流程图。

图6为基于NUMA的高效混合内存的图计算模型框架。

图7为不同更新策略的执行时间;

(a)为不同更新模式在Facbook中的执行时间,(b)为不同更新模式在soc-LiveJournal中的执行时间,(c)为不同更新模式在Twitter-2010中的执行时间,(d)为不同更新模式在Friendster中的执行时间,(e)为不同更新模式在Yahoo Web中的执行时间。

图8为PageRank和WCC在Friendster上的多线程执行时间。

图9为不同模型在五个不同图数据集上的执行时间;

(a)为不同模型在Facbook中的执行时间,(b)为不同模型在soc-LiveJournal中的执行时间,(c)为不同模型在Twitter-2010中的执行时间,(d)为不同模型在Friendster中的执行时间,(e)为不同模型在Yahoo Web中的执行时间。

具体实施方式

下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

本发明所提出的基于混合内存的自适应图计算更新方法及系统,是一种继传统内存的单机图计算模型、分布式共享内存的图计算模型和新兴混合内存的图计算模型这三种模型之后,又一颇具竞争力的模型。首先,基于HMS中PMEM的大容量、持久性和字节寻址能力,构建基于Dual-Block存储方式,以加速子图构建过程;同时该存储方式可有效支撑基于数据驱动的自适应推拉(Push-Pull)更新模型。接下来,根据算法3搭建自适应更新策略(Adaptive Push-Pull Update Strategy)选择对应的计算模式:算法4推模式(PushModel)和算法5拉模式(Push Model)。然后,借助这两种模式的算法,在算法4推模式(PushModel)中,执行算法1(push-based图算法)或在算法5(Push Model)中执行算法2(pull-based图算法)。具体技术方案的细节将从(1)Dual-Block图存储表示方法、(2)基于Dual-Block图存储表示的子图数据分层策略、(3)自适应推拉更新策略以及(4)NPGraph系统框架四个部分展开描述。

(1)首先是Dual-Block图存储表示方法。与Li等提出的方案类似,NPGraph将图G=(V,E)分割为P个子图:G

(2)然后是基于Dual-Block图存储表示的子图数据分层策略:受HMS中DRAM和PMEM之间的不对称扩展性的影响,NPGraph分析了HMS中DRAM的数据访问率。根据图1中提到的内存中图形结构的执行流程、图属性数据和状态数据(D

R

其中,根据图2中提到的内存中图形结构的执行流程,N

其中,R

其中,R

按照上述公式(4),根据子图G

在子图数据分层的情况下,根据稠密的程度R

其中,δ(0≤δ≤1)表示加载到DRAM中的子图数据部分;

公式(2)-公式(5)证明了在HMS中,基于子图稠密程度进行分层放置策略的有效性。基于Dual-Block图表示和分层放置策略,NPGraph可以在HMS中获得更好的性能。此外,鉴于远程内存访问比本地PMEM访问更快,在跨越NUMA节点进行数据访问时,NPGraph将本地PMEM数据访问转换为远程内存访问。

在子图构建阶段,将出边模式的子图数据加载到节点Node0中;将入边模式的子图数据加载到节点Node1中;并从节点Node0读取每一个子图的出边数据,从节点Node1读取每一个子图的入边数据已完成子图的构建。其具体过程如下:1)节点Node0和节点Node1在DRAM中同时创建所有子图数据顶点的状态数据和属性数据。2)如果创建成功,节点Node0读取全部待生成子图的OutBlock数据进入本地PMEM中;同时节点Node1读取全部待生成子图的InBlock数据进入本地PMEM中。3)在节点Node0和节点Node1中,按照公式(4)计算各待生成子图的稠密程度R

(3)第三是自适应推拉更新策略。由于图数据的幂率性分布,导致迭代图计算过程中普遍存在不对称收敛现象。也就是稀疏子图通常快速收敛而密集子图收敛缓慢的原因。如图3所示,在push模型中,每个顶点都会通过它的出边将变化分散(写入)给它的邻居。反之,在pull模型中,每个顶点从接收到的邻居那里收集(读取)信息,然后用收集到的信息更新自己的值。

DRAM中,构建的子图数据包括图结构数据、属性数据和状态数据。其中,图结构数据(也即顶点和边数据)中的顶点和边被标记为Row和Col;为了便于执行图算法,还需创建顶点的属性数据和状态数据。由于顶点的属性数据和状态数据与各个顶点一一对应,可用型数组直接表示属性数据和状态数据。其中,在本轮迭代计算之前的顶点的属性数据被标记为D

如图4所示,每个子图G

如图4(a)所示,有6个顶点和13条边的原始图G被划分为G

显然,push更新模型和pull更新模型适用于不同的场景,这取决于子图G

sum[i]=∑

其中,sum[i]表示子图G

ε[i]=∑

其中,ε[i]表示子图G

自适应更新策略的具体流程如图5所示。

算法1本发明的自适应推拉更新过程

在一次迭代图计算过程中,算法1描述了自适应推拉更新策略。selectModel()是一个基于ε

算法2描述了数据驱动的推送模型的执行过程。它通过Forward manner来处理顶点区间V

算法2和3本发明的Forward manner/Backward manner更新模式

根据数据激活的方式,图算法可分为两类:拓扑驱动的图算法和数据驱动的图算法。对于拓扑驱动的图算法,每次迭代都需要处理所有顶点。与此不同的是,在数据驱动的图算法中,顶点是由其邻居动态激活的,即通过用户定义的函数使顶点变得活跃或不活跃。数据驱动的图算法可以让我们更专注于图形中需要更频繁更新的“hot-vertex”。因此,在许多应用中,数据驱动的图算法比拓扑驱动的图算法更高效。NPGraph以PageRank算法为例,全面分析数据驱动的push-pull模型,其执行过程如算法4和算法5所示。算法4和算法5为每个子图G

算法4和5本发明的push-based/pull-based图算法(以PageRank为例)

通常过滤活动顶点的收益大于计算全部顶点的开销。对于图算法来说,活动顶点的执行顺序至关重要。例如,在基于push模式的PageRank算法中,每当一个顶点v有了新的残差r

(4)最后是NPGraph的系统框架部分。在HMS架构中,PMEM的工作模式可以在Memory模式和APP-Driect模式之间进行切换。但在Memory模式下,作为DRAM的扩展,PMEM用作易失性存储器。同时,DRAM成为由硬件管理的高速缓存这将导致10ns级的读/写延迟。另外,所有DRAM缓存未命中和页错误都会流向PMEM,这将导致μs级的读/写延迟。这意味着Memory模式并不适用于所有应用场景,尤其是大规模图数据处理。然而,在APP-Driect模式下,PMEM同DRAM一样,是字节可寻址的。同时,它提供了两种内存访问功能:DMA(直接内存访问)和RDMA(远程直接存储器访问)。更重要的是,它可以像硬盘一样,以块(例如512B、4KB)方式读/写数据。与传统的HDD和SSD相比,这种模式可以提供更好的性能、更低的延迟和更好的耐用性。因此,APP-Driect模式特别适合大规模图形处理,并且它为图形计算提供了一种更具成本效益的解决方案。

该模型框架如图6所示,针对基于NUMA的HMS而设计。它由2个NUMA节点组成,记为Node0、Node1,每个NUMA节点包含16GB的内存(DRAM)和256GB的PMEM,外存由HDD或SSD构成。它利用2个NUMA节点(Node)分别存储出边(OutBlock)和入边(InBlock)图数据。具体地,在预处理阶段,按顶点区间进行子图划分;并利用Compressed Sparse Row(CSR)数据压缩方法压缩处理出边(OutBlock)数据和入边(InBlock)数据;再由外存(HDD或SSD)同时存储前向Forward manner压缩图数据(基于OutBlock的push更新方式)和后向Backward manner压缩图数据(基于InBlock的pull更新方式);在数据加载阶段,由节点Node0加载所有Forwardmanner出边数据,节点Node1加载所有Backward manner入边数据。每个Node中,DRAM主要存储所有顶点、顶点状态数据以及部分稠密子图边块数据;PMEM主要存储其余所有子图数据边块数据。

此外,图算法的执行时间与活动顶点和边的内存访问数量成正比。因此,在HMS中应考虑DRAM和PMEM之间的图数据动态迁移问题。S

下面结合实验数据进行展开描述。首先介绍用于NPGraph实验的实验环境配置、实验数据集、对比算法,随后展示实验结果及分析。

(1)首先是实验环境配置部分。所有实验均在2个NUMA节点上进行。每个节点包括一个Intel Xeon Gold 5218R CPU,该CPU具有20内核、40线程、L2二级缓存32KB,L3三级缓存27.5MB。为了实现DRAM资源有限的实验条件,每个NUMA节点配备16GB的DRAM和265GB的Optane DC PMEM模块。实验平台运行在Ubuntu 18.04LTS系统上,进行大规模图数据处理的实验。

表1实验环境配置简介

(2)然后是数据集和对比算法介绍部分。实验中使用的所有图数据集都是公开的真实世界的图数据。选择社交网络的图数据集Facebook和soc-LiveJournal来验证NPGraph。此外,大规模图数据集Twitter-2010、Friendster和Yahoo Web分别是社交网络、游戏网站和网站。它们由数十亿个顶点和边构成,具有较大的直径。具体来说,下面三个图数据集基于Dual-Block图表示方法进行存储的规模分别是DRAM容量的1.56倍、1.94倍和6.81倍。

表2基准数据集简介

评估中使用的基本图算法包括代表性稀疏矩阵乘法算法PageRank和基于图遍历的WCC。在实验中,PageRank被设定为迭代运行十次,而WCC则运行到收敛为止。这两类算法表现出不同的计算特性,可以对NPGraph进行计算和遍历两方面的评估。最后,NPGraph与最先进的系统GraphOne和XPGraph进行了比较。

(3)自适应推拉策略的影响:在上述五种公开数据集上,利用WCC算法和PageRank算法,对Forward-Push模型、Backward-Pull模型和Dual-Adaptive模型进行了全面比较。上述三种更新模型的单线程执行时间如图7所示。

明显地,Dual-Adaptive模型的整体性能优于Forward-Push模型和Backward-Pull模型。更具体地说,对于WCC,Dual-Adaptive模型的性能比Forward-Push模型高出15.3%-27.6%。对于PageRank,Dual-Adaptive模型的性能比Forward-Push模型高出14.7%-28.9%。

不难发现,在这个实验中Forward-Push模型性能优于Backward-Pull模型。一般来说,基于Backward-Pull模型具有更多的读特性,对图数据的缓存更友好。然而在现实的图数据中,由于图数据往往存在小世界性,导致在图计算迭代计算过程中会出现大量随机数据访问。这可能导致优化高速缓存行为(Backward-Pull模型)不一定比优化快速传播方式(Forward-Push模型)更高效。也就是说,在更新信息传播方面,基于Forward-Push模型比Backward-Pull模型更具优势。基于Forward-Push模型中额外的写操作并不仅仅是顶点更新的另一种实现方式,而是会影响任务的调度。它更方便转换顶点的状态,这种改进的调度方式弥补了写入负载的时间开销。

(4)数据分层策略的影响:为了验证HMS中数据分层策略的有效性,NPGraph在Friendster上进行了多线程(1到64个线程)的对比实验。如上所述,一个图G被划分为P个子图。根据Row的偏移量和Col的大小,很容易确定子图的稀疏稠密程度。因此,将密集子图优先加载到DRAM中是一种自然的方法。这里将对比实验分为两种情况:一种是将子图的所有结构数据都加载到PMEM中。在这种情况下,如图8所示,PageRank和WCC被标记为PR和WCC。另一种数据放置策略作为对比。根据DRAM和数据集的大小,NPGraph将top-20%的稠密子图的加载到内存中。在这种情况下,PageRank和WCC分别标记为PR-L和WCC-L。更重要的是,NPGraph采用了自适应推拉策略,以获得最佳性能。同时,在代码程序中使用了交换原语,如atomic_compare_exchange()。

从图8中可以看出,两种数据放置策略对比实验,PR-L和WCC-L的性能是PR和WCC的1.51-1.83倍。并且随着线程数的增加,执行时间均逐渐减少,这一趋势证明了图数据分层策略可以充分利用HMS中的DRAM和PMEM。因此,NPGraph的整体性能可以通过数据分层策略得到显著提升。基于以上观察,我们可以得出两个结论:(1)与WCC相比,由于对异构内存的敏感,PageRank获得更大的性能提升。(2)从多线程执行时间的变化趋势可以看出,NPGraph具有良好的并行可扩展性。

(5)动态数据迁移策略的影响:为了评估HMS中数据迁移策略的有效性,NPGraph在上述五个数据集上运行WCC和PageRank算法。NPGraph将自适应推拉模式、数据分层模式和数据迁移模式统一标记为NPGraph-A、NPGraph-L和NPGraph-M。为获得最优的性能表现,这里采用64个工作线程并行加速NPGraph图计算模型。

表3WCC和PageRank的执行时间(秒)

如表3所示,NPGraph-M的性能表现整体优于NPGraph-L;而NPGraph-L的性能表现优于NPGraph-A。更具体地说,在WCC和PageRank两类算法中,NPGraph-M的性能比NPGraph-A高出14.3%-34.6%。此外,在WCC中,NPGraph-M的性能比NPGraph-L高14.1%-23.5%。同时,在PageRank方面,NPGraph-M的性能比NPGraph-L高出12.9%-18.5%。

通过分析表3中的实验结果,可以确定动态数据迁移策略在NPGraph中的有效性。基于该策略,NPGraph的性能得到了进一步提高。这进一步证明了结合数据分层和动态数据迁移可以同时提升HMS中图计算的空间局部性和时间局部性。

(6)对比其他模型:NPGraph与最先进的内存模型进行了比较:GraphOne和XPGraph。它们都支持并行模式的图计算。为了获得最优的性能表现,NPGraph提供了16GBDRAM、256GB PMEM和2个NUMA节点。为了公平起见,GraphOne、XPGraph和NPGraph在同一环境中运行,线程数设置为64。图9显示了五个不同图形数据集的执行时间。

如图9所示,与GraphOne和XPGraph相比,NPGraph明显加快了速度。具体来说,在Pagerank和WCC两类算法上,NPGraph相对GraphOn提升了27.36%到43.8%。此外,在Pagerank和WCC算法上,它比XPGraph提升了21.67%到32.03%。NPGraph性能的提高得益于其构建的基于Dual-Block图存储表示方式,及其有效支撑的基于数据驱动的自适应推拉(Push-Pull)更新模型。

为了存储超大规模的图数据,GraphOne使用了一种混合存储格式,结合了两种最常用的内存图存储格式,即边列表和邻接列表。它采用以顶点为中心的随机存取模式来遍历图结构数据。然而,由于忽略了图计算的动态特性,它必须遍历所有内存中的图数据,导致出现效率低下问题。此外,它还会产生大量的中间结果写操作,从而导致巨大的I/O开销。基于NUMA的XPGraph开发了一种XPLine友好的图访问模型,该模型具有以顶点为中心的图缓冲功能。不过,它的主要解决大规模动态图的存储问题。在每次迭代中,它忽略了多个线程之间的负载不平衡问题。这恰恰是NPGraph的最大优势。在基于NUMA的混合内存系统中,基于基于Dual-Block图存储表示方式和基于数据驱动的自适应推拉策略,NPGraph降低了图数据访问成本,提高了图数据的并行计算效率。

尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

相关技术
  • 一种异构混合内存系统中存储日志信息的方法及其容错装置
  • 基于内存计算的图神经网络硬件计算系统及方法
  • 基于NVM混合内存的自适应前缀树构建方法及其系统、介质
技术分类

06120116490992