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.
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.