-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
cirq.experiments.random_quantum_circuit_generation
β
This has fully-general utilities for making random quantum circuits on grids. Everything should use this.
cirq.experiments.fidelity_estimation
π‘
The first set of functions are nice enough, and are appropriate for computing XEB fidelity like in Arute 2019, although there are no examples on how to use this in practice. We should add some!
The final set of functions (least_squares_xxx
) are appropriate for computing XEB fidelity for narrow (i.e. two-qubit) circuits. This math is used in the forthcoming suite of xeb characterization utilities (https://github.com/quantumlib/Cirq/issues?q=label%3Aarea%2Fxeb+) however, the data structures used as input and output are very confusing and not suitable for fast, numpy-vectorized-style application to real results. I think these should be deprecated in their current form
cirq.experiments.cross_entropy_benchmarking
π΄
And examples/cross_entropy_benchmarking_example
.
This has a self-contained end-to-end implementation of cross entropy benchmarking. Therefore, it has its own fidelity estimation code and random circuit generation code. At the very least, it should be refactored to use the functionality in the more generalized modules described above and the example should use a noisy simulator. However, I recommend these modules be deprecated/removed completely: the example is not particularly instructive and the tight coupling between circuit construction, sampling, simulation, and analysis makes it hard to adapt and extend. The example is redundant with the more rich documentation provided as part of the xeb prs
cirq.experiments.google_v2_supremacy_circuit
π΄
This uses terminology we're trying to move away from. It also has its own, third implementation of random quantum circuit generation. These are also not the random circuits used in the flagship arute 2019 nature paper but rather the 2018 boixo theory paper. As far as I can tell, this is supposed to act as a supplemental information for that paper. This is not a good use of the Cirq repository. This should be re-written to use random_quantum_circuit_generation
, renamed, and moved to a different repository.
grid_parallel_two_qubit_xeb
π‘
This module uses the "data collection idioms" from ReCirq to run a full parallel-2q-XEB experiment and save the results in a structured way. Unfortunately, this file is over 500 lines long and contains a lot of "business logic". This should be re-written to use the new XEB utilities and moved to ReCirq.
This uses some of the dataclasses from .cross_entropy_benchmarking
, so we should audit/preserve those if applicable during the deprecation/removal of that module.