Skip to main contentIBM Quantum Documentation
Qiskit IBM Provider is deprecated. See the migration guide to use Qiskit Runtime.

DynamicCircuitInstructionDurations

DynamicCircuitInstructionDurations(instruction_durations=None, dt=None, enable_patching=True)

GitHub(opens in a new tab)

For dynamic circuits the IBM Qiskit backend currently reports instruction durations that differ compared with those required for the legacy Qobj-based path. For now we use this class to report updated InstructionDurations. TODO: This would be mitigated by a specialized Backend/Target for dynamic circuit backends.

Dynamic circuit instruction durations.


Attributes

MEASURE_PATCH_CYCLES

= 160

MEASURE_PATCH_ODD_OFFSET

= 64


Methods

from_backend

classmethod from_backend(backend)

GitHub(opens in a new tab)

Construct a DynamicInstructionDurations object from the backend.

Parameters

backend (Backend) – backend from which durations (gate lengths) and dt are extracted.

Returns

The InstructionDurations constructed from backend.

Return type

DynamicInstructionDurations

from_target

classmethod from_target(target)

GitHub(opens in a new tab)

Construct a DynamicInstructionDurations object from the target.

Parameters

target (Target) – target from which durations (gate lengths) and dt are extracted.

Returns

The InstructionDurations constructed from backend.

Return type

DynamicInstructionDurations

get

get(inst, qubits, unit='dt', parameters=None)

Get the duration of the instruction with the name, qubits, and parameters.

Some instructions may have a parameter dependent duration.

Parameters

  • inst (str | qiskit.circuit.Instruction) – An instruction or its name to be queried.
  • qubits (int | list[int]) – Qubit indices that the instruction acts on.
  • unit (str) – The unit of duration to be returned. It must be ‘s’ or ‘dt’.
  • parameters (list[float] | None) – The value of the parameters of the desired instruction.

Returns

The duration of the instruction on the qubits.

Return type

float|int

Raises

TranspilerError – No duration is defined for the instruction.

units_used

units_used()

Get the set of all units used in this instruction durations.

Return type

set[str]

Returns

Set of units used in this instruction durations.

update

update(inst_durations, dt=None)

GitHub(opens in a new tab)

Update self with inst_durations (inst_durations overwrite self). Overrides the default durations for certain hardcoded instructions.

Parameters

  • inst_durations (Union[List[Tuple[str, Optional[Iterable[int]], float, Optional[Iterable[float]], str]], List[Tuple[str, Optional[Iterable[int]], float, Optional[Iterable[float]]]], List[Tuple[str, Optional[Iterable[int]], float, str]], List[Tuple[str, Optional[Iterable[int]], float]], InstructionDurations, None]) – Instruction durations to be merged into self (overwriting self).
  • dt (Optional[float]) – Sampling duration in seconds of the target backend.

Returns

The updated InstructionDurations.

Return type

InstructionDurations

Raises

TranspilerError – If the format of instruction_durations is invalid.

Was this page helpful?
Report a bug or request content on GitHub.