iqm.qiskit_iqm.iqm_target.IQMTarget#

class iqm.qiskit_iqm.iqm_target.IQMTarget(description: str | None = None, num_qubits: int = 0, dt: float | None = None, granularity: int = 1, min_length: int = 1, pulse_alignment: int = 1, acquire_alignment: int = 1, qubit_properties: list | None = None, concurrent_measurements: list | None = None, *args, **kwargs)#

Bases: Target

Transpilation target for an IQM architecture.

Contains the mapping of physical qubit name on the device to qubit index in the Target.

Parameters:
  • architecture (DynamicQuantumArchitecture) – Quantum architecture that defines the target.

  • component_to_idx (dict[str, int]) – Mapping from QPU component names to integer indices used by Qiskit to refer to them.

  • include_resonators (bool) – Whether to include computational resonators (and MOVE gates) in the target, if present in architecture.

  • include_fictional_czs (bool) – Whether to include “fictional” CZs that are not natively supported, but could be routed using MOVE.

  • metrics (ObservationFinder | None) – Optional calibration data and related quality metrics to improve the transpilation.

Attributes

physical_qubits

Return the ordered list of physical qubits in the target.

Methods

_add_instructions_cz_gates(op_loci)

Adds CZ gate instructions to the Qiskit Target.

_add_instructions_from_DQA()

Initializes the Target with instructions and properties that represent the dynamic quantum architecture iqm_dqa.

_create_fictional_cz_properties(q1, q2, res)

Create InstructionProperties for a fictional CZ gate.

_create_gate_properties(gate_name, locus)

Creates InstructionProperties for a single gate on a specific locus.

_create_qubit_properties(qubits, metrics)

Creates qubit properties from the quality metrics.

_determine_fictional_cz_loci(move_loci, cz_loci)

Determine fictional CZ loci, i.e. pairs of qubits between which we can implement a CZ using MOVE gates and an intermediate computational resonator.

locus_to_idx(locus)

Map the given locus to use component indices instead of component names.

restrict_to_qubits(qubits)

Generated a restricted transpilation target from this Target that only contains the given qubits.

locus_to_idx(locus: tuple[str, ...]) tuple[int, ...]#

Map the given locus to use component indices instead of component names.

Parameters:

locus (tuple[str, ...])

Return type:

tuple[int, …]

property physical_qubits: list[str]#

Return the ordered list of physical qubits in the target.

restrict_to_qubits(qubits: list[int] | list[str]) IQMTarget#

Generated a restricted transpilation target from this Target that only contains the given qubits.

Parameters:

qubits (list[int] | list[str]) – Qubits to restrict the target to. Can be either a list of qubit indices or qubit names.

Returns:

restricted target

Return type:

IQMTarget