iqm.qiskit_iqm.iqm_provider.IQMFacadeBackend

iqm.qiskit_iqm.iqm_provider.IQMFacadeBackend#

class iqm.qiskit_iqm.iqm_provider.IQMFacadeBackend(client: IQMClient, *, name: str | None = None, **kwargs)#

Bases: IQMBackend

Simulates the execution of quantum circuits on a mock IQM quantum computer.

Can be used to submit a circuit to a mock IQM server that has no real quantum hardware, and if the mock execution is successful, simulates the circuit locally using an error model that is broadly representative of the mocked QPU. Finally returns the simulated results.

Note

There is usually no point in using a facade backend with a real quantum computer, since the computation results will be replaced with a local simulation.

Parameters:
  • client (IQMClient) – Client instance for communicating with an IQM server.

  • name (str | None) – Name of the fake backend (simulator instance) to use. If None, will be determined automatically based on the static quantum architecture of the server.

  • kwargs – Optional arguments to be passed to the parent class.

Attributes

name

Name of the backend.

description

Optional human-readable description.

online_date

Date that the backend came online.

backend_version

Version of the backend being provided.

Methods

_validate_no_empty_cregs(circuit)

Returns True if given circuit has no empty (unused) classical registers, False otherwise.

run(run_input, **options)

Run a quantum circuit or a list of quantum circuits on the IQM quantum computer represented by this backend.

run(run_input: QuantumCircuit | list[QuantumCircuit], **options) JobV1#

Run a quantum circuit or a list of quantum circuits on the IQM quantum computer represented by this backend.

Parameters:
  • run_input (QuantumCircuit | list[QuantumCircuit]) – The circuits to run.

  • options – Keyword arguments passed on to create_run_request(), and documented there.

Returns:

Job object from which the results can be obtained once the execution has finished.

Return type:

JobV1