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 locally the execution of quantum circuits on a remote mock IQM quantum computer.

This backend is meant to be used to run circuits on a mock IQM server that has no real quantum hardware, and if the mock execution is successful, simulate the circuits locally using an error model that is broadly representative of the mocked QPU. Finally it returns the simulated results.

If you just want to run a local simulation, use IQMFakeBackend directly.

Important

When using a facade backend, the IQM server URL of IQMProvider should always point to a mock environment rather than a real quantum computer, as the execution results from the server will be discarded and replaced by a locally simulated result generated by Qiskit Aer. If you use a real quantum computer with a facade backend, you will just waste your credits and/or computation time.

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