Skip to content
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

XEB characterization #85

Open
mpharrigan opened this issue Oct 21, 2020 · 0 comments
Open

XEB characterization #85

mpharrigan opened this issue Oct 21, 2020 · 0 comments
Labels

Comments

@mpharrigan
Copy link
Collaborator

Cross-entropy benchmarking is a robust characterization tool which can
not only provide the fidelity of pairs of qubits and classically-hard
random circuits but can also be used to “fit” the unitary parameters of
an entangling gate or a composite gate.

We aim to provide end-to-end execution of cross entropy benchmarking in
ReCirq using some of the existing utilities from Cirq.

Design

One of the key design elements will be separating circuit generation,
execution, simulation, and analysis into their own tasks.

XEB in ReCirq Diagram

Circuit Generation

This will be one task that generates all the circuits to simplify the
random seeding. This task will be executed ~once ever and the same
random circuits can be used in multiple data collection runs.

Data Collection

This is the aspect of the flow that needs to be most tolerant to faults
(i.e. restarting from a failed pipeline). This will also be run multiple
times, so it needs to be a bit more nimble. We may want to experiment
running circuits in different orders (e.g. to avoid rastering effects).

These tasks handle collecting the XEB data for a particular circuit
index and cycle number. Additional parameters allow a given circuit to
be run on different devices, with different numbers of circuit
repetitions, and using different placements on the device (if
applicable).

Circuit Simulation

These tasks are chunked such that each task corresponds to one circuit.
The circuit, however, will be simulated at all the different `cycle`
values. This permits an optimization where we can partially simulate the
circuit, save the intermediate state vector (for the truncated `cycle`
value) and continue for larger cycle values without re-computing the
first part of the circuit.

Analysis

Analysis will be done via utility functions and pandas. Given the
experimental results and the simulation results, the final analysis is
not computationally expensive.

Extensions

Layering a fitting routine to determine unitary parameters will be done
after the initial refactor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant