iqm.qiskit_iqm.pulse_level_utils.get_qiskit_compiler

iqm.qiskit_iqm.pulse_level_utils.get_qiskit_compiler#

iqm.qiskit_iqm.pulse_level_utils.get_qiskit_compiler(backend: IQMBackend, *, loading_rules: list[RuleType] | None = None, exa_style_pp: bool = True, controller_mapping: dict[str, dict[str, str]] | None = None, gate_definitions: dict[str, QuantumOp] | None = None) → Compiler#

IQM Compiler for transforming Qiskit circuits into pulse-level jobs.

Creates a Compiler instance which contains a Qiskit backend and extra initial circuit stages for parallelizing and transpiling Qiskit circuits and converting them to IQM circuit format.

Parameters:
  • backend (IQMBackend) – Qiskit backend.

  • loading_rules (list[RuleType] | None) – Observation loading rules. If None, will use the current default calibration set.

  • exa_style_pp (bool) – Whether to do EXA-style dataset post-processing by default.

  • controller_mapping (dict[str, dict[str, str]] | None) – Dictionary that maps physical QPU component names to their device controller names. The dictionary is of the form: {<component_name>: {<operation_name>: <controller name>}}, where operation is one of the following: “drive”, “readout”, “flux” (not all components have all operations supported).

  • gate_definitions (dict[str, QuantumOp] | None) – Names of quantum operations mapped to their definitions, see QuantumOp.

Returns:

Qiskit-specific IQM Compiler.

Return type:

Compiler