Qiskit / qiskit-ibm-runtime

IBM Client for Qiskit Runtime
https://docs.quantum.ibm.com/api/qiskit-ibm-runtime
Apache License 2.0
157 stars 156 forks source link

Allow custom transpilation pass managers in primitives, for relevant backend error rates #988

Closed livelyke closed 5 months ago

livelyke commented 1 year ago

What is the expected feature or enhancement?

When experimenting with different error mitigation strategies, it's helpful to be able to have custom transpilers which Pauli Twirl gates, avoid collapsing deliberately repeated gates such as CX for manual zero noise extrapolation, and so on. Since some transpiler options (I'm just thinking about VF2 layout, but I guess there are others. . .) depend on the backend error rates and these are recalibrated often, it would be helpful to be able to run these custom transpilers on the submitted circuits at the last minute before running.

The current choice of local transpilation and submission relies on calibration data obtained at the time of transpilation, and is likely stale by the time the job/session has gone through the queue and is actually executed on the hardware. Ideally the transpiled rather than logical circuit to stored in the job.inputs['circuits'] list, alongside the calibration data of the device at the time of execution.

jyu00 commented 5 months ago

Closing because primitives only accept ISA circuits now.