CN104915427B - 一种基于广度优先遍历的图处理优化方法 - Google Patents
一种基于广度优先遍历的图处理优化方法 Download PDFInfo
- Publication number
- CN104915427B CN104915427B CN201510326328.7A CN201510326328A CN104915427B CN 104915427 B CN104915427 B CN 104915427B CN 201510326328 A CN201510326328 A CN 201510326328A CN 104915427 B CN104915427 B CN 104915427B
- Authority
- CN
- China
- Prior art keywords
- summit
- file
- traversal
- diagram data
- breadth
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于广度优先遍历(BFS,Breadth First Search)的图处理优化方法,属于计算机存储及数据处理技术领域,解决现有基于外部存储器的大规模图处理系统在访问图数据时产生大量外存I/O,严重影响文件缓存命中率,削弱I/O性能的问题,从而提高图处理系统的效率。本发明在不改变图处理模型和用户操作复杂度的前提下,以充分利用外存储设备顺序I/O性能和提高系统文件缓存命中率为目标,提出了针对图遍历类型应用进行I/O优化的BFS树数据布局方案。通过对不同来源、类型、尺寸的图数据集进行数据布局优化,图处理系统的效率有明显提升。
Description
技术领域
本发明属于计算机数据处理技术领域,更具体地,涉及一种基于广度优先遍历的图处理优化方法。
背景技术
图是计算机科学中最常用的一类抽象数据结构,现实世界中的许多应用场景都需要用图结构表示,与图相关的处理和应用几乎无处不在。传统应用如最优运输路线问题、地图、科技文献引用关系、疾病爆发路径预测等;新兴应用如社交网络分析、语义Web分析、数据挖掘、蛋白质分解等。
伴随着图应用及图处理技术的快速发展,图算法理论也层出不穷。广度优先搜索是最简便的图搜索算法之一,也是很多重要图算法的基础。
随着信息化时代的到来,各种信息以爆炸模式增长,导致图的规模日益增大,我们通常要分析处理图的上亿个顶点和边,面对如此大规模的图结构,如何有效的执行图处理就成为一个新的挑战。
现有大规模图数据处理的主要研究方向之一是基于外存储器存储和处理图数据。但该方式的问题是如何在分层存储体系上高效地进行图处理。然而由于图数据的高关联性、低局部性,以及图算法访问的随机性,操作系统中传统的基于时空局部性优化的存储访问机制很难发挥作用,而图的遍历查询是大部分图算法的构建基础,在外存模式下如何优化图查询的I/O,加快图遍历的性能由此就成为高效处理图数据的关键。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于广度优先遍历的图处理优化方法,其目的在于在不改变图处理模型和用户操作复杂度的前提下,以充分利用外存储设备顺序I/O性能和提高系统文件缓存命中率。通过使用BFS算法重新布局外存储设备上的数据,使其符合一般图数据的I/O特性,优化图处理的性能。
为实现上述目的,本申请提供了一种基于广度优先遍历的图处理优化方法。
该方法的步骤如下:
(1)输入图数据文件;
(2)判断图数据文件是否已经根据图顶点进行编号排序形成有序文件,若是,则跳转(4)步继续执行;若否,跳转到(3)步执行;
(3)将图数据文件按顶点编号排序,形成顺序文件;
(4)根据顺序文件生成其对应的索引文件信息;
(5)将图的顶点及边的索引信息加载入内存;
(6)随机选取一个顶点进行广度优先遍历,生成广度优先遍历树,并记录图顶点的访问顺序,生成遍历后的序列文件;
(7)根据遍历序列文件与原始顶点编号,生成顶点映射表;
(8)依次读取顺序文件内容,并根据顶点映射表来更新顶点编号并重新排序,直至完成对所述图数据文件中所有顶点的操作,此即为布局处理后的图数据文件,从而完成整体的图像遍历处理过程。
另外,图结构存储文件格式现在主要有边列表(Edgelist)、邻接列表(Adjacencylist)、CSR(Compressed Sparse Row)、CSC(Compressed Sparse Column)等等,其中CSR和CSC格式是完全按顶点编号排序的顺序文件。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,由于图数据文件具有顶点、边数量巨大的特点以及BFS路径最短的特点,由此,采用了BFS树数据布局方案,实现图数据的重新布局,所需时间短至秒数量级,相对于图数据处理时间可以忽略不计,但对随后图数据的处理效率有很大的提高,特别是针对现有单机外存模式类型的图处理引擎如GraphChi(Aapo Kyrola等人2012年发表的文章GraphChi:Large-Scale GraphComputation on Just a PC),处理效率可以提高几倍。
附图说明
图1为本发明的流程示意图;
图2为8个顶点的图结构及图邻接表;
图3为重新编号后图结构及图邻接表。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本实例中选取8个顶点、11条边的图来作详细说明,同时为了进一步阐述清楚本发明,假设一个BFS访问序列为Li=a1,a2,a3......an,定义BFS访问序列中相邻两顶点的编号为连续编号,则该序列的顺序性加1,即ai+1-ai=1时Δj=1,其他情况下Δj=0,则定义一个BFS访问序列的连续性为。
(1)输入一个如图2的图数据文件,且文件格式为CSR,该图的邻接表信息也在图2中相应给出。
(2)判断图数据文件是否已根据图顶点编号排序后的文件,根据用户输入的文件格式为CSR,可以判断该图数据文件是已排序的文件,不需要对文件重新根据图顶点编号排序。
(3)根据上述CSR顺序文件生成其对应的索引文件信息,。
(4)将图的顶点及边的索引信息加载入内存。
(5)在本例中选取1号顶点作为BFS访问的根顶点进行广度优先遍历,生成广度优先遍历树,并记录图顶点的访问顺序为L1={1,2,5,7,3,4,6,8},生成遍历后的序列文件。
(6)根据遍历序列文件与原始顶点编号,生成图顶点的映射表为{1->1,2->2,3->5,4->7,5->3,6->4,7->6,8->8}。
(7)依次读取原顺序文件内容,并根据顶点映射表更新顶点编号并排序,得到图3所示的图结构及图邻接表,此即为布局处理后的顺序图数据文件。
根据图2、图3的结构信息,均选取1号顶点作为BFS的访问根顶点,则相应的BFS访问序列为L1={1,2,5,7,3,4,6,8},L2={1,2,3,4,5,6,7,8},进而对应的访问顺序性为s1=2和s2=7,其中s1<s2,使用BFS重新布局后的文件顺序访问次数增多,整体的图遍历顺序性提高,且随着图规模的增大,图处理系统的效率也会相应提高。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于广度优先遍历的图处理优化方法,其特征在于:该方法包括以下步骤:
(1)输入图数据文件;
(2)判断图数据文件是否已经根据图顶点进行编号排序形成有序文件,若是,则跳转(4)步继续执行;若否,跳转到(3)步执行;
(3)将图数据文件按顶点编号排序,形成顺序文件;
(4)根据顺序文件生成其对应的索引文件信息;
(5)将图的顶点及边的索引信息加载入内存;
(6)随机选取一个顶点,作为BFS访问的根顶点进行广度优先遍历,生成广度优先遍历树,并记录图顶点的访问顺序,生成遍历后的序列文件;
(7)根据遍历序列文件与原始顶点编号,生成顶点映射表;
(8)依次读取顺序文件内容,并根据顶点映射表来更新顶点编号并重新排序,直至完成对所述图数据文件中所有顶点的操作,此即为布局处理后的图数据文件,从而完成整体的图像遍历处理过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510326328.7A CN104915427B (zh) | 2015-06-15 | 2015-06-15 | 一种基于广度优先遍历的图处理优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510326328.7A CN104915427B (zh) | 2015-06-15 | 2015-06-15 | 一种基于广度优先遍历的图处理优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104915427A CN104915427A (zh) | 2015-09-16 |
CN104915427B true CN104915427B (zh) | 2018-01-05 |
Family
ID=54084490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510326328.7A Active CN104915427B (zh) | 2015-06-15 | 2015-06-15 | 一种基于广度优先遍历的图处理优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915427B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747433B2 (en) * | 2018-02-21 | 2020-08-18 | Wisconsin Alumni Research Foundation | Computer architecture for high-speed, graph-traversal |
WO2020019313A1 (zh) * | 2018-07-27 | 2020-01-30 | 浙江天猫技术有限公司 | 一种图数据的更新方法、系统、计算机可读存储介质及设备 |
CN109949202B (zh) * | 2019-02-02 | 2022-11-11 | 西安邮电大学 | 一种并行的图计算加速器结构 |
CN110288507B (zh) * | 2019-05-06 | 2021-03-09 | 中国科学院信息工程研究所 | 一种基于gpu的多分区强连通图检测方法 |
CN111782613B (zh) * | 2020-06-23 | 2023-06-02 | 南昌航空大学 | 一种优化模型集成平台运行效率的方法 |
CN112163126B (zh) * | 2020-09-15 | 2023-11-17 | 北京睿芯高通量科技有限公司 | 一种将低度数点与核心子图分开处理的图数据处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750263A (zh) * | 2012-05-31 | 2012-10-24 | 常州工学院 | 互联网超链接网络图数据的简化方法 |
CN103399902A (zh) * | 2013-07-23 | 2013-11-20 | 东北大学 | 一种并行环境下的有向图可达性链表生成及查询方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318092A1 (en) * | 2012-05-25 | 2013-11-28 | The Board of Trustees for the Leland Stanford, Junior, University | Method and System for Efficient Large-Scale Social Search |
-
2015
- 2015-06-15 CN CN201510326328.7A patent/CN104915427B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750263A (zh) * | 2012-05-31 | 2012-10-24 | 常州工学院 | 互联网超链接网络图数据的简化方法 |
CN103399902A (zh) * | 2013-07-23 | 2013-11-20 | 东北大学 | 一种并行环境下的有向图可达性链表生成及查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104915427A (zh) | 2015-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104915427B (zh) | 一种基于广度优先遍历的图处理优化方法 | |
CN109003132B (zh) | 广告推荐方法及相关产品 | |
CN106133721B (zh) | 并行决策树处理器架构 | |
KR101999590B1 (ko) | 패턴 인식 프로세싱 시스템에서의 전력 관리를 위한 방법들 및 시스템들 | |
US11418632B2 (en) | High speed flexible packet classification using network processors | |
US11816559B2 (en) | Dilated convolution using systolic array | |
Iandola et al. | Small neural nets are beautiful: enabling embedded systems with small deep-neural-network architectures | |
Khan et al. | Neighborhood based fast graph search in large networks | |
KR101920956B1 (ko) | 상태 기계에서의 검출을 위한 방법들 및 시스템들 | |
JP5950285B2 (ja) | 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム | |
Wang et al. | FlexGraph: a flexible and efficient distributed framework for GNN training | |
CN113711198A (zh) | 用于优化大数据查询的学习资源消耗模型 | |
Fan et al. | Querying big graphs within bounded resources | |
CN109256147B (zh) | 音频节拍检测方法、装置及存储介质 | |
Wang et al. | Graphcache: A caching system for graph queries | |
US10031947B2 (en) | Method and apparatus for performing a search operation on heterogeneous computing systems | |
CN108665055A (zh) | 一种图说生成方法及装置 | |
WO2014100981A1 (zh) | 查找表的创建方法、查询方法、控制器、转发设备和系统 | |
CN105138649A (zh) | 数据的搜索方法、装置及终端 | |
CN108027816B (zh) | 数据管理系统、数据管理方法及记录介质 | |
Wen et al. | Adaptivenet: Post-deployment neural architecture adaptation for diverse edge environments | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
Cuzzocrea et al. | MapReduce-based algorithms for managing big RDF graphs: state-of-the-art analysis, paradigms, and future directions | |
Wu et al. | PDD: partitioning DAG-topology DNNs for streaming tasks | |
CN114761920A (zh) | 具有可重构指令集的硬件加速器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |