unitaryfund / mitiq

Mitiq is an open source toolkit for implementing error mitigation techniques on most current intermediate-scale quantum computers.
https://mitiq.readthedocs.io
GNU General Public License v3.0
359 stars 157 forks source link

Mitiq <> Qrack tutorial #2003

Open natestemen opened 1 year ago

natestemen commented 1 year ago

We should create a tutorial demonstrating how to use Mitiq in conjunction with Qrack as a simulation backend. Which error mitigation technique to use could be up to the author.

cc @WrathfulSpatula

WrathfulSpatula commented 1 year ago

I have this, for "reduced density matrix ("RDM") approximate near-Clifford technique in Qrack, mitigated with Mitiq:

https://github.com/vm6502q/pyqrack-jupyter/blob/main/Clifford_RZ_Mitiq_RCS.ipynb

The near-Clifford work has since even moved past this: "near-Clifford rounding" approximate simulation is what I was talking about in the community call today, which has done 64/64(x2)/64(x2) [width]/[circuit depth layers]/[non-Clifford gates] mirror circuit benchmarks at ~90% fidelity, (in a few hours, and that's not the upper limit). However, in that case, we can't mitigate the probability amplitude: it tends to be (discrete) 100%, 50%, and 0% fidelity only. It should be possible to define some observable expectation value on these outcomes that varies more continuously, though.

WrathfulSpatula commented 1 year ago

I'm happy to assign myself, here, unless someone else would strongly prefer to work with me (presumably) to better explore the potential interface between the Mitiq side and the Qrack side.

natestemen commented 1 year ago

https://github.com/vm6502q/pyqrack-jupyter/blob/main/Clifford_RZ_Mitiq_RCS.ipynb

I think this could be a good basis for a tutorial, but I think if we went this direction, we should have two parts. The first part would be defining an executor that simulates a circuit using Qrack and the second can be a more advanced dive into using both more advanced features of Mitiq and Qrack.

WDYT?

WrathfulSpatula commented 1 year ago

Sounds good! I'll split this into those two parts, then, and improve the textual explanation.

WrathfulSpatula commented 1 year ago

By the way, I'd like to demonstrate these general principles using "near-Clifford rounding" technique rather than (near-Clifford) "reduced density matrix" approximation technique. The former seems to be much more powerful and accurate, but it's a little tricky to cast the results in a form that Mitiq can effectively mitigate. However, in the field, we'd start with the best base approximate simulation technique we have, so it's important that the tutorial use the best in Qrack and demonstrate a real use case, if possible.

Misty-W commented 1 year ago

@farzadkianvash

WrathfulSpatula commented 1 year ago

(Note that mirror circuits, as used in the original example, will now likely complete even at high widths in 100% fidelity; we need to mitigate something besides overall mirror circuit fidelity, after recent improvements in Qrack.)