CN111078957A - 基于图存储结构的存储方法 - Google Patents

基于图存储结构的存储方法 Download PDF

Info

Publication number
CN111078957A
CN111078957A CN201911310390.1A CN201911310390A CN111078957A CN 111078957 A CN111078957 A CN 111078957A CN 201911310390 A CN201911310390 A CN 201911310390A CN 111078957 A CN111078957 A CN 111078957A
Authority
CN
China
Prior art keywords
layer
matrix
adjacent
row
adjacent matrix
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
CN201911310390.1A
Other languages
English (en)
Other versions
CN111078957B (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.)
Wuxi Hengding Super Computing Center Co ltd
Original Assignee
Wuxi Hengding Super Computing Center Co ltd
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 Wuxi Hengding Super Computing Center Co ltd filed Critical Wuxi Hengding Super Computing Center Co ltd
Priority to CN201911310390.1A priority Critical patent/CN111078957B/zh
Publication of CN111078957A publication Critical patent/CN111078957A/zh
Application granted granted Critical
Publication of CN111078957B publication Critical patent/CN111078957B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Memories (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供的一种基于图存储结构的存储方法,属于存储结构领域,包括可进行m层分割的邻接矩阵;分割后的最小粒度的邻接矩阵为n*n的邻接矩阵,该邻接矩阵为第0层邻接矩阵,按照行号、列号对第0层邻接矩阵的非零元素分别建立行、列索引;第i+1层邻接矩阵在第i层邻接矩阵的基础上进行连续分割,第i+1层邻接矩阵中的每个元素包括多个第i层邻接矩阵连续的元素,第i+1层邻接矩阵为j*j的邻接矩阵,按照行号、列号对第i+1层邻接矩阵的非零元素分别建立行、列索引;其中,n>1,m>1,m‑2≥i,n>j,j≥1。本发明提供的基于图存储结构的存储方法,在多级节点分割的基础之上,增加了精确的多级分割块行列索引,有利于在不同粒度下提高访存有效性。

Description

基于图存储结构的存储方法
技术领域
本发明涉及存储方法,尤其涉及基于图存储结构的存储方法。
背景技术
采用非结构网格的科学计算中,数据的关系可以抽象成图拓扑,一般使用稀疏的邻接矩阵进行表示。现有存储结构中,邻接矩阵多采用行优先存储方式,如压缩行格式CSR(Compressed Sparse Row)。数值计算中,非零元素位置对称的邻接矩阵也比较常见,此类矩阵也可只存储上三角或下三角矩阵行列索引即可表示完整拓扑关系。
非均匀访存模型(Non-Uniform Memory Access,简称NUMA)是现代多处理器计算机采用的主流内存架构,其内存访问时间取决于内存相对于处理器的位置。因此,如何在NUMA架构下提高访存局部性,减少低效率非本地访存,如减少分布式通信、降低缓存未命中等,对于提高邻接图计算性能具有决定性作用。
现有邻接矩阵及相应数据存储结构一般采用以下方法。最小带宽排序方法,如反Cuthill-McKee算法(RCM),是提高数据局部性的常用方法之一,该方法实现与硬件架构无关,但往往访存优化效果也不够理想。而在硬件结构明确的情况下,采用高内聚数据分割方法,如最小切割(Minimum Cut)分图算法等,可以取得更好数据局部性。在分布式内存加共享内存混合并行计算场景中,启发式的多级最小切割分图算法运用比较广泛。利用该方法,可在减小通信开销的同时,提高共享内存的并发线程访存的局部性,提高缓存命中率。但这些排序和分割方法,无法满足NUMA架构下,不同粒度并行的精确数据访问。
发明内容
为解决上述技术问题,本发明提供的基于图存储结构的存储方法,在多级节点分割的基础之上,增加了精确的多级分割块行列索引,有利于在不同粒度下提高访存有效性。
为达到上述目的,本发明提供的技术方案为:
本发明提供的一种基于图存储结构的存储方法,包括可进行m层分割的邻接矩阵;分割后的最小粒度的邻接矩阵为n*n的邻接矩阵,该邻接矩阵为第0层邻接矩阵,按照行号、列号对第0层邻接矩阵的非零元素分别建立行、列索引;第i+1层邻接矩阵的元素为在第i层邻接矩阵的元素基础上进行连续划分的而成分割块,每个分割块中包括若干第i层邻接矩阵的元素构成的方块矩阵,第i+1层邻接矩阵为j*j的邻接矩阵,按照行号、列号对第i+1层邻接矩阵的非零元素分别建立行、列索引;
其中,n>1,m>1,m-2≥i,n>j,j≥1。
本发明提供的基于图存储结构的存储方法,优选地,第i+1层邻接矩阵包括分段标记表;所述分段标记表包括若干分段标记和终止标记;所述分段标记的数量与第i+1层邻接矩阵阶数相同;第i+1层邻接矩阵的一列/一行对应一个分段标记;第i+1层邻接矩阵的一列/一行包括第x层邻接矩阵的若干列/若干行,该第x层邻接矩阵的若干列/若干行中的首列的列号/首行的行号为第i+1层邻接矩阵的分段标记,终止标记为第x层邻接矩阵的阶数;
其中,0≤x<i+1。
本发明提供的基于图存储结构的存储方法,优选地,当可进行m层分割的邻接矩阵为对称的邻接矩阵时,对第y层邻接矩阵的非零元素建立索引只对第y层邻接矩阵的上三角或者下三角的非零元素建立索引;
其中,y≤m-1。
上述技术方案具有如下优点及有益效果:
本发明提供的一种基于图存储结构的存储方法,包括可进行m层分割的邻接矩阵;分割后的最小粒度的邻接矩阵为n*n的邻接矩阵,该邻接矩阵为第0层邻接矩阵,按照行号、列号对第0层邻接矩阵的非零元素分别建立行、列索引;第i+1层邻接矩阵的元素为在第i层邻接矩阵的元素基础上进行连续划分的而成分割块,每个分割块中包括若干第i层邻接矩阵的元素构成的方块矩阵,第i+1层邻接矩阵为j*j的邻接矩阵,按照行号、列号对第i+1层邻接矩阵的非零元素分别建立行、列索引;其中,n>1,m>1,m-2≥i,n>j,j≥1。本发明提供的基于图存储结构的存储方法,在多级节点分割的基础之上,增加了精确的多级分割块行列索引,有利于在不同粒度下提高访存有效性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。
图1是本发明实施例1提供的基于图存储结构的邻接矩阵的多级分割示意图。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
实施例1:
本发明实施例1提供的一种基于图存储结构的存储方法,包括可进行m层分割的邻接矩阵;分割后的最小粒度的邻接矩阵为n*n的邻接矩阵,该邻接矩阵为第0层邻接矩阵,按照行号、列号对第0层邻接矩阵的非零元素分别建立行、列索引;第i+1层邻接矩阵的元素为在第i层邻接矩阵的元素基础上进行连续划分的而成分割块,每个分割块中包括若干第i层邻接矩阵的元素构成的方块矩阵,第i+1层邻接矩阵为j*j的邻接矩阵,按照行号、列号对第i+1层邻接矩阵的非零元素分别建立行、列索引;其中,n>1,m>1,m-2≥i,n>j,j≥1。m层分割的邻接矩阵可以根据实际需要的不同粒度进行分割,第i+1层邻接矩阵是在第i层的邻接矩阵的基础上进行分割,即将第i层的邻接矩阵多个行列连续的元素根据第i+1层邻接矩阵所需的粒度划分为分割块(分割块即为第i+1邻接矩阵的元素),从而保证第i+1层的分割边界不会割裂第i层的元素。
为了标记图顶点分割块的起始和终止索引,本实施例中优选地,第i+1层邻接矩阵包括分段标记表;所述分段标记表包括若干分段标记和终止标记;所述分段标记的数量与第i+1层邻接矩阵阶数相同;第i+1层邻接矩阵的一列/一行对应一个分段标记;第i+1层邻接矩阵的一列/一行包括第x层邻接矩阵的若干列/若干行,该第x层邻接矩阵的若干列/若干行中的首列的列号/首行的行号为第i+1层邻接矩阵的分段标记,终止标记为第x层邻接矩阵的阶数;其中,0≤x<i+1。通过分段标记表,精确获取该层的每个分割的低层级索引,可以实现精确的快速跳转以及访存的局部性,提升访存的有效性,提升性能。
同时,在对称的邻接矩阵中,上三角与下三角之间的非零元素对应,当本实施例应用到对称的邻接矩阵中时,优选地,当可进行m层分割的邻接矩阵为对称的邻接矩阵时,对第y层邻接矩阵的非零元素建立索引只对第y层邻接矩阵的上三角或者下三角的非零元素建立索引;
其中,y≤m-1。
为了便于理解,本实施例1结合具体的例子来进行说明,如图1所示的部分邻接矩阵,非零元素位置对称的邻接矩阵可只用上三角进行讨论。这里假设图已经按照高内聚原则进行了多级分割(即每个层级,非对角块元素尽量最少),且假设可视的行已经包含了该行所有元素,假设矩阵大小为n*n。
其各级索引如下(不含对角线)
第0级(L0):
行标:000001112223344444555566677…
列标:1235823735781056789671011710121214…
第1级(L1):
行标:00001111222333…
列标:12342345345567…
分段起始位置:0246810121416…n(分段起始位置共本层阶数+1个)
第2级(L2):
行标:0011…
列标:1223…
分段起始位置:0481216…n(分段起始位置共本层阶数+1个)
第3层(L3):
行标:0…
列标:1…
分段起始位置:0816…n(分段起始位置共本层阶数+1个)
需要说明的是,虽然本示例中每个层级分割粒度都为低一级的两倍,但实际可以为任意比例;虽然本示例中每个层级分割得到的块的粒度都一样,但实际可以有所差别。
每个层级的“分段起始位置”可以指定为较低任意层级“分段起始位置索引的相对值,例如使用L1为参考,L2和L3的“分段起始位置”为L2:02468…s1
L3:048…s1其中s1为L1层“分段起始位置”索引个数(即L1层的阶数);
该数据格式也适用于上下三角都存在的矩阵,每个层级行、列标扩展至下三角即可。
每个层级矩阵格式不限,可以采用COO、CSR等中的任意一种。
对角线块或元素可以包含、也可以不包含在行、列标索引中;
一般情况下,行、列索引、分段起始位置以及图上相应的数据集都是在物理存储中连续存储,但也可能分布式存储在计算系统中,只要体现多层级(粒度)数据访问的局部性,都适用本专利。
本领域技术人员应该理解,本领域技术人员结合现有技术以及上述实施例可以实现所述变化例,在此不予赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
以上对本发明的较佳实施例进行了描述,但本发明并不局限于上述特定实施方式,其中未详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,并不影响本发明的实质内容。因此,凡未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (3)

1.一种基于图存储结构的存储方法,其特征在于,包括可进行m层分割的邻接矩阵;分割后的最小粒度的邻接矩阵为n*n的邻接矩阵,该邻接矩阵为第0层邻接矩阵,按照行号、列号对第0层邻接矩阵的非零元素分别建立行、列索引;第i+1层邻接矩阵的元素为在第i层邻接矩阵的元素基础上进行连续划分的而成分割块,每个分割块中包括若干第i层邻接矩阵的元素构成的方块矩阵,第i+1层邻接矩阵为j*j的邻接矩阵,按照行号、列号对第i+1层邻接矩阵的非零元素分别建立行、列索引;
其中,n>1,m>1,m-2≥i,n>j,j≥1。
2.如权利要求1所述的基于图存储结构的存储方法,其特征在于,第i+1层邻接矩阵包括分段标记表;所述分段标记表包括若干分段标记和终止标记;所述分段标记的数量与第i+1层邻接矩阵阶数相同;第i+1层邻接矩阵的一列/一行对应一个分段标记;第i+1层邻接矩阵的一列/一行包括第x层邻接矩阵的若干列/若干行,该第x层邻接矩阵的若干列/若干行中的首列的列号/首行的行号为第i+1层邻接矩阵的分段标记,终止标记为第x层邻接矩阵的阶数;
其中,0≤x<i+1。
3.如权利要求1所述的基于图存储结构的存储方法,其特征在于,当可进行m层分割的邻接矩阵为对称的邻接矩阵时,对第y层邻接矩阵的非零元素建立索引只对第y层邻接矩阵的上三角或者下三角的非零元素建立索引;
其中,y≤m-1。
CN201911310390.1A 2019-12-18 2019-12-18 基于图存储结构的存储方法 Active CN111078957B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911310390.1A CN111078957B (zh) 2019-12-18 2019-12-18 基于图存储结构的存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911310390.1A CN111078957B (zh) 2019-12-18 2019-12-18 基于图存储结构的存储方法

Publications (2)

Publication Number Publication Date
CN111078957A true CN111078957A (zh) 2020-04-28
CN111078957B CN111078957B (zh) 2021-12-24

Family

ID=70315478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911310390.1A Active CN111078957B (zh) 2019-12-18 2019-12-18 基于图存储结构的存储方法

Country Status (1)

Country Link
CN (1) CN111078957B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103177414A (zh) * 2013-03-27 2013-06-26 天津大学 一种基于结构的图节点相似度并行计算方法
CN102141976B (zh) * 2011-01-10 2013-08-14 中国科学院软件研究所 稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法
CN103699606A (zh) * 2013-12-16 2014-04-02 华中科技大学 一种基于顶点切割与社区聚集的大规模图划分方法
US9424307B2 (en) * 2012-10-11 2016-08-23 Scott E. Lilienthal Multivariate data analysis method
CN106533732A (zh) * 2016-01-08 2017-03-22 国网安徽省电力公司经济技术研究院 一种用于生成sdh电力通信传输网络多层拓扑结构的算法
CN106780640A (zh) * 2016-12-28 2017-05-31 桂林电子科技大学 一种大规模图数据表示方法
CN109726314A (zh) * 2019-01-03 2019-05-07 中国人民解放军国防科技大学 基于位图的稀疏矩阵压缩存储方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102141976B (zh) * 2011-01-10 2013-08-14 中国科学院软件研究所 稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法
US9424307B2 (en) * 2012-10-11 2016-08-23 Scott E. Lilienthal Multivariate data analysis method
CN103177414A (zh) * 2013-03-27 2013-06-26 天津大学 一种基于结构的图节点相似度并行计算方法
CN103699606A (zh) * 2013-12-16 2014-04-02 华中科技大学 一种基于顶点切割与社区聚集的大规模图划分方法
CN106533732A (zh) * 2016-01-08 2017-03-22 国网安徽省电力公司经济技术研究院 一种用于生成sdh电力通信传输网络多层拓扑结构的算法
CN106780640A (zh) * 2016-12-28 2017-05-31 桂林电子科技大学 一种大规模图数据表示方法
CN109726314A (zh) * 2019-01-03 2019-05-07 中国人民解放军国防科技大学 基于位图的稀疏矩阵压缩存储方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李朝鹏等: "并行无存储冲突的邻接矩阵算法", 《电脑知识与技术》 *
董荣胜等: "大规模图数据的k~2-MDD表示方法与操作研究", 《计算机研究与发展》 *

Also Published As

Publication number Publication date
CN111078957B (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
US10387315B2 (en) Region migration cache
US11150823B2 (en) Method, device and computer program product for splitting disk set
US11061788B2 (en) Storage management method, electronic device, and computer program product
CN103810237A (zh) 数据管理方法和系统
WO2019127104A1 (zh) 高速缓存中资源调整方法、数据访问方法及装置
CN110297601B (zh) 固态硬盘阵列构建方法、电子设备及存储介质
US11520512B2 (en) Method for storage management, electronic device and computer program product
WO2017090071A1 (en) Method and computer system for managing blocks
CN105677755A (zh) 一种处理图数据的方法及装置
CN112148665A (zh) 缓存的分配方法及装置
US20210124517A1 (en) Method, device and computer program product for storing data
CN104216664A (zh) 网络卷创建方法、数据存储方法、存储设备和存储系统
CN112560356A (zh) 面向众核架构的稀疏矩阵向量乘众核优化方法
CN111078957B (zh) 基于图存储结构的存储方法
US11403026B2 (en) Method, device and computer program product for managing storage system
CN106547484A (zh) 一种基于raid5的实现内存数据可靠性方法及系统
WO2022099441A1 (zh) 一种存储介质的读取方法以及相关设备
US11068484B2 (en) Accelerating queries with complex conditions using zone map enhancements
US20170293657A1 (en) Accelerating Queries with Zone Map Enhancements
CN104484404B (zh) 一种改善分布式文件系统中地理栅格数据文件处理方法
US11163470B2 (en) Method, electronic device and computer program product for managing redundant arrays of independent disks
RU2640294C1 (ru) Способ записи и записывающий аппарат для запоминающего устройства
JP6333371B2 (ja) キャッシュ線中でビット配列を実装するための方法
US9305036B2 (en) Data set management using transient data structures
CN112817982A (zh) 一种基于lsm树的动态幂律图存储方法

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