Parallel Sparse Matrix Storage via Fixed-Block Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Massively parallel processing cannot extend to storing a matrix in CSR format due to the need for knowledge of earlier results, specifically the number of nonzero values in each row, which necessitates serial processing.
Innovation Solution
A method for storing sparse matrix data that allows parallel processing by storing non-zero values and indices for each row or column, with a predetermined number of values including null or zero values, eliminating the need for a third array like ridx, and enabling compatibility with existing linear solvers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If CSR format is used to store sparse matrices, then memory requirements are reduced, but parallel processing capability is lost due to dependency on earlier computation results
Solution Approach 1:
The invention segments the storage of sparse matrix data into fixed-size blocks, where each block contains a predetermined number of non-zero elements and their indices. This segmentation allows each processing unit to work independently on its assigned block without needing to know the total number of non-zero elements in advance, thereby enabling parallel processing while maintaining memory efficiency similar to CSR format.
Solution Approach 2:
The invention performs preliminary actions by pre-allocating fixed-size blocks for storing matrix data before parallel processing begins. Each processing unit is assigned a specific block with a predetermined capacity, eliminating the need for dynamic memory allocation during parallel computation and removing dependencies on earlier computation results.
2Ease of manufacture
If serial processing is used to determine the number of non-zero values in each row, then CSR format can be created, but computational efficiency is reduced
Solution Approach 1:
Instead of first counting non-zero elements and then storing them (the traditional serial approach), the invention inverts the process by directly allocating fixed-size blocks that can accommodate any number of non-zero elements up to the block capacity. This allows parallel processing units to write data simultaneously without coordination, dramatically improving computational efficiency while still enabling CSR format creation.
3Productivity
If parallel processing is applied to matrix computation, then speed is increased, but additional hardware and software organization is required
Solution Approach 1:
The invention changes the storage parameter from dynamic (variable block sizes based on actual non-zero element counts) to fixed (predetermined block capacities). This parameter change simplifies the hardware and software organization required for parallel processing, as each processing unit operates on uniformly sized blocks without requiring complex coordination mechanisms, while still achieving high computational speed.
Data Source
AI summary
In order to perform computation concerning a large sparse matrix of values, a computer stores in its memory the nonzero values of each row and as many null or preferably zero values as are required to make up a predetermined number of stored values for each row. Associated column indices are also stored. Storage in this format can be carried out by massively parallel processing using a graphics processing unit. The format is acceptable input for programs written to expect input in conventional compressed sparse row format yet avoids the constraints which enforce serial processing in order to store in that conventional format.


