qiskit icon indicating copy to clipboard operation
qiskit copied to clipboard

Add `scheduling_method='none'` option to disable scheduling stage

Open kdk opened this issue 2 years ago • 0 comments

What should we add?

Similar to routing_method='none' from #5274 , there are cases where a user might want to ensure the transpiler's scheduling stage is not invoked. While scheduling_method is generally opt-in, there are scenarios where the transpiler will implicitly trigger or require scheduling, for example when including a Delay instruction targeting a backend with non-unity timing_constraints, which can complicate testing.

We should add 'none' as a possible value for scheduling_method, and when provided, skip the scheduling behavior from https://github.com/Qiskit/qiskit-terra/blob/b454a8dfcbe2435f1f50c754a328a91f19335299/qiskit/transpiler/preset_passmanagers/common.py#L322 .

scheduling_method='none' should still run TimeUnitConversion(instruction_durations), condition=_contains_delay), and should emit a warning about not being able to check or enforce timing constraints if timing_constraints is not all 1s.

kdk avatar Sep 19 '22 15:09 kdk