Sparse Matrix Storage Using List-of-Lists and Base64 Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in efficiently encoding, communicating, and storing sparse matrices, particularly in large-scale statistical computing systems, due to the high proportion of zero elements which leads to inefficient data storage and communication, and existing formats like COO and LIL may fracture sparse matrix rows during distribution, causing computation errors and increased latency.

Innovation Solution

The proposed solution involves using a List-of-Lists format for run-length compression followed by Base64 encoding of sparse matrix rows, which allows for dynamic storage and communication of sparse matrix data, avoiding row fracturing and reducing data transmission latency by representing each row as a single character string, enabling efficient distribution across a grid-computing system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sparse matrices are stored using conventional formats (COO, LIL), then data can be stored, but row fracturing occurs during distribution causing computation errors and increased latency

Engineering Contradiction:
Improvecomputation accuracyVSAvoiddata distribution complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the entire sparse matrix row into a single continuous data structure using List-of-Lists format, where each row is represented as one unified object containing all non-zero elements and their column indices. This prevents row fracturing during distribution across computing nodes, ensuring computational accuracy while simplifying data management.

Inventive Principle:
Principle #5Merging (Combining)

2Quantity of substance

If sparse matrices are stored with all zero elements included, then complete data is stored, but storage efficiency and communication efficiency deteriorate

Engineering Contradiction:
Improvedata completenessVSAvoidstorage efficiency
Core Design Contradiction:
Quantity of substanceVSLoss of substance

Solution Approach 1:

The patent extracts only the non-zero elements from sparse matrix rows, storing them in List-of-Lists format along with their column indices. This extraction eliminates the storage burden of numerous zero elements while preserving all meaningful data, achieving both data completeness and storage efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If sparse matrix rows are distributed across grid-computing devices, then parallel processing is enabled, but data transmission latency increases

Engineering Contradiction:
Improveparallel processing capabilityVSAvoiddata transmission latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent changes the data format parameter from conventional sparse formats to List-of-Lists representation, which organizes data in a more compact and transmission-friendly structure. This parameter change reduces the amount of data that needs to be transmitted during parallel distribution, thereby reducing transmission latency while maintaining parallel processing capabilities.

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If database systems store large sparse matrices, then analytical capabilities are enhanced, but database limitations cause storage and processing inefficiencies

Engineering Contradiction:
Improveanalytical capabilityVSAvoiddatabase storage complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the sparse matrix into individual rows, with each row stored as a separate List-of-Lists structure. This segmentation allows database systems to handle large sparse matrices by processing and storing rows independently, reducing the complexity burden on the database while maintaining full analytical capabilities.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10275479B2Sparse matrix storage in a database
Publication Date: 2019.04.30 SAS INSTITUTE INC
  • US10275479B2 patent drawing
  • US10275479B2 patent drawing
  • US10275479B2 patent drawing

AI summary

Methods, processes and computer-program products are disclosed for use in a parallelized computing system in which representations of large sparse matrices are efficiently encoded and communicated between grid-computing devices. A sparse matrix can be encoded and stored as a collection of character strings wherein each character string is a Base64 encoded string representing the non-zero elements of a single row of the sparse matrix. On a per-row basis, non-zero elements can be identified by column indices and error correction metadata can be included. The resultant row data can be converted to IEEE 754 8-byte representations and then encoded into Base64 characters for storage as strings. These character strings of even very large-dimensional sparse matrices can be efficiently stored in databases or communicated to grid-computing devices.