CN111078957B - 基于图存储结构的存储方法 - Google Patents
基于图存储结构的存储方法 Download PDFInfo
- Publication number
- CN111078957B CN111078957B CN201911310390.1A CN201911310390A CN111078957B CN 111078957 B CN111078957 B CN 111078957B CN 201911310390 A CN201911310390 A CN 201911310390A CN 111078957 B CN111078957 B CN 111078957B
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 239000011159 matrix material Substances 0.000 claims abstract description 87
- 230000011218 segmentation Effects 0.000 claims abstract description 18
- 235000019580 granularity Nutrition 0.000 abstract description 14
- 238000005192 partition Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; 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)
- Complex Calculations (AREA)
- Semiconductor Memories (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 (2)
1.一种基于图存储结构的存储方法,其特征在于,包括可进行m层分割的邻接矩阵;分割后的最小粒度的邻接矩阵为n*n的邻接矩阵,该邻接矩阵为第0层邻接矩阵,按照行号、列号对第0层邻接矩阵的非零元素分别建立行、列索引;第i+1层邻接矩阵的元素为在第i层邻接矩阵的元素基础上进行连续划分的而成分割块,每个分割块中包括若干第i层邻接矩阵的元素构成的方块矩阵,第i+1层邻接矩阵为j*j的邻接矩阵,按照行号、列号对第i+1层邻接矩阵的非零元素分别建立行、列索引;
第i+1层邻接矩阵包括分段标记表;所述分段标记表包括若干分段标记和终止标记;所述分段标记的数量与第i+1层邻接矩阵阶数相同;第i+1层邻接矩阵的一列/一行对应一个分段标记;第i+1层邻接矩阵的一列/一行包括第x层邻接矩阵的若干列/若干行,该第x层邻接矩阵的若干列/若干行中的首列的列号/首行的行号为第i+1层邻接矩阵的分段标记,终止标记为第x层邻接矩阵的阶数;
其中,n>1,m>1,m-2≥i,n>j,j≥1;
0≤x<i+1。
2.如权利要求1所述的基于图存储结构的存储方法,其特征在于,当可进行m层分割的邻接矩阵为对称的邻接矩阵时,对第y层邻接矩阵的非零元素建立索引只对第y层邻接矩阵的上三角或者下三角的非零元素建立索引;
其中,y≤m-1。
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 CN111078957A (zh) | 2020-04-28 |
CN111078957B true 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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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电力通信传输网络多层拓扑结构的算法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177414B (zh) * | 2013-03-27 | 2015-12-09 | 天津大学 | 一种基于结构的图节点相似度并行计算方法 |
CN106780640A (zh) * | 2016-12-28 | 2017-05-31 | 桂林电子科技大学 | 一种大规模图数据表示方法 |
CN109726314B (zh) * | 2019-01-03 | 2020-09-01 | 中国人民解放军国防科技大学 | 基于位图的稀疏矩阵压缩存储方法 |
-
2019
- 2019-12-18 CN CN201911310390.1A patent/CN111078957B/zh active Active
Patent Citations (4)
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 |
CN103699606A (zh) * | 2013-12-16 | 2014-04-02 | 华中科技大学 | 一种基于顶点切割与社区聚集的大规模图划分方法 |
CN106533732A (zh) * | 2016-01-08 | 2017-03-22 | 国网安徽省电力公司经济技术研究院 | 一种用于生成sdh电力通信传输网络多层拓扑结构的算法 |
Also Published As
Publication number | Publication date |
---|---|
CN111078957A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968503B (zh) | 数据库系统的数据处理方法以及数据库系统 | |
US11150823B2 (en) | Method, device and computer program product for splitting disk set | |
US20170212845A1 (en) | Region migration cache | |
WO2019127104A1 (zh) | 高速缓存中资源调整方法、数据访问方法及装置 | |
US20160217167A1 (en) | Hash Database Configuration Method and Apparatus | |
US20200349038A1 (en) | Storage management method, electronic device, and computer program product | |
CN110297601B (zh) | 固态硬盘阵列构建方法、电子设备及存储介质 | |
US20210132845A1 (en) | Method for storage management, electronic device and computer program product | |
US20190004703A1 (en) | Method and computer system for managing blocks | |
CN105677755A (zh) | 一种处理图数据的方法及装置 | |
US20210124517A1 (en) | Method, device and computer program product for storing data | |
CN112148665A (zh) | 缓存的分配方法及装置 | |
US11216198B2 (en) | Method, device and computer program product for data processing | |
US11068484B2 (en) | Accelerating queries with complex conditions using zone map enhancements | |
CN112560356A (zh) | 面向众核架构的稀疏矩阵向量乘众核优化方法 | |
CN111078957B (zh) | 基于图存储结构的存储方法 | |
US20220147260A1 (en) | Method, device and computer program product for managing storage system | |
WO2022099441A1 (zh) | 一种存储介质的读取方法以及相关设备 | |
US20210124533A1 (en) | Method, device and computer program product for storage management | |
US10013393B2 (en) | Parallel computer system, parallel computing method, and program storage medium | |
RU2640294C1 (ru) | Способ записи и записывающий аппарат для запоминающего устройства | |
CN116501247A (zh) | 一种数据存储方法和数据存储系统 | |
CN104484404B (zh) | 一种改善分布式文件系统中地理栅格数据文件处理方法 | |
CN112817982B (zh) | 一种基于lsm树的动态幂律图存储方法 | |
US11163470B2 (en) | Method, electronic device and computer program product for managing redundant arrays of independent disks |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20241008 Address after: Room 810-17, 8th Floor, Yanchuang Building, No.1 Yinbai Road, Binhu District, Wuxi City, Jiangsu Province, China 214000 Patentee after: Shengongfang (Wuxi) Digital Technology Co.,Ltd. Country or region after: China Address before: 214000 No.1 YinBai Road, Binhu District, Wuxi City, Jiangsu Province Patentee before: Wuxi Hengding Super Computing Center Co.,Ltd. Country or region before: China |