Skip to content

Compressed state vectors #576

@WrathfulSpatula

Description

@WrathfulSpatula

This specifically will not be in the January 1st release, but (conventional compression algorithm) state vector compression could probably add at least a qubit or two to maximally entangled capacity on any given system, if at significant speed cost. QUnit is already a Schmidt decomposed representation of state, which reduces RAM needs, but QEngine type sub-unit state vectors typically must have far less Shannon entropy per float than type capacity, by simple considerations, compressed with even just a ZIP algorithm, for example.

I'm sure much has been said and done on this front by other parties already, but part of this issue is researching those approaches. For Qrack, a compressed QEngine type would still synergize with QUnit's capabilities. We might subclass QEngineCPU, with a corresponding new subclass of StateVector, or perhaps we could get away with just the StateVector subclass and a configuration option for QEngineCPU. Since we've introduced "hybrid" types, both QEngineCPU and QEngineOCL efficiency effectively contribute together to overall simulator performance, but GPU compressed state vectors are a little daunting, for the moment, and might not pay.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions