CN112860818A - 字典嵌套字典数据结构的稀疏矩阵压缩存储方法 - Google Patents
字典嵌套字典数据结构的稀疏矩阵压缩存储方法 Download PDFInfo
- Publication number
- CN112860818A CN112860818A CN202110286692.0A CN202110286692A CN112860818A CN 112860818 A CN112860818 A CN 112860818A CN 202110286692 A CN202110286692 A CN 202110286692A CN 112860818 A CN112860818 A CN 112860818A
- Authority
- CN
- China
- Prior art keywords
- dictionary
- sparse matrix
- data structure
- nested
- value
- 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.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000006835 compression Effects 0.000 title claims abstract description 16
- 238000007906 compression Methods 0.000 title claims abstract description 16
- 230000009191 jumping Effects 0.000 claims description 10
- 230000001788 irregular Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种字典嵌套字典数据结构的稀疏矩阵压缩存储方法,属于高性能计算机存储领域。包括初始化生成字典嵌套字典类型的数据结构;输入稀疏矩阵;判断稀疏矩阵元素是否为零;将非零元素的行索引、列索引和值存储在字典嵌套字典的数据存储结构中。本发明利用字典数据存储结构的时间复杂度和空间复杂度较优的特性,采用一种字典嵌套字典的数据存储结构来存储稀疏矩阵,达到占用内存少、存储高效、处理成本低且耗时少的效果。
Description
技术领域
本发明涉及高性能计算机存储领域,特别涉及一种字典嵌套字典数据结构的稀疏矩阵压缩存储方法。
背景技术
矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于5%时,则称该矩阵为稀疏矩阵。在一些工程计算中,常用到百万级或千万级维度的稀疏矩阵,如果将这些稀疏矩阵元素全部存储是十分浪费计算机存储空间的,所以考虑将稀疏矩阵进行压缩存储。
在一些工程问题中,会用到有限元方法,在有限元方法的组装总体刚度矩阵的环节中,需要进行频繁的搜索、查找和插入功能,由于以往使用的数组或链表数据结构的这三个功能的时间复杂度都是O(n)(n为问题的规模),即线性时间,则组装和存储的时间是随规模的增大而增大的,所以组装和存储大规模问题的总体刚度矩阵的过程是十分耗时的。有限元方法的总体刚度矩阵是稀疏矩阵,所以大规模问题的稀疏矩阵通常需要压缩存储。
目前有许多稀疏矩阵的压缩存储方法,如三元组顺序表、行逻辑链接的顺序表、行指针链表、十字链表、COO、CSR、CSC、LIL等方法。这些方法虽然都可以将稀疏矩阵进行压缩存储,但对大规模稀疏矩阵来说,仍然在存储过程中占用大量内存。
发明内容
本发明的目的在于提供一种字典嵌套字典数据结构的稀疏矩阵压缩存储方法,解决了现有技术存在的上述问题。本发明的字典嵌套字典数据结构的稀疏矩阵压缩存储方法不仅减少了存储稀疏矩阵所占用的内存,而且搜索、查找和插入三个功能的时间复杂度都是O(1),用在有限元方法的总体刚度组装过程中时,是十分省时的,这对高性能计算机存储领域的发展是十分有利的。本发明存储高效、处理成本低且耗时少。减少计算机存储空间,扩大存储稀疏矩阵的规模。包括初始化生成字典嵌套字典类型的数据结构;输入稀疏矩阵;判断稀疏矩阵元素是否为零;将非零元素的行索引、列索引和非零值存储在字典嵌套字典的数据存储结构中。本发明利用字典数据存储结构的时间复杂度和空间复杂度较优的特性,采用一种字典嵌套字典的数据存储结构来存储稀疏矩阵,达到占用内存少的效果。
本发明的上述目的通过以下技术方案实现:
字典嵌套字典数据结构的稀疏矩阵压缩存储方法,字典是一种以键-值对形式存储数据的数据结构;设稀疏矩阵表示为A=(aij),i=1,2,…,M;j=1,2,…,N,其中,M为稀疏矩阵A的行数,N为稀疏矩阵A的列数;包括如下步骤:
步骤一、初始化生成字典嵌套字典类型的数据结构;
步骤二、读取稀疏矩阵A的第i行第j列元素的值aij;
步骤三、判断稀疏矩阵元素的值aij是否为0,如果不是,跳至步骤四;如果是,跳至步骤五;
步骤四、按行或者按列存储稀疏矩阵A的非零的元素aij,所述按行存储稀疏矩阵A的非零的元素aij,是将行索引i存储在字典嵌套字典数据结构的外层字典的键中,列索引j存储在外层字典行索引i所对应的内层字典的键中,非零的元素的值aij存储在内层字典值中,跳至步骤五;
步骤五、判断元素的值aij是否为稀疏矩阵A的最后一个元素,如果不是,则跳至步骤六;如果是,则结束;
步骤六、读取稀疏矩阵A的下一个元素的值ai,j+1或者ai+1,1,跳回步骤三。
所述的M,N为正整数。
所述的稀疏矩阵是规则的或者不规则的。
步骤四所述的按列存储稀疏矩阵A的非零的元素是:将每个非零的元素的值aij按列存入字典嵌套字典的数据结构中;非零的元素的值aij的列索引j存储在典嵌套字典数据结构的外层字典的键中,行索引i存储在列索引j所对应的内层字典的键中,非零的元素的值aij存储在内层字典值中。
本发明的有益效果在于:
(2)本发明利用字典这种数据结构搜索、查找和插入功能的时间复杂度是O(1)的优点,即所需时间不随规模的增大而改变,可以高效组装和存储有限元中的大规模稀疏的总体刚度矩阵。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明的方法流程图;
图2为本发明的高效压缩存储稀疏矩阵的数据结构示意图;
图3为本发明的实施例1中低维稀疏矩阵;
图4为本发明的高效压缩存储稀疏矩阵的具体压缩存储结构示意图。
具体实施方式
下面结合附图进一步说明本发明的详细内容及其具体实施方式。
参见图1至图4所示,本发明的字典嵌套字典数据结构的稀疏矩阵压缩存储方法,字典是一些元素的集合,每个元素有一个称作键的域,不同元素的键各不相同。字典是一种以键-值对形式存储结构的数据结构。
设稀疏矩阵表示为A=(aij),i=1,2,…,M;j=1,2,…,N,其中,M为稀疏矩阵A的行数,N为稀疏矩阵A的列数;该方法需要采用一个字典嵌套字典的数据结构来进行压缩存储稀疏矩阵,所述字典是一种以键-值对形式存储结构的数据结构;
按行或按列存储稀疏矩阵A,所述按行存储稀疏矩阵A是:将每个非零的元素的值aij按行存入字典嵌套字典的数据结构中;非零的元素的值aij的行索引i存储在字典嵌套字典数据结构的外层字典的键中,列索引j存储在相应的行索引i所对应的内层字典的键中,非零的元素的值aij存在内层字典值中。
所述的按列存储稀疏矩阵A是:将每个非零的元素的值aij按列存入字典嵌套字典的数据结构中;非零的元素的值aij的列索引j存储在典嵌套字典数据结构的外层字典的键中,行索引i存储在相应的列索引j所对应的内层字典的键中,非零的元素的值aij存在内层字典值中。
所述的M,N为正整数。
所述的稀疏矩阵是任意的,可以是规则的,也可以是不规则的。
实施例1:
参见图1至图4所示,本实施例的字典嵌套字典数据结构的稀疏矩阵压缩存储方法,具体步骤如下:
设稀疏矩阵A=(aij)是如图3所示的8×8的稀疏矩阵。
(1)初始化生成字典嵌套字典类型的数据结构;
(2)读取稀疏矩阵A的第i行第j列元素的值aij;
(3)判断元素的值aij是否为0,如果不是,跳至第(4)步;如果是,跳至第(5)步;
(4)将行索引i存储在字典嵌套字典数据结构的外层字典的键中,列索引j存储在相应的外层字典行索引i所对应的内层字典的键中,非零的元素的值aij存在内层字典值中,跳至第(5)步;
(5)判断是否为稀疏矩阵A的最后一个元素,如果不是,则跳至第(6)步;如果是,则结束。
(6)读取下一个元素的值ai,j+1或者ai+1,1,跳回第(3)步。
最后将稀疏矩阵A压缩成如图4所示的字典嵌套字典数据结构中。由图可知,此稀疏矩阵的压缩比为又利用字典这种数据结构搜索、查找和插入功能的时间复杂度是O(1)的优点,即所需时间不随规模的增大而改变,可以高效组装和存储有限元中大规模稀疏的总体刚度矩阵。
大规模的稀疏矩阵的压缩存储方法同上述流程一致,不做详细描述。
以上所述仅为本发明的优选实例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种字典嵌套字典数据结构的稀疏矩阵压缩存储方法,其特征在于:字典是一种以键-值对形式存储数据的数据结构;设稀疏矩阵表示为A=(aij),i=1,2,…,M;j=1,2,…,N,其中,M为稀疏矩阵A的行数,N为稀疏矩阵A的列数;包括如下步骤:
步骤一、初始化生成字典嵌套字典类型的数据结构;
步骤二、读取稀疏矩阵A的第i行第j列元素的值aij;
步骤三、判断稀疏矩阵元素的值aij是否为0,如果不是,跳至步骤四;如果是,跳至步骤五;
步骤四、按行或者按列存储稀疏矩阵A的非零的元素aij,所述按行存储稀疏矩阵A的非零的元素aij,是将行索引i存储在字典嵌套字典数据结构的外层字典的键中,列索引j存储在外层字典行索引i所对应的内层字典的键中,非零的元素的值aij存储在内层字典值中,跳至步骤五;
步骤五、判断元素的值aij是否为稀疏矩阵A的最后一个元素,如果不是,则跳至步骤六;如果是,则结束;
步骤六、读取稀疏矩阵A的下一个元素的值ai,j+1或者ai+1,1,跳回步骤三。
2.根据权利要求1所述的字典嵌套字典数据结构的稀疏矩阵压缩存储方法,其特征在于:所述的M,N为正整数。
3.根据权利要求1所述的字典嵌套字典数据结构的稀疏矩阵压缩存储方法,其特征在于:所述的稀疏矩阵是规则的或者不规则的。
4.根据权利要求1所述的字典嵌套字典数据结构的稀疏矩阵压缩存储方法,其特征在于:步骤四所述的按列存储稀疏矩阵A的非零的元素aij是:将每个非零的元素aij按列存入字典嵌套字典的数据结构中;非零的元素aij的列索引j存储在典嵌套字典数据结构的外层字典的键中,行索引i存储在列索引j所对应的内层字典的键中,非零的元素的值aij存储在内层字典值中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110286692.0A CN112860818A (zh) | 2021-03-17 | 2021-03-17 | 字典嵌套字典数据结构的稀疏矩阵压缩存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110286692.0A CN112860818A (zh) | 2021-03-17 | 2021-03-17 | 字典嵌套字典数据结构的稀疏矩阵压缩存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860818A true CN112860818A (zh) | 2021-05-28 |
Family
ID=75995052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110286692.0A Pending CN112860818A (zh) | 2021-03-17 | 2021-03-17 | 字典嵌套字典数据结构的稀疏矩阵压缩存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860818A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114119343A (zh) * | 2021-10-21 | 2022-03-01 | 浙江大学 | 一种利用稀疏矩阵特性的暗场图像储存方法 |
CN116308667A (zh) * | 2023-03-25 | 2023-06-23 | 北京农夫铺子技术研究院 | 面向元宇宙购物平台的商品大数据智能存储系统 |
-
2021
- 2021-03-17 CN CN202110286692.0A patent/CN112860818A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114119343A (zh) * | 2021-10-21 | 2022-03-01 | 浙江大学 | 一种利用稀疏矩阵特性的暗场图像储存方法 |
CN114119343B (zh) * | 2021-10-21 | 2023-02-28 | 浙江大学 | 一种利用稀疏矩阵特性的暗场图像储存方法 |
CN116308667A (zh) * | 2023-03-25 | 2023-06-23 | 北京农夫铺子技术研究院 | 面向元宇宙购物平台的商品大数据智能存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112860818A (zh) | 字典嵌套字典数据结构的稀疏矩阵压缩存储方法 | |
CN109726314B (zh) | 基于位图的稀疏矩阵压缩存储方法 | |
US8135738B2 (en) | Efficient predicate evaluation via in-list | |
WO2022037257A1 (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN105703782B (zh) | 一种基于递增移位矩阵的网络编码方法及系统 | |
Smailbegovic et al. | Sparse matrix storage format | |
CN109740023A (zh) | 基于双向位图的稀疏矩阵压缩存储方法 | |
CN115438114B (zh) | 存储格式转换方法、系统、装置、电子设备及存储介质 | |
Cevahir et al. | Site-based partitioning and repartitioning techniques for parallel pagerank computation | |
Nguyen et al. | Two-dimensional weight-constrained codes for crossbar resistive memory arrays | |
Yang et al. | Fusekna: Fused kernel convolution based accelerator for deep neural networks | |
CN104881365A (zh) | 基于纠删码相似性的raid-6可扩展方法 | |
CN114116600A (zh) | 一种芯片降功耗设计方法及芯片 | |
CN105938469B (zh) | 编码存储方法、文本存储数据结构以及文本压缩存储和统计输出方法 | |
CN111984651A (zh) | 一种基于持久性内存的列式存储方法、装置及设备 | |
CN112632465B (zh) | 基于fpga的实对称矩阵特征值分解的数据存储方法 | |
CN113055027B (zh) | 可变位宽的ldpc编码方法、编码器、ssd及存储介质 | |
Qi et al. | Direct construction of three-level designs with less β-aberration | |
Sun et al. | Bidirectional database storage and SQL query exploiting RRAM-based process-in-memory structure | |
CN113705784A (zh) | 一种基于矩阵共享的神经网络权重编码方法及硬件系统 | |
CN1091529C (zh) | 文字全形码 | |
Otoo et al. | Multidimensional Sparse Array Storage for Data Analytics | |
Tsuji et al. | History offset implementation scheme for large scale multidimensional data sets | |
CN114157307B (zh) | 一种准循环ldpc编码的硬件实现方法及装置 | |
CN112417815B (zh) | 一种大数据处理中类别组合数据的动态编码方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210528 |