Skip to content

optimatrix support in emu-mps

No due date 80% complete

Desciption:
For larger numbers of qubits, performance and accuracy of emu-mps is quite dependent on register ordering. The user should not be bothered with this, and emu-mps should have support for automatically ordering registers based on a specified algorithm. Optimatrix implements these algorithms (currently only one). Optimatrix should be finalized, a…

Desciption:
For larger numbers of qubits, performance and accuracy of emu-mps is quite dependent on register ordering. The user should not be bothered with this, and emu-mps should have support for automatically ordering registers based on a specified algorithm. Optimatrix implements these algorithms (currently only one). Optimatrix should be finalized, and it should be used automatically in emu-mps.

Tasks:

  • change convergence criteria - Done
    • Currently, it checks convergence based on comparison of ordering found, and it can get stuck in the orbit of some symmetry group.
    • Use as a convergence criterion whether some metric for diagonality still improves.
  • Integrate in emu-mps
    • symmetrise user-fed interaction matrix in MPSConfig (Done in BaseConfig)
    • move the code from optimatrix folder into emu-mps folder
    • put an enum variable for using Optimatrix
    • in MPSBackendImpl reorder the interaction matrix, and store ordering in self.results
    • In MPSBackendImpl.fill_results undo the ordering on filled results (or do all of them at the end?)
  • automated benchmark showing the effect (Mauro?)
  • documentation
    • add explanation of the automated benchmark to docs (Mauro?)
    • move all other useful info to docs/develop
    • delete README and docs folder in optimatrix etc.
Loading