q-optimize / c3

Toolset for control, calibration and characterization of physical systems
https://c3-toolset.readthedocs.io/
Apache License 2.0
66 stars 36 forks source link

Efficient batched circuits in qiskit #217

Closed lazyoracle closed 2 years ago

lazyoracle commented 2 years ago

What

This PR reworks parts of the qiskit interface to allow more efficient batched circuit execution. Qiskit jobs can contain multiple experiments (each experiment containing a qasm circuit) and these are now batch processed without recomputing expensive propagators.

Why

Closes #199

How

C3 experiment object is now initialised at the job level, and not at the qiskit experiment level. Propagators are also created once per job and not for every experiment in a job. If a particular experiment has a SetParamsGate the propagators are recomputed.

Remarks

Check the Full_Loop_single_qubit.ipynb for an example of processing batched circuits.

Checklist

Please include and complete the following checklist. Your Pull Request is (in most cases) not ready for review until the following have been completed. You can create a draft PR while you are still completing the checklist. Check the Contribution Guidelines for more details. You can mark an item as complete with the - [x] prefix

codecov[bot] commented 2 years ago

Codecov Report

Merging #217 (f0d16d7) into dev (ad9ba29) will decrease coverage by 0.72%. The diff coverage is 90.00%.

@@            Coverage Diff             @@
##              dev     #217      +/-   ##
==========================================
- Coverage   75.02%   74.30%   -0.73%     
==========================================
  Files          38       38              
  Lines        5593     5545      -48     
==========================================
- Hits         4196     4120      -76     
- Misses       1397     1425      +28     
Impacted Files Coverage Δ
c3/qiskit/c3_backend.py 90.90% <88.88%> (-2.85%) :arrow_down:
c3/qiskit/c3_provider.py 85.29% <100.00%> (ø)
c3/qiskit/c3_backend_utils.py 26.78% <0.00%> (-33.93%) :arrow_down:
c3/experiment.py 74.83% <0.00%> (-2.32%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update ad9ba29...f0d16d7. Read the comment docs.