Skip to content

[enhancement] Memory optimize systematic linear codes #648

@christakahashi

Description

@christakahashi

I have a proposed enhancement:

I'm using a Reed Solomon code over GF(2**16) and the G matrix gets around 7-8gb. Since its a systematic code, a k sized block of G is the identity matrix, which is typically the majority of that 7-8gb.

I noticed in the source code that optimizations are made to avoid multiplication by the identity for systematic codes but storage of that matrix is still done.

Besides just not being wasteful this has the benefit in enabling faster serialization of a galois.ReedSolomon object. With the newest version (0.4.10) of galois it takes about 20 seconds for me to generate a ReedSolomon object or alternatively about 16 seconds to de-serialize one from pickle. shrinking the memory footprint would greatly speed up de-serialization allowing me to speed code that relies on a predefined long RS code.

(also thanks again for this great library!)

Metadata

Metadata

Assignees

No one assigned

    Labels

    fecForward error correctionperformanceAffects speed/performance

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions