qiskit-documentation/docs/api/qiskit-ibm-runtime/0.19/qiskit_ibm_runtime.transpil...

121 lines
4.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: DynamicCircuitInstructionDurations (v0.19)
description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations in qiskit-ibm-runtime v0.19
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations
---
# DynamicCircuitInstructionDurations
<Class id="qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations" isDedicatedPage={true} github="https://github.com/qiskit/qiskit-ibm-runtime/tree/stable/0.19/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py" signature="DynamicCircuitInstructionDurations(instruction_durations=None, dt=None, enable_patching=True)" modifiers="class">
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
<Attribute id="qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.MEASURE_PATCH_CYCLES" attributeValue="160" />
### MEASURE\_PATCH\_ODD\_OFFSET
<Attribute id="qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.MEASURE_PATCH_ODD_OFFSET" attributeValue="64" />
## Methods
### from\_backend
<Function id="qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.from_backend" signature="from_backend(backend)" modifiers="classmethod">
Construct a `DynamicInstructionDurations` object from the backend. :type backend: `Backend` :param backend: backend from which durations (gate lengths) and dt are extracted.
**Returns**
The InstructionDurations constructed from backend.
**Return type**
DynamicInstructionDurations
</Function>
### from\_target
<Function id="qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.from_target" signature="from_target(target)" modifiers="classmethod">
Construct a `DynamicInstructionDurations` object from the target. :type target: `Target` :param target: target from which durations (gate lengths) and dt are extracted.
**Returns**
The InstructionDurations constructed from backend.
**Return type**
DynamicInstructionDurations
</Function>
### get
<Function id="qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.get" signature="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.
</Function>
### units\_used
<Function id="qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.units_used" signature="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.
</Function>
### update
<Function id="qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.update" signature="update(inst_durations, dt=None)">
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.
</Function>
</Class>