Skip to content

Affine Equalities Mostly Contain Only Small Portions of Actual Information #1459

Open
@DrMichaelPetter

Description

Setting up a post-analysis count of the share of elements in a matrix that are equal to 0, we come to the following histogram:

sparseity

  • the x-axis is the percentage of 0-elements in relation to all matrix elements of an analysis
  • the y-axis is the number of SV-Comp input files of which the average share of 0 entries

Since we explicitly represent those 0 entries in our current affine-equality array, representation a sparse representation would have some potential for runtime and memory consumption savings.

In former legacy implementations for older analyzers, sparse affine equality implementations where quite successful.

Implementation

Although there is an interface of abstract vectors and matrices are already present in the code, this was not designed with the idea of sparsely represented data in mind. All in all, this is an initial idea of the complications:

  • Especially fold/map style interfaces need to be carefully either implemented with a artificially dense behaviour, or its call-sites need to be checked for compatibility with the sparsity of the representation.
  • Liberal conversion to lists/arrays is now costly
  • Representation must decide on a row-based or column-based representation; non representation-conforming accesses may be costly and are maybe candidates for caching?

Metadata

Labels

performanceAnalysis time, memory usagerelationalRelational analyses (Apron, affeq, lin2var)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions