CN104881840A - 一种基于图数据处理系统的数据并行访问方法 - Google Patents
一种基于图数据处理系统的数据并行访问方法 Download PDFInfo
- Publication number
- CN104881840A CN104881840A CN201510239657.8A CN201510239657A CN104881840A CN 104881840 A CN104881840 A CN 104881840A CN 201510239657 A CN201510239657 A CN 201510239657A CN 104881840 A CN104881840 A CN 104881840A
- Authority
- CN
- China
- Prior art keywords
- data
- diagram data
- graph data
- nodes
- algorithm
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于图数据处理系统的数据并行访问方法,所述方法包括以下步骤:S1、载入图数据至内存,将图数据各节点平均分配至各处理器上并行处理;S2、各处理器调用图算法并行处理分配至自身的图数据节点,处理过程中对图数据节点进行原子性读写;S3、将经图算法处理后的所有图数据节点写回至硬盘形成完整图数据,判断所有图数据节点是否均收敛,如果收敛,则流程结束;如果不收敛,则返回步骤S1进行下一次循环直到写回至硬盘的所有图数据节点均收敛。本发明可充分利用多核硬件的处理能力,在保证图算法正确性的同时,提高了算法的执行速度,硬件扩展性好。
Description
技术领域
本发明涉及大数据处理技术领域,具体涉及一种基于图数据处理系统的数据并行访问方法。
背景技术
图数据是一种以图为数据结构进行存储的数据,其被抽象成节点和节点的连线。在现实世界中,图数据广泛存在且体量巨大,例如微博中的人际关系图、搜索引擎中的网页指向图和交通系统中的地理信息图等等。分析并挖掘图数据中的信息对于商务管理,生产控制,市场分析,工程设计和科学探索等领域的工作具有重要意义。目前分析图数据已有许多成熟的算法,例如利用PageRank算法做网页排序,利用SSSP算法计算两个点之间的最短距离。
但是编写算法处理大型图数据需要解决许多复杂的问题,最典型的问题有如何高效载入和输出大数据、如何充分利用多核系统的并行处理能力等。图数据处理系统解决这些问题,并提供一个接口供用户来实现算法,它的系统架构图如图1所示。在图数据系统处理数据时,访问数据的策略对系统性能有很大的影响。当前的图数据处理系统中访问数据的策略比较保守,导致执行算法计算时并行度低,没有充分利用图算法的特点。
发明内容
针对现有技术的以上缺陷或改进需求,本发明的目的在于提供一种基于图数据处理系统的数据并行访问方法,通过修改访问图数据的限制,使得图数据中相连的点平均分配至不同的CPU上,且保证图数据并行访问过程中的原子性读写,本发明可充分利用多核硬件的处理能力,在保证图算法正确性的同时,提高了算法的执行速度,硬件扩展性好。
本发明解决其技术问题所采用的技术方案是,提供一种基于图数据处理系统的数据并行访问方法,所述方法包括以下步骤:
S1、载入图数据至内存,将图数据各节点平均分配至各处理器上并行处理;
S2、各处理器调用图算法并行处理分配至自身的图数据节点,处理过程中对图数据节点进行原子性读写;
S3、将经图算法处理后的所有图数据节点写回至硬盘形成完整图数据,判断所有图数据节点是否均收敛,如果收敛,则流程结束;如果不收敛,则返回步骤S1进行下一次循环直到写回至硬盘的所有图数据节点均收敛。
因此,本发明可以获得以下的有益效果:修改访问图数据的限制,使图数据访问的操作过程由确定性执行模型变成充分并行的非确定性执行模型,并行度高,充分利用了多核硬件的处理能力,提高了算法的执行速度,硬件扩展性好。对更新的操作过程中的图数据进行原子性读写,可以有效修正有依赖关系的操作之间并行处理带来的错误,保证了图算法结果的正确性。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是现有图数据处理系统结构示意图;
图2是本发明基于图数据处理的数据并行访问方法流程示意图;
图3(a)为图数据结构示意图;
图3(b)为图数据访问的确定性执行过程示意图;
图3(c)为图数据访问的充分并行的非确定性执行过程示意图;
图4为本发明图数据并行访问示意图;
图5为本发明方法原子性保证效果示意图;
图6为应用本发明方法的系统执行SSSP算法的过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1为现有图数据处理系统的架构图。图数据处理系统提供接口给用户以实现不同的图算法,如PageRank和SSSP等。图数据处理系统其输入为图数据,根据上述图算法处理输入输出的图数据,并解决并行优化等问题。图数据处理系统类似一个库,将一些复杂操作封装起来,留出简单的接口给用户调用,最后运行在硬件和操作系统上。本发明方法基于现有图数据处理系统,可提高其并行度,从而提高了算法的执行速度,硬件扩展性好。
图2是本发明基于图数据处理系统的数据并行访问方法流程示意图,如图2所示,本发明方法包括以下步骤:
S1、将图数据载入到内存,修改访问图数据的限制,使得图数据各节点平均分配至不同的处理器上并行处理;
S2、各处理器调用图算法并行处理分配至自身的图数据节点,处理过程中对图数据节点进行原子性读写,以修正图数据中相连的点平均分配至不同的处理器上并行处理带来的错误;
S3、将经图算法处理后的所有图数据节点写回至硬盘形成完整的图数据,判断所有图数据节点是否均收敛,如果收敛,则流程结束;如果不收敛,则返回步骤S1进行下一次循环直到写回至硬盘的所有节点图数据均收敛。
其中,上述步骤S1中,修改访问图数据的限制,使图数据访问由确定性执行过程变成充分并行的非确定性执行过程。其中,确定性执行过程指的是图数据相连的点只能串行访问;充分并行的非确定性执行过程指的是图数据相连的点可分配在不同处理器上。本发明中,处理器通常为CPU。如图3所示,图3(a)为图数据结构示意图,图数据通过点与点相连表示。图3(b)为图数据访问的确定性执行过程示意图,即所有相连的点只能串行访问,假设有3个CPU,那么有一个CPU会处于空闲状态。图3(c)为图数据访问的充分并行的非确定性执行过程示意图,不同点可以平均分配至不同CPU上,该方法可最大限度利用多核性能,提升系统性能。
图4为本发明数据并行访问示意图。其中,V为图数据中点的个数,即任务数。P为CPU的个数。其中V个点平均分配至P个CPU上并行执行图算法。在本发明一个实施例中,采用OPENMP并行库实现并行,则只需要应用OPENMP并行库中自带的static scheduling的调度策略就能实现。在本发明令一个实施例中,原图数据系统采用的是一般的pthread线程库实现并行,则可以调用系统线程亲和力函数将线程和处理单元做绑定,以实现将V个点平均分配至P个CPU上并行执行图算法。
由于在原有存在依赖关系的操作之间进行并行处理,会带来数据竞争、不可预料的程序行为等错误。因此上述步骤S2中,对载入内存的图数据进行原子性读写保证,以修正上述错误。
原子性保证的实现有下述不同的方式:
(1)第一种方式是由系统结构保证原子性。当基本单元数据不大时,由于系统读写数据时,以一个字长为基本单位。因此一个点的数据结构保持数据对齐时,读写一定是原子性的。
(2)第二种方式是用语言和编译器来保证原子性。例如在C++中提供了原子性的操作。在读写时,调用语言自带的原子性操作以保证原子性。
(3)第三种是用显式的锁来保证原子性,在原基本单元数据结构中加入一个互斥锁,读写时都加锁解锁来保证原子性。
上述三种原子性保证的实现方式实验结果如图5所示。其中横坐标表示算法运行时配置的可用线程数,纵坐标表示算法运行时间。DE externaldeterministic scheduler为现有图数据访问策略下的运行时间图。NE witharchitecture support为应用本发明方法,且由系统结构保证的原子性方法的运行时间图。NE with compiler support为应用本发明方法,且由语言和编译器保证的原子性方法的运行时间示意图。NE with explicit locking/unlocking为为应用本发明方法,且有显示锁结构保证的原子性方法的运行时间示意图。图(a)-图(d)、图(e)-图(h)、图(i)-图(l)、图(m)-图(p)分别为本发明方法应用于web-BerkStan、web-Google、soc-LiveJournal1和cage15四个图数据集的运行时间示意图。可以看到第一种方式和第二种方式修改后的系统性能相比于原有系统都有明显提升。
上述步骤S3中,图数据收敛的判断条件与步骤S2中选用的图算法有关,举例来说,SSSP算法的收敛条件为所有点收敛而单个点收敛的条件为该点的点值小于该点所有入边的边值、PageRank算法的收敛条件为所有点收敛而单个点收敛的条件为点更新后的新值与旧值的差的绝对值小于给定的阈值。图6为应用本发明方法的系统执行SSSP算法的过程示意图,(SSSP算法)收敛条件为点上的数据比其邻接边上的数据小,否则更新点数据为相连边上最小的数据。因为图算法有趋向于收敛的特性,所以即使点和点之间存在数据冲突,在多次迭代过程中,也会渐渐趋向收敛的数据。图6中Lv为点v的数据,Lu为点u的数据。它们同时向公共边写数据,直到点的数据比所有的邻接边上的数据小。点u和点v同时写边,存在写写竞争。在第一次迭代结束后边值可能为1或者2。如果边值为1,在第二次迭代后点u读入边值1后,所有的点收敛。如果边值为2,在第二次迭代中点u看到边值不大于自己的点值,不再写边,同时点v更新边值为1,在第三次迭代后点u读入边值1后,所有的点收敛。最终边和点上的数据收敛到了正确的结果。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于图数据处理系统的数据并行访问方法,其特征在于,所述方法包括以下步骤:
S1、载入图数据至内存,将图数据各节点平均分配至各处理器上并行处理;
S2、各处理器调用图算法并行处理分配至自身的图数据节点,处理过程中对图数据节点进行原子性读写;
S3、将经图算法处理后的所有图数据节点写回至硬盘形成完整图数据,判断所有图数据节点是否均收敛,如果收敛,则流程结束;如果不收敛,则返回步骤S1进行下一次循环直到写回至硬盘的所有图数据节点均收敛。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510239657.8A CN104881840B (zh) | 2015-05-11 | 2015-05-11 | 一种基于图数据处理系统的数据并行访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510239657.8A CN104881840B (zh) | 2015-05-11 | 2015-05-11 | 一种基于图数据处理系统的数据并行访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881840A true CN104881840A (zh) | 2015-09-02 |
CN104881840B CN104881840B (zh) | 2017-10-31 |
Family
ID=53949326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510239657.8A Active CN104881840B (zh) | 2015-05-11 | 2015-05-11 | 一种基于图数据处理系统的数据并行访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881840B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183315A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种并行多处理器虚拟机系统 |
CN102110052A (zh) * | 2011-03-03 | 2011-06-29 | 华中科技大学 | 一种程序行为动态剖析的并行加速方法 |
US20120242672A1 (en) * | 2011-03-21 | 2012-09-27 | Apple Inc. | Fast queries in a multithreaded queue of a graphics system |
-
2015
- 2015-05-11 CN CN201510239657.8A patent/CN104881840B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183315A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种并行多处理器虚拟机系统 |
CN102110052A (zh) * | 2011-03-03 | 2011-06-29 | 华中科技大学 | 一种程序行为动态剖析的并行加速方法 |
US20120242672A1 (en) * | 2011-03-21 | 2012-09-27 | Apple Inc. | Fast queries in a multithreaded queue of a graphics system |
Non-Patent Citations (1)
Title |
---|
王志刚: "大规模图增量迭代处理技术的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN104881840B (zh) | 2017-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160034262A1 (en) | Transmission point pattern extraction from executable code in message passing environments | |
CN105493041A (zh) | 在访问动态类型化对象过程中的并发内联高速缓存优化 | |
Besta et al. | Accelerating irregular computations with hardware transactional memory and active messages | |
US9292359B2 (en) | System and method for memory management | |
An et al. | Speeding up FPGA placement: Parallel algorithms and methods | |
US20140115291A1 (en) | Numa optimization for garbage collection of multi-threaded applications | |
CN111459691A (zh) | 共享内存的读写方法及装置 | |
CN111104169A (zh) | 指令列表调度方法、装置、计算机设备及存储介质 | |
CN112948136A (zh) | 一种嵌入式操作系统异步日志记录的实现方法 | |
Kuchumov et al. | Staccato: shared-memory work-stealing task scheduler with cache-aware memory management | |
CN110162483B (zh) | 静态内存碎片整理方法、装置、计算机设备及存储介质 | |
KR102563648B1 (ko) | 멀티 프로세서 시스템 및 그 구동 방법 | |
CN103699363A (zh) | 一种用于在多核平台下优化关键临界区的方法 | |
Moreno et al. | On the implementation of memory reclamation methods in a lock-free hash trie design | |
CN112346879B (zh) | 进程管理方法、装置、计算机设备及存储介质 | |
CN104881840A (zh) | 一种基于图数据处理系统的数据并行访问方法 | |
CN105843735A (zh) | 一种终端内存的消耗方法及装置 | |
Zhang et al. | Brief announcement: on enhancing concurrency in distributed transactional memory | |
Nowack et al. | Parallel symbolic execution: Merging in-flight requests | |
US20240104395A1 (en) | Memory optimization method and device oriented to neural network computing | |
Cai et al. | Reducing code management overhead in software-managed multicores | |
Yu et al. | Hierarchical Read/Write Analysis for Pointer-Based OpenCL Programs on RRAM | |
Tzul | Multicore architecture and cache optimization techniques for solving graph problems | |
Copic et al. | Reducing idle time in event-triggered software execution via runnable migration and DPM-Aware scheduling | |
KR100912114B1 (ko) | 디지털 신호처리 프로세서에서 효과적인 데이터 전송을위한 메모리 운용 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |