CN110737804A - 一种基于活跃度布局的图处理访存优化方法及系统 - Google Patents

一种基于活跃度布局的图处理访存优化方法及系统 Download PDF

Info

Publication number
CN110737804A
CN110737804A CN201910893570.0A CN201910893570A CN110737804A CN 110737804 A CN110737804 A CN 110737804A CN 201910893570 A CN201910893570 A CN 201910893570A CN 110737804 A CN110737804 A CN 110737804A
Authority
CN
China
Prior art keywords
vertex
inactive
blocks
activity
edge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910893570.0A
Other languages
English (en)
Other versions
CN110737804B (zh
Inventor
施展
冯丹
王芳
朱涛
单玉祥
龚慧媛
黄世财
吴雨桐
何雨迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201910893570.0A priority Critical patent/CN110737804B/zh
Publication of CN110737804A publication Critical patent/CN110737804A/zh
Application granted granted Critical
Publication of CN110737804B publication Critical patent/CN110737804B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种基于活跃度布局的图处理访存优化方法及系统,属于计算机数据处理技术领域,包括:获得待处理的目标图的数据后,按照中介中心性降序顺序对顶点排序,并根据活跃百分比将排序结果划分为活跃顶点集和不活跃顶点集;将活跃顶点集聚集组织并存储;将不活跃顶点集聚集组织并存储后,将其等分为多个大小为C的顶点块,并将对应的出边切分为多个边块,每个边块包括一个或多个编号连续的顶点的出边,且每个边块不小于C,同时维护状态表TActvB和TActeB,以筛除不活跃顶点集中的无用数据;TActvB用于记录各顶点块的活跃性,TActeB用于记录各边块的活跃性及下一边块的偏移量。本发明能够减少图应用执行过程中的访存等待时间,提高图处理效率。

Description

一种基于活跃度布局的图处理访存优化方法及系统
技术领域
本发明属于计算机数据处理技术领域,更具体地,涉及一种基于活跃度布局的图处理访存优化方法及系统。
背景技术
作为计算机科学中一种重要的数据结构,图可以清晰地描述各种事物之间的关系,因此使用图模型分析复杂数据的方法越来越流行。图被广泛应用到社会生活的很多领域中,并帮助解决这些领域产生的复杂问题,比如交通领域的最优路线,生物医学领域的蛋白质分子结构分解,社交网络领域的社区发现,以及当前火热的知识图谱、数据挖掘、语义网络、链接预测等。随着大数据时代的到来,伴随这些领域产生图数据的规模也在迅速增长。比如2018年社交网络Facebook宣布全年月度活跃用户数已达23.2亿,占据了世界四分之一的人口数量。
随着图数据规模的迅速增长,出现了很多专用的高效图处理系统,其中外存模式图处理系统可以使用廉价低速的外存存储数据,通过一些数据布局或者系统优化工作提高访存速度,在单机环境下就可以处理拥有数亿条边规模的图数据。单机外存模式因为内存有限,无法一次性将数据从外存载入内存直接处理,只能将存储在外存上的数据进行分区,然后依次处理,这将需要对容量较大而速度较慢的外存多次访问。另外图处理分为多次迭代执行,每一次迭代中存在需要访问的活跃数据和不需要访问的不活跃数据,由于图数据分布的随机性,使得活跃和不活跃数据相互交叉存放,数据频繁在外存设备和内存设备间进行切换,降低了缓存的效率。而这样的现象会出现在存储系统中不同的层次之间,增大了CPU的等待时间,从而降低了图处理的效率,访存问题成为图处理性能的一大瓶颈。
图数据的局部性是影响CPU访问数据的一个关键因素,给图处理的效率带来了不可忽视的影响,因此图数据的组织与处理器的访存行为有着紧密的关系,近些年针对图处理的访存优化方法主要利用活跃数据的局部性,提高访问速度,外存系统GraphChi把分区中的边集按照源顶点进行排序就是一个比较有代表性的例子。GraphChi根据处理器访问数据的特点,为发挥活跃数据的局部性优势合理地组织数据,优化后的数据会更好地适用于处理器的访存行为,然而它忽略了不活跃数据给图处理带来的负载压力,使得图处理过程中存在着很多不参与计算的数据,这些数据不仅带来了无用计算,也带来了很多冗余I/O,依然影响着图处理的效率。总的来说,针对图处理的访存方法仍然存在的较大的优化空间。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种基于活跃度布局的图处理访存优化方法及系统,其目的在于,减少图应用执行过程中的访存等待时间,以提高图处理效率。
为实现上述目的,按照本发明的第一方面,提供了一种基于活跃度布局的图处理访存优化方法,包括:
获得待处理的目标图的数据后,按照中介中心性降序顺序对目标图中的顶点进行排序,并根据预设的活跃百分比将排序后的顶点划分为活跃顶点集和不活跃顶点集;活跃顶点集中顶点的中介中心性高于不活跃顶点集中顶点的中介中心性;
将活跃顶点集中的顶点聚集组织并存储;
将不活跃顶点集中的顶点聚集组织并存储后,将不活跃顶点集等分为多个大小为C的顶点块,并将不活跃顶点集所对应的出边切分为多个边块,每个边块包括一个或多个编号连续的顶点的出边,且每个边块的大小不小于C,同时维护状态表TActvB和状态表TActeB,以筛除不活跃顶点集中的无用数据;状态表TActvB用于记录各顶点块的活跃性,状态表TActeB用于记录各边块的活跃性以及下一个边块的偏移量;
其中,C为Cacheline的大小。
中介中心性代表了经过某个顶点最短路径的数量占图中存在最短路径数量的比例,中介中心性越高,经过该顶点的最短路径越多,因此对于一张图的多个社区之间会需要中介中心性高的顶点连接;中介中心性与连通性无关,它衡量的是一个顶点在两个或多个聚类的群体上作为媒介者的能力,通常需要结合全局的信息,这种特性在网络分析中很重要,尤其是两个联系不大的大团体中。中介中心性大多时候保持着最高的查准率,这代表了一些低度顶点在连接图中多个分离的子图发挥着必要的作用,当前图处理系统通常采用标签传播算法实现,那么中介中心性高的顶点将会比低的顶点参与计算的过程多一些。虽然中介中心性的计算复杂度很高,但是并不要求计算每一个顶点中介中心性的准确值,只是需要求取中介中心性排名靠前的一定数量范围的顶点集(活跃顶点)即可,这样就降低了程序的复杂度。
本发明利用中介中心性来衡量顶点的活跃度,能够从整体上较为准确地完成活跃顶点和不活跃顶点的划分;对于划分得到的活跃顶点集进行聚集组织并存储,能够增大活跃数据的局部性,提高访存速度;对于划分得到的不活跃顶点集同样进行聚集组织并存储,通过分块和状态表筛除不活跃顶点集中的无用数据,对于大量无需处理的数据可以直接跳过,从而能够减少不活跃数据传输量。因此,本发明能够在图应用执行过程中减少访存等待时间,提高图处理效率。
进一步地,本发明第一方面提供的基于活跃度布局的图处理访存优化方法,还包括:
在访问不活跃顶点集时,依次获取每一个顶点块,并根据状态表TActvB获取顶点块的活跃性,对于不活跃的顶点块,不进行操作;
对于每一个活跃的顶点块verticesBlock,遍历其中的顶点;对于所遍历到的顶点,判断其活跃性,若为活跃顶点,则从更新表中获得该顶点的更新值以计算该顶点的新值,并利用所计算的新值更新顶点表;若所遍历到的顶点为不活跃顶点,则不进行操作;在遍历完成后,即可筛除顶点块中的无用数据并针对剩余需要计算的顶点进行计算;
在访问不活跃顶点所对应的出边时,依次获取每一个边块,并根据状态表TActeB获取边块的活跃性,对于不活跃的边块,不进行操作;
对于每一个活跃的边块edgesBlock,遍历其中的边;对于所遍历到的边,根据其源节点的数据判断是否需要为其目的节点计算新的更新值,若需要为该边的目的节点计算新的更新值,则利用源节点数据计算目的节点的更新值后,更新更新表;若不需要为该边的目的节点计算新的更新值,则不做操作;
其中,顶点表用于记录目标图中各顶点的数据,更新表用于记录目标图中各顶点的更新值。
通过上述操作能够首先进行粗粒度地检测数据块(顶点块或边块)的活跃性,然后对于活跃的数据块再进行细粒度的检测,这样能够有效地过滤掉成块的不活跃数据,避免大量的不活跃数据被访问处理,减少不活跃数据的传输量,从而有效减少图应用执行过程中的访存等待时间,提高图处理效率。
进一步地,本发明第一方面提供的基于活跃度布局的图处理访存优化方法,还包括:
若存在两个连续且均不活跃的边块edgesBlock1和edgesBlock2,则将这两个边块合并为一个新的边块edgesBlock3,并更新状态表TActeB。
本发明通过合并连续的不活跃边块,有利于更为有效地过滤掉不活跃的边数据,提高图处理效率。
进一步地,本发明第一方面提供的基于活跃度布局的图处理访存优化方法,还包括:对于一个分区中存储的所有顶点块,获得各顶点块的活跃性之后进行与计算,以判断整个分区的活跃性;在访问不活跃顶点集时,对于不活跃的分区中存储的所有顶点块,不进行操作。
进一步地,将不活跃顶点集中的顶点聚集组织,具体通过限步长的BFS(广度优先搜索)布局方法完成。
本发明通过限步长的BFS布局方法聚集组织不活跃顶点集中的顶点,可以根据直接邻接关系进行重布局,将分布距离近的顶点聚集到一起,使得高出度节点的出边集中分布,从而当这些节点不需要处理时,相应的边块可以整块筛除,由此能够提高对无用数据的筛除效率。
进一步地,活跃百分比为:PA=10%;在实际应用中,图中大约不到10%的顶点能参与图处理大部分的迭代过程,剩下的90%的顶点都在少量的迭代后不再参与计算,本发明通过设置活跃百分比PA=10%,即将所有顶点中中介中心性最高的前10%的顶点作为活跃顶点,而其他顶点作为不活跃顶点对待,能够从整体上较为准确地划分出活跃顶点和不活跃顶点。
按照本发明的第二方面,提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中的可执行程序,执行本发明第一方面提供的基于活跃度布局的图处理访存优化方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的基于活跃度布局的图处理访存优化方法及系统,利用中介中心性来衡量顶点的活跃度,能够从整体上较为准确地完成活跃顶点和不活跃顶点的划分;对于划分得到的活跃顶点集进行聚集组织并存储,能够增大活跃数据的局部性,提高访存速度;对于划分得到的不活跃顶点集同样进行聚集组织并存储,通过分块和状态表筛除不活跃顶点集中的无用数据,对于大量无需处理的数据可以直接跳过,从而能够减少不活跃数据传输量。因此,本发明能够在图应用执行过程中减少访存等待时间,提高图处理效率。
(2)本发明所提供的基于活跃度布局的图处理访存优化方法及系统,利用所维护的状态表,首先进行粗粒度地检测数据块(顶点块或边块)的活跃性,然后对于活跃的数据块再进行细粒度的检测,能够有效地过滤掉成块的不活跃数据,避免大量的不活跃数据被访问处理,减少不活跃数据的传输量,从而有效减少图应用执行过程中的访存等待时间,提高图处理效率。
(3)本发明所提供的基于活跃度布局的图处理访存优化方法及系统,通过限步长的BFS布局方法聚集组织不活跃顶点集中的顶点,可以根据直接邻接关系进行重布局,将分布距离近的顶点聚集到一起,使得高出度节点的出边集中分布,从而当这些节点不需要处理时,相应的边块可以整块筛除,由此能够提高对无用数据的筛除效率。
总的来说,本发明根据中介中心性刻画顶点的活跃度特征,把顶点划分为活跃顶点集和不活跃顶点集。把图数据中活跃顶点集进行聚集编排,提高活跃数据访问速度。同时根据度中心性和直接邻接关系主导不活跃数据的编排,把不频繁访问的数据也进行聚集存储,提高不活跃数据的局部性,然后结合提出的数据筛选策略有效降低不活跃数据在各层存储设备之间的传输量,提高缓存的使用效率,从而提高图处理效率。
附图说明
图1为本发明实施例提供的基于活跃度布局的图处理访存优化方法示意图;
图2为本发明实施例提供的活跃顶点集的聚集分布图;
图3为本发明实施例提供的原始图数据及其分区访问情况示意图;其中,(a)为原始图数据示意图,(b)为相应的分区访问情况示意图;
图4为本发明实施例提供的经过聚集存储后的图数据及其分区访问情况示意图;其中,(a)为重布局后的图数据示意图,(b)为相应的分区访问情况示意图;
图5为本发明实施例提供的边块的处理过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为了减少图应用执行过程中的访存等待时间,以提高图处理效率,本发明提供了一种基于活跃度布局的图处理访存优化方法及系统,其整体思路在于:根据图数据的活跃特征重编排,同时考虑活跃数据和不活跃数据的分布,改善图分区的数据布局情况,进而优化图处理的访存行为;具体地,首先对数据进行预处理,根据顶点的活跃度划分为活跃顶点集和不活跃顶点集,通过顶点重编排工作,使得它们分别聚集,一方面提高活跃数据的局部性,进而提高活跃数据的访问速度,另一方面提高不活跃数据的局部性,在图处理过程中结合数据筛选策略跳过这些不参与处理的数据,减少冗余数据传输量。
本发明所提供的基于活跃度布局的图处理访存优化方法,如图1所示,包括:
获得待处理的目标图的数据后,按照中介中心性降序顺序对目标图中的顶点进行排序,并根据预设的活跃百分比将排序后的顶点划分为活跃顶点集和不活跃顶点集;活跃顶点集中顶点的中介中心性高于不活跃顶点集中顶点的中介中心性;
将活跃顶点集中的顶点聚集组织并存储;
将不活跃顶点集中的顶点聚集组织并存储;在一个可选的实施方式中,将不活跃顶点集中的顶点聚集组织,具体可通过限步长的BFS(广度优先搜索)布局方法完成;
将不活跃顶点集等分为多个大小为C的顶点块,C为Cacheline的大小;假设不活跃顶点集中的顶点数量为V,则顶点块的数量为
Figure BDA0002209543510000081
并将不活跃顶点集所对应的出边切分为多个边块,每个边块包括一个或多个编号连续的顶点的边,且每个边块的大小不小于C;出边根据顶点的出度进行切分,假设每个顶点占据的空间为U,顶点的出度为D,如果U×D≥C,则该顶点的出边邻居顶点集划分为一个集合,如不满足该不等式,则合并顶点编号连续的邻居顶点集,使得合并的集合的顶点不小于C,以保证每个Cacheline都能够放满,避免其他无关的数据;
在对不活跃顶点集和出边进行划分的同时,维护状态表TActvB和状态表TActeB,以辅助筛除不活跃顶点集中的无用数据;状态表TActvB用于记录各顶点块的活跃性,状态表TActeB用于记录各边块的活跃性,由于边块的大小不固定,当需要跳过不需要处理的边块时,需要有相应的指示信息,因此,状态表TActvB还用于记录下一个边块的偏移量;
其中,C为Cacheline的大小。
作为一种优选的实施方式,在上述基于活跃度布局的图处理访存优化方法中,活跃百分比为:PA=10%;
在实际应用中,图中大约不到10%的顶点能参与图处理大部分的迭代过程,剩下的90%的顶点都在少量的迭代后不再参与计算,本发明通过设置活跃百分比PA=10%,即将所有顶点中中介中心性最高的前10%的顶点作为活跃顶点,而其他顶点作为不活跃顶点对待,能够从整体上较为准确地划分出活跃顶点和不活跃顶点;
对于活跃顶点集和不活跃顶点集的划分如图2所示,其中,序列Arr1为图数据中的原始顶点序列,其中的活跃顶点和不活跃顶点交叉分布;按照中介中心性对顶点进行排序后,顶点序列如序列Arr2所示;按照活跃百分比PA将序列Arr2划分为两部分,其中,中介中心性较高的前半部分顶点构成活跃顶点集,及序列Arr3,这一部分顶点占所有顶点的百分比就是活跃百分比;剩余的后半部分顶点构成不活跃顶点集。
由于不活跃顶点的出边集是非常庞大的,需要在迭代过程中不断筛除,但是图数据的随机性会使得它们分布零散,即使有一些筛选数据的方法,也因为局部性太低无法进行筛选,导致无用数据过滤策略的效率低下。因此对不活跃顶点之间的逻辑关系进行数据布局,增大不活跃数据的局部性,充分发挥筛选策略的性能;在上述基于活跃度布局的图处理访存优化方法中,具体可采用限步长的BFS布局方法聚集组织不活跃顶点集中的顶点;限步长的BFS(广度优先搜索)布局方法可以用来聚集分布距离近的顶点,采用单步BFS来获取邻接关系,BFS一般从图中的某顶点v开始访问,首先访问顶点v的未曾访问的邻居顶点,获取邻居顶点集Set(v),然后再依次访问Set(v)的每一个顶点的邻居顶点,Set(v)中先被访问顶点的邻居顶点先于后被访问的邻居顶点,直至所有的顶点都被访问;上述基于活跃度布局的图处理访存优化方法通过限步长的BFS布局方法聚集组织不活跃顶点集中的顶点,可以根据直接邻接关系进行重布局,将分布距离近的顶点聚集到一起,使得高出度节点的出边集中分布,从而当这些节点不需要处理时,相应的边块可以整块筛除,由此能够提高对无用数据的筛除效率;以下结合一个具体例子进行进一步说明:
假设一个图中共包含12个顶点,并符合幂律分布;
原始的图数据如图3(a)所示,顶点1,3拥有大部分的边;假设把这12个顶点分为四个分区,{{1,2,3},{4,5,6},{7,8,9},{10,11,12}},分区情况如图3(b)所示,对于出度高的顶点1,3来说,它们的边随机散落在各个分区中;当前大多数图处理系统都支持顶点调度,处理每一个顶点时需要同时访问它的入边和出边,假如处理顶点1,因为它的出边分布在四个分区上,那么四个分区都需要被加载访问;如果从不活跃数据角度考虑,假设顶点1已经不需要处理,那么它的出边(虚线表示)都可以不做加载,另外因为上一次迭代中产生的更新值没有改变,它出边连接的邻居顶点{2,4,5,8,11,12}也都不需要访问;但是因为出边集和邻居顶点集存放不连续,筛选策略是无法有效去除的,它们依然存在于多个请求中,并不会参与计算;同样,顶点3也会存在这种情况。
采用限步长的BFS布局方法对图数据进行重新布局后,图数据如图4(a)所示,其中高度顶点成为了7,8;接着进行分区,分区结果如图4(b)所示,以顶点7为例,它的邻居顶点集{1,2,3,4,5,6}是连续分布的,而且它的出边分布比较集中,只存储于两个分区中;假设顶点7不再需要处理,因为它的邻居顶点集和出边都是集中存放的,那么就可以整块筛除,减少数据的访问和处理;同样的,顶点8会有相似的效果。
上述基于活跃度布局的图处理访存优化方法,还可包括:
在访问不活跃顶点集时,依次获取每一个顶点块,并根据状态表TActvB获取顶点块的活跃性,对于不活跃的顶点块,不进行操作;
对于每一个活跃的顶点块verticesBlock,遍历其中的顶点;对于所遍历到的顶点,判断其活跃性,若为活跃顶点,则从更新表中获得该顶点的更新值以计算该顶点的新值,并利用所计算的新值更新顶点表;若所遍历到的顶点为不活跃顶点,则不进行操作;在遍历完成后,即可筛除顶点块中的无用数据并针对剩余需要计算的顶点进行计算;
在访问不活跃顶点所对应的出边时,依次获取每一个边块,并根据状态表TActeB获取边块的活跃性,对于不活跃的边块,不进行操作;
对于每一个活跃的边块edgesBlock,遍历其中的边;对于所遍历到的边,根据其源节点的数据判断是否需要为其目的节点计算新的更新值,若需要为该边的目的节点计算新的更新值,则利用源节点数据计算目的节点的更新值后,更新更新表;若不需要为该边的目的节点计算新的更新值,则不做操作;
其中,顶点表用于记录目标图中各顶点的数据,更新表用于记录目标图中各顶点的更新值;
通过上述操作能够首先进行粗粒度地检测数据块(顶点块或边块)的活跃性,然后对于活跃的数据块再进行细粒度的检测,这样能够有效地过滤掉成块的不活跃数据,避免大量的不活跃数据被访问处理,减少不活跃数据的传输量,从而有效减少图应用执行过程中的访存等待时间,提高图处理效率;
为了进一步提高对无用数据的筛除效率,在上述基于活跃度布局的图处理访存优化方法中,还可包括:
若存在两个连续且均不活跃的边块edgesBlock1和edgesBlock2,则将这两个边块合并为一个新的边块edgesBlock3,并更新状态表TActeB,如图5所示,
通过合并连续的不活跃边块,有利于更为有效地过滤掉不活跃的边数据,提高图处理效率。
作为一种可选的实施方式,在上述基于活跃度布局的图处理访存优化方法中,还包括:对于一个分区中存储的所有顶点块,获得各顶点块的活跃性之后进行与计算,以判断整个分区的活跃性;在访问不活跃顶点集时,对于不活跃的分区中存储的所有顶点块,不进行操作;
通过与计算能够获取整个分区的状态,由此判断整个分区是否需要处理。
本发明还提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中的可执行程序,执行上述基于活跃度布局的图处理访存优化方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于活跃度布局的图处理访存优化方法,其特征在于,包括:
获得待处理的目标图的数据后,按照中介中心性降序顺序对所述目标图中的顶点进行排序,并根据预设的活跃百分比将排序后的顶点划分为活跃顶点集和不活跃顶点集;所述活跃顶点集中顶点的中介中心性高于所述不活跃顶点集中顶点的中介中心性;
将所述活跃顶点集中的顶点聚集组织并存储;
将所述不活跃顶点集中的顶点聚集组织并存储后,将所述不活跃顶点集等分为多个大小为C的顶点块,并将不活跃顶点集所对应的出边切分为多个边块,每个边块包括一个或多个编号连续的顶点的出边,且每个边块的大小不小于C,同时维护状态表TActvB和状态表TActeB,以筛除所述不活跃顶点集中的无用数据;所述状态表TActvB用于记录各顶点块的活跃性,所述状态表TActeB用于记录各边块的活跃性以及下一个边块的偏移量;
其中,C为Cacheline的大小。
2.如权利要求1所述的基于活跃度布局的图处理访存优化方法,其特征在于,还包括:
在访问所述不活跃顶点集时,依次获取每一个顶点块,并根据所述状态表TActvB获取顶点块的活跃性,对于不活跃的顶点块,不进行操作;
对于每一个活跃的顶点块verticesBlock,遍历其中的顶点;对于所遍历到的顶点,判断其活跃性,若为活跃顶点,则从更新表中获得该顶点的更新值以计算该顶点的新值,并利用所计算的新值更新顶点表;若所遍历到的顶点为不活跃顶点,则不进行操作;
在访问所述不活跃顶点所对应的出边时,依次获取每一个边块,并根据状态表TActeB获取边块的活跃性,对于不活跃的边块,不进行操作;
对于每一个活跃的边块edgesBlock,遍历其中的边;对于所遍历到的边,根据其源节点的数据判断是否需要为其目的节点计算新的更新值,若需要为该边的目的节点计算新的更新值,则利用源节点数据计算目的节点的更新值后,更新所述更新表;若不需要为该边的目的节点计算新的更新值,则不做操作;
其中,所述顶点表用于记录所述目标图中各顶点的数据,所述更新表用于记录所述目标图中各顶点的更新值。
3.如权利要求2所述的基于活跃度布局的图处理访存优化方法,其特征在于,还包括:
若存在两个连续且均不活跃的边块edgesBlock1和edgesBlock2,则将这两个边块合并为一个新的边块edgesBlock3,并更新所述状态表TActeB。
4.如权利要求2所述的基于活跃度布局的图处理访存优化方法,其特征在于,还包括:对于一个分区中存储的所有顶点块,获得各顶点块的活跃性之后进行与计算,以判断整个分区的活跃性;在访问所述不活跃顶点集时,对于不活跃的分区中存储的所有顶点块,不进行操作。
5.如权利要求1或2所述的基于活跃度布局的图处理访存优化方法,其特征在于,将所述不活跃顶点集中的顶点聚集组织,具体通过限步长的BFS布局方法完成。
6.如权利要求1或2所述的基于活跃度布局的图处理访存优化方法,其特征在于,所述活跃百分比为:PA=10%。
7.一种系统,包括处理器和计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储可执行程序;
所述处理器用于读取所述计算机可读存储介质中的可执行程序,执行权利要求1-6任一项所述的基于活跃度布局的图处理访存优化方法。
CN201910893570.0A 2019-09-20 2019-09-20 一种基于活跃度布局的图处理访存优化方法及系统 Active CN110737804B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910893570.0A CN110737804B (zh) 2019-09-20 2019-09-20 一种基于活跃度布局的图处理访存优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910893570.0A CN110737804B (zh) 2019-09-20 2019-09-20 一种基于活跃度布局的图处理访存优化方法及系统

Publications (2)

Publication Number Publication Date
CN110737804A true CN110737804A (zh) 2020-01-31
CN110737804B CN110737804B (zh) 2022-04-22

Family

ID=69269365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910893570.0A Active CN110737804B (zh) 2019-09-20 2019-09-20 一种基于活跃度布局的图处理访存优化方法及系统

Country Status (1)

Country Link
CN (1) CN110737804B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309976A (zh) * 2020-02-24 2020-06-19 北京工业大学 一种面向收敛型图应用的GraphX数据缓存方法
CN111737540A (zh) * 2020-05-27 2020-10-02 中国科学院计算技术研究所 一种应用于分布式计算节点集群的图数据处理方法和介质
CN112988064A (zh) * 2021-02-09 2021-06-18 华中科技大学 一种面向并发多任务的磁盘图处理方法
CN113449152A (zh) * 2021-06-24 2021-09-28 西安交通大学 图数据预取器及预取方法
CN113656426A (zh) * 2021-10-20 2021-11-16 支付宝(杭州)信息技术有限公司 分布式数据处理方法、装置及设备
CN113726342A (zh) * 2021-09-08 2021-11-30 中国海洋大学 面向大规模图迭代计算的分段差值压缩与惰性解压方法
WO2023241641A1 (zh) * 2022-06-15 2023-12-21 华为技术有限公司 图的处理方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010165108A (ja) * 2009-01-14 2010-07-29 Ricoh Co Ltd 画像処理装置、システム、制御方法およびプログラム
JP2012142724A (ja) * 2010-12-28 2012-07-26 Canon Inc 画像処理方法
US20140172810A1 (en) * 2012-12-13 2014-06-19 Marcus Paradies Graph Traversal Operator Inside a Column Store
CN106815080A (zh) * 2017-01-09 2017-06-09 北京航空航天大学 分布式图数据处理方法和装置
CN107122248A (zh) * 2017-05-02 2017-09-01 华中科技大学 一种存储优化的分布式图处理方法
CN107633260A (zh) * 2017-08-23 2018-01-26 上海师范大学 一种基于聚类的社交网络意见领袖挖掘方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010165108A (ja) * 2009-01-14 2010-07-29 Ricoh Co Ltd 画像処理装置、システム、制御方法およびプログラム
JP2012142724A (ja) * 2010-12-28 2012-07-26 Canon Inc 画像処理方法
US20140172810A1 (en) * 2012-12-13 2014-06-19 Marcus Paradies Graph Traversal Operator Inside a Column Store
CN106815080A (zh) * 2017-01-09 2017-06-09 北京航空航天大学 分布式图数据处理方法和装置
CN107122248A (zh) * 2017-05-02 2017-09-01 华中科技大学 一种存储优化的分布式图处理方法
CN107633260A (zh) * 2017-08-23 2018-01-26 上海师范大学 一种基于聚类的社交网络意见领袖挖掘方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王童童,荣垂田,卢卫,杜小勇: "分布式图处理系统技术综述", 《软件学报》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309976B (zh) * 2020-02-24 2021-06-25 北京工业大学 一种面向收敛型图应用的GraphX数据缓存方法
CN111309976A (zh) * 2020-02-24 2020-06-19 北京工业大学 一种面向收敛型图应用的GraphX数据缓存方法
CN111737540B (zh) * 2020-05-27 2022-11-29 中国科学院计算技术研究所 一种应用于分布式计算节点集群的图数据处理方法和介质
CN111737540A (zh) * 2020-05-27 2020-10-02 中国科学院计算技术研究所 一种应用于分布式计算节点集群的图数据处理方法和介质
CN112988064A (zh) * 2021-02-09 2021-06-18 华中科技大学 一种面向并发多任务的磁盘图处理方法
CN112988064B (zh) * 2021-02-09 2022-11-08 华中科技大学 一种面向并发多任务的磁盘图处理方法
CN113449152A (zh) * 2021-06-24 2021-09-28 西安交通大学 图数据预取器及预取方法
CN113449152B (zh) * 2021-06-24 2023-01-10 西安交通大学 图数据预取器及预取方法
CN113726342A (zh) * 2021-09-08 2021-11-30 中国海洋大学 面向大规模图迭代计算的分段差值压缩与惰性解压方法
CN113726342B (zh) * 2021-09-08 2023-11-07 中国海洋大学 面向大规模图迭代计算的分段差值压缩与惰性解压方法
CN113656426A (zh) * 2021-10-20 2021-11-16 支付宝(杭州)信息技术有限公司 分布式数据处理方法、装置及设备
CN113656426B (zh) * 2021-10-20 2022-02-08 支付宝(杭州)信息技术有限公司 分布式数据处理方法、装置及设备
WO2023241641A1 (zh) * 2022-06-15 2023-12-21 华为技术有限公司 图的处理方法及装置

Also Published As

Publication number Publication date
CN110737804B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN110737804B (zh) 一种基于活跃度布局的图处理访存优化方法及系统
JP5425541B2 (ja) マルチプロセッサ・システム上でデータ・セットを区分化およびソートするための方法および装置
US10120956B2 (en) Methods and systems for distributed computation of graph data
CN112352234A (zh) 用于处理并发属性图查询的系统
CN109522428B (zh) 一种基于索引定位的图计算系统的外存访问方法
Ma et al. Process distance-aware adaptive MPI collective communications
Bisson et al. Parallel distributed breadth first search on the Kepler architecture
Ben-David et al. Implicit decomposition for write-efficient connectivity algorithms
CN110659284A (zh) 基于树图结构的区块定序方法及系统、数据处理终端
CN105468439A (zh) 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行算法
CN106709503A (zh) 一种基于密度的大型空间数据聚类算法k‑dbscan
US20230281157A1 (en) Post-exascale graph computing method, system, storage medium and electronic device thereof
Wu et al. HY-DBSCAN: A hybrid parallel DBSCAN clustering algorithm scalable on distributed-memory computers
CN114338506A (zh) 一种类脑计算机操作系统的神经任务片内路由方法及装置
CN108509532B (zh) 一种应用于地图的聚点方法和装置
CN112183001B (zh) 一种基于超图的集成电路的多级聚类方法
US20160378831A1 (en) Devices and/or methods to provide a query response based on ephemeral data
Srinivasan et al. A shared-memory algorithm for updating tree-based properties of large dynamic networks
CN110245271B (zh) 基于属性图的大规模关联数据划分方法及系统
Mirsadeghi et al. PTRAM: A parallel topology-and routing-aware mapping framework for large-scale HPC systems
Chatterjee et al. Data structures and algorithms for counting problems on graphs using gpu
Huang et al. A grid and density based fast spatial clustering algorithm
Laili et al. Parallel transfer evolution algorithm
CN106980673A (zh) 内存数据库表索引更新方法及系统
CN112100446B (zh) 搜索方法、可读存储介质和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant