Mitiq <> UCC integration #278
natestemen
started this conversation in
Ideas
Replies: 2 comments 3 replies
-
Asking to understand
|
Beta Was this translation helpful? Give feedback.
2 replies
-
Many thanks @natestemen for starting this discussion and the nice outline. At first impact, point 4. looks like the most interesting to me, although in practice it seems to require a bit of design decisions. ZNE is definitely a generic and compelling example to start from, although a simpler pass to consider first could be dynamical decoupling (Digital DD in Mitiq). @bachase with regards to the motivation and goal: We want to build into ucc also the capabilities of noise aware compilation. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Context
Mitiq
Mitiq is an open source toolkit for QEM protocols.
Applying QEM
A typical workflow for executing a quantum circuit with error mitigation follows these steps:
Important
One key detail is that circuit optimizations should not be applied without caution to the generated QEM circuits$C_i$ , as some error mitigation techniques rely on transformations that may be mistakenly optimized away. For example, in ZNE, one circuit might be $C_{\text{opt}}C_{\text{opt}}^\dagger C_{\text{opt}}$ , which nominally compiles to the identity but is necessary for ZNE.
A tutorial demonstrating mitiq's "integration" with BQSKit (a quantum compiler) follows this approach: compile first, then apply QEM.
Motivation
Error mitigation and compilation are a venn-diagram with overlap goal being "reduce the effect of errors on a computation". A well-optimized circuit can reduce the circuit depth, thereby reducing the potential for errors to accrue.
Ideas
Integrate UCC into mitiq
This is a natural extension because mitiq is designed around executing quantum circuits, and compilation is often a necessary preprocessing step. The composition of tools aligns well:
QPROGRAM -> QPROGRAM
(optimization/routing)QPROGRAM -> list[QPROGRAM]
(QEM)Thus, the natural approach is compile first, then apply QEM.
Add a
compile
flag to mitiq techniquesThis would automatically compile the circuit before applying QEM.
Integrate mitiq into UCC
Instead of having Mitiq control compilation, we could make UCC aware of QEM and/or orchestrate the QEM protocol. A key component of many of these suggestions is that UCC would have to be able to output multiple circuits from a single one.
ucc.compile
Executor
interface into UCCNo "integration"
Instead of tightly integrating mitiq and UCC, we could keep them separate but compatible.
These are just preliminary ideas. Looking forward to further discussion coming from this. @bachase @jordandsullivan @Misty-W for comments
Beta Was this translation helpful? Give feedback.
All reactions