-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs(notebooks): add utility scaling demo #20
Conversation
Pull Request Test Coverage Report for Build 8489985288Details
💛 - Coveralls |
Tests seem to fail due to the name of the file holding the cached results being invalid for Windows:
|
|
Another small comment is |
Thanks for the comments @itoko 🙇🏼♂️ Although we have chatted already I will include my responses here for transparency. The from qiskit.visualization import plot_distribution
from copy import deepcopy
import matplotlib.pyplot as plt
plt.rcParams.update({"text.usetex": True, "font.family": "Helvetica"})
fig, ax = plt.subplots(dpi=200)
ACCURATE_READOUT = "0" * NUM_QUBITS
plots_dict = deepcopy(results_dict)
plots_dict = {
nf: {"0": counts.pop(ACCURATE_READOUT), "1": sum(counts.values())}
for nf, counts in plots_dict.items()
}
plot_distribution(
[plots_dict.get(nf) for nf in NOISE_FACTORS],
legend=[f"Noise factor: {nf:.1f}" for nf in NOISE_FACTORS],
color=['lightgray', 'gray', 'black'],
title="Readout probabilities at different noise levels",
ax=ax,
)
ax.set_xticklabels(['Accurate', 'Error'], rotation=0)
ax.legend(fontsize=11)
plt.show() |
We need to change the file name |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm unable to comment this notebook line by line (source code is not viewable online), so I'll give my review in this comment:
-
"To this end, we will begin studying conceptually different hardware-native quantum circuits, that will turn out equivalent in practice"
There is a caveat here which explains why the different circuits which you consider all turn out to give similar circuit structure: i) MBL and TFIM dynamics are both Hamiltonian simulation tasks and QAOA again relies on time-evolution generated by the problem Hamiltonian so not that different from a Hamiltonian simulation task. ii) In all circuits you have assumed the same topology, Hamiltonian with nearest neighbor interaction for qubits on a line.
For these reasons the circuits end up all looking similar to each other. So instead of claiming this is a generic structure for quantum circuits, you could say that Hamiltonian simulation task is widely used in quantum computing. -
"Then we will introduce a derivative form of the above circuits in order to address result validation: compute-uncompute."
Let's not introduce new terminology (or reference it if use it elsewhere). Circuit constructed by appending$U^{\dag}$ to$U$ are commonly known asmirror circuits
. Let's use this terminology which is already in use in the community. -
"Twirling or randomized compiling is a well known and widely used technique for converting arbitrary noise channels into Pauli channels (e.g. depolarizing noise)."
This is incorrect. Twirling is a technique to taylor the noise. Depending on the gates used in the twirling bases, you may end up with Pauli noise (or not). See this reference for a comprehensive and straightforward introduction to twirling: https://glassnotes.github.io/OliviaDiMatteo-Unitary2Designs.pdf -
"Unfortunately, idle qubits decohere more easily than those on which operations are being applied. "
This statement is also not generally correct. In fact, there is plenty of research showing that T2 is smaller for driven qubits than the one measured when they are idle. The actual problem is that the qubits in our device are always coupled to each other and the crosstalks effect induced by this coupling can induce coherent errors on the idling qubits when circuits with more than 2 qubits are considered. -
"single-qubit measurement obfuscation matrices"
I never heard this term, shouldn't this be confusion matrices (for example https://mitiq.readthedocs.io/en/stable/guide/rem.html)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, looks great to me now! :D
Summary
Adds Utility Scaling demo notebook cleaned and updated to Qiskit 1.0.
Details and comments
Requires merging of the following PRs first:
QAOAPathCircuit
class #14MBLChainCircuit
class #15feat(circuits): addcompute_uncompute
function #16TwoQubitPauliTwirlPass
class #17All code plus notebook can be found in the
scaling
branch of this repository for ease of access and execution. This is the way it has been shared since it was ready with people that required early access (e.g. for preparation of Practitioner's Forum APAC).This PR is meant to provide a place to review the notebook in isolation.