一种基于图数据处理系统的数据并行访问方法

文档序号:8905649阅读:151来源:国知局
一种基于图数据处理系统的数据并行访问方法
【技术领域】
[0001] 本发明设及大数据处理技术领域,具体设及一种基于图数据处理系统的数据并行 访问方法。
【背景技术】
[0002] 图数据是一种W图为数据结构进行存储的数据,其被抽象成节点和节点的连线。 在现实世界中,图数据广泛存在且体量巨大,例如微博中的人际关系图、捜索引擎中的网页 指向图和交通系统中的地理信息图等等。分析并挖掘图数据中的信息对于商务管理,生产 控制,市场分析,工程设计和科学探索等领域的工作具有重要意义。目前分析图数据已有许 多成熟的算法,例如利用化geRank算法做网页排序,利用SSSP算法计算两个点之间的最短 距离。
[0003] 但是编写算法处理大型图数据需要解决许多复杂的问题,最典型的问题有如何高 效载入和输出大数据、如何充分利用多核系统的并行处理能力等。图数据处理系统解决该 些问题,并提供一个接口供用户来实现算法,它的系统架构图如图1所示。在图数据系统处 理数据时,访问数据的策略对系统性能有很大的影响。当前的图数据处理系统中访问数据 的策略比较保守,导致执行算法计算时并行度低,没有充分利用图算法的特点。

【发明内容】

[0004] 针对现有技术的W上缺陷或改进需求,本发明的目的在于提供一种基于图数据处 理系统的数据并行访问方法,通过修改访问图数据的限制,使得图数据中相连的点平均分 配至不同的CPU上,且保证图数据并行访问过程中的原子性读写,本发明可充分利用多核 硬件的处理能力,在保证图算法正确性的同时,提高了算法的执行速度,硬件扩展性好。
[0005] 本发明解决其技术问题所采用的技术方案是,提供一种基于图数据处理系统的数 据并行访问方法,所述方法包括W下步骤:
[0006]S1、载入图数据至内存,将图数据各节点平均分配至各处理器上并行处理;
[0007]S2、各处理器调用图算法并行处理分配至自身的图数据节点,处理过程中对图数 据节点进行原子性读写;
[0008]S3、将经图算法处理后的所有图数据节点写回至硬盘形成完整图数据,判断所有 图数据节点是否均收敛,如果收敛,则流程结束;如果不收敛,则返回步骤S1进行下一次循 环直到写回至硬盘的所有图数据节点均收敛。
[0009] 因此,本发明可W获得W下的有益效果:修改访问图数据的限制,使图数据访问的 操作过程由确定性执行模型变成充分并行的非确定性执行模型,并行度高,充分利用了多 核硬件的处理能力,提高了算法的执行速度,硬件扩展性好。对更新的操作过程中的图数据 进行原子性读写,可W有效修正有依赖关系的操作之间并行处理带来的错误,保证了图算 法结果的正确性。
【附图说明】
[0010] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0011] 图1是现有图数据处理系统结构示意图;
[0012] 图2是本发明基于图数据处理的数据并行访问方法流程示意图;
[001引图3(a)为图数据结构示意图;
[0014] 图3(b)为图数据访问的确定性执行过程示意图;
[0015] 图3(c)为图数据访问的充分并行的非确定性执行过程示意图;
[0016] 图4为本发明图数据并行访问示意图;
[0017] 图5为本发明方法原子性保证效果示意图;
[0018] 图6为应用本发明方法的系统执行SSSP算法的过程示意图。
【具体实施方式】
[0019] 为了使本发明的目的、技术方案及优点更加清楚明白,W下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用W解释本发明,并 不用于限定本发明。此外,下面所描述的本发明各个实施方式中所设及到的技术特征只要 彼此之间未构成冲突就可W相互组合。
[0020] 图1为现有图数据处理系统的架构图。图数据处理系统提供接口给用户W实现不 同的图算法,如化geRank和SSSP等。图数据处理系统其输入为图数据,根据上述图算法处 理输入输出的图数据,并解决并行优化等问题。图数据处理系统类似一个库,将一些复杂操 作封装起来,留出简单的接口给用户调用,最后运行在硬件和操作系统上。本发明方法基于 现有图数据处理系统,可提高其并行度,从而提高了算法的执行速度,硬件扩展性好。
[0021] 图2是本发明基于图数据处理系统的数据并行访问方法流程示意图,如图2所示, 本发明方法包括W下步骤:
[0022] S1、将图数据载入到内存,修改访问图数据的限制,使得图数据各节点平均分配至 不同的处理器上并行处理;
[0023]S2、各处理器调用图算法并行处理分配至自身的图数据节点,处理过程中对图数 据节点进行原子性读写,W修正图数据中相连的点平均分配至不同的处理器上并行处理带 来的错误;
[0024]S3、将经图算法处理后的所有图数据节点写回至硬盘形成完整的图数据,判断所 有图数据节点是否均收敛,如果收敛,则流程结束;如果不收敛,则返回步骤S1进行下一次 循环直到写回至硬盘的所有节点图数据均收敛。
[0025] 其中,上述步骤S1中,修改访问图数据的限制,使图数据访问由确定性执行过程 变成充分并行的非确定性执行过程。其中,确定性执行过程指的是图数据相连的点只能串 行访问;充分并行的非确定性执行过程指的是图数据相连的点可分配在不同处理器上。本 发明中,处理器通常为CPU。如图3所示,图3(a)为图数据结构示意图,图数据通过点与点 相连表示。图3(b)为图数据访问的确定性执行过程示意图,即所有相连的点只能串行访 问,假设有3个CPU,那么有一个CPU会处于空闲状态。图3(C)为图数据访问的充分并行的 非确定性执行过程示意图,不同点可W平均分配至不同CPU上,该方法可最大限度利用多 核性能,提升系统性能。
[0026] 图4为本发明数据并行访问示意图。其中,V为图数据中点的个数,即任务数。P为 CPU的个数。其中V个点平均分配至P个CPU上并行执行图算法。在本发明一个实施例中, 采用0PENMP并行库实现并行,则只需要应用0PENMP并行库中自带的staticsche化1ing的 调度策略就能实现。在本发明令一个实施例中,原图数据系统采用的是一般的pthread线 程库实现并行,则可W调用系统线程亲和力函数将线程和处理单元做绑定,W实现将V个 点平均分配至P个CPU上并行执行图算法。
[0027] 由于在原有存在依赖关系的操作之间进行并行处理,会带来数据竞争、不可预料 的程序行为等错误。因此上述步骤S2中,对载入内存的图数据进行原子性读写保证,W修 正上述错误。
[0028] 原子性保证的实现有下述不同的方式:
[0029] (1)第一种方式是由系统结构保证原子性。当基本单元数据不大时,由于系统读写 数据时,W-个字长为基本单位。因此一个点的数据结构保持数据对齐时,读写一定是原子 性的。
[0030] (2)第二种方式是用语言和编译器来保证原子性。例如在C++中提供了原子性的 操作。在读写时,调用语言自带的原子性操作W保证原子性。
[0031] (3)第=种是用显式的锁来保证原子性,在原基本单元数据结构中加入一个互斥 锁,读写时都加锁解锁来保证原子性。
[0032] 上述=种原子性保证的实现方式实验结果如图5所示。其中横坐标表示算法运行 时配置的可用线程数,纵坐标表示算法运行时间。DEexternaldeterministicscheduler 为现有图数据访问策略下的运行时间图。肥witharchitec化resuppcxrt为应用本发明 方法,且由系统结构保证的原子性方法的运行时间图。肥withcompilersuppcxrt为应用 本发明方法,且由语言和编译器保证的原子性方法的运行时间示意图。肥withexplicit locking/unlocking为为应用本发明方法,且有显示锁结构保证的原子性方法的运行时间 示意图。图(a)-图(d)、图(e)-图化)、图(i)-图(1)、图(m)-图(P)分别为本发明方法 应用于web-BerkStan、web-Google、soc-LiveJournall和cagel5 四个图数据集的运行时间 示意图。可W看到第一种方式和第二种方式修改后的系统性能相比于原有系统都有明显提 升。
[0033] 上述步骤S3中,图数据收敛的判断条件与步骤S2中选用的图算法有关,举例来 说,SSSP算法的收敛条件为所有点收敛而单个点收敛的条件为该点的点值小于该点所有入 边的边值、PageRank算法的收敛条件为所有点收敛而单个点收敛的条件为点更新后的新值 与旧值的差的绝对值小于给定的阔值。图6为应用本发明方法的系统执行SSSP算法的过 程示意图,(SSSP算法)收敛条件为点上的数据比其邻接边上的数据小,否则更新点数据为 相连边上最小的数据。因为图算法有趋向于收敛的特性,所W即使点和点之间存在数据冲 突,在多次迭代过程中,也会渐渐趋向收敛的数据。图6中Ly为点V的数据,Lu为点U的数 据。它们同时向公共边V一U写数据,直到点的数据比所有的邻接边上的数据小。点U和点 V同时写边,存在写写竞争。在第一次迭代结束后边值可能为1或者2。如果边值为1,在 第二次迭代后点U读入边值1后,所有的点收敛。如果边值为2,在第二次迭代中点U看到 边值不大于自己的点值,不再写边,同时点V更新边值为1,在第S次迭代后点U读入边值1 后,所有的点收敛。最终边和点上的数据收敛到了正确的结果。
[0034] 本领域的技术人员容易理解,W上所述仅为本发明的较佳实施例而已,并不用W 限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含 在本发明的保护范围之内。
【主权项】
1. 一种基于图数据处理系统的数据并行访问方法,其特征在于,所述方法包括以下步 骤: 51、 载入图数据至内存,将图数据各节点平均分配至各处理器上并行处理; 52、 各处理器调用图算法并行处理分配至自身的图数据节点,处理过程中对图数据节 点进行原子性读写; 53、 将经图算法处理后的所有图数据节点写回至硬盘形成完整图数据,判断所有图数 据节点是否均收敛,如果收敛,则流程结束;如果不收敛,则返回步骤Sl进行下一次循环直 到写回至硬盘的所有图数据节点均收敛。
【专利摘要】本发明公开了一种基于图数据处理系统的数据并行访问方法,所述方法包括以下步骤:S1、载入图数据至内存,将图数据各节点平均分配至各处理器上并行处理;S2、各处理器调用图算法并行处理分配至自身的图数据节点,处理过程中对图数据节点进行原子性读写;S3、将经图算法处理后的所有图数据节点写回至硬盘形成完整图数据,判断所有图数据节点是否均收敛,如果收敛,则流程结束;如果不收敛,则返回步骤S1进行下一次循环直到写回至硬盘的所有图数据节点均收敛。本发明可充分利用多核硬件的处理能力,在保证图算法正确性的同时,提高了算法的执行速度,硬件扩展性好。
【IPC分类】G06T1/20
【公开号】CN104881840
【申请号】CN201510239657
【发明人】金海 , 邵志远, 侯林
【申请人】华中科技大学
【公开日】2015年9月2日
【申请日】2015年5月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1