optimatrix support in emu-mps
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 inself.results
- In
MPSBackendImpl.fill_results
undo the ordering on filled results (or do all of them at the end?)
- symmetrise user-fed interaction matrix in
- 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.