iqm.qiskit_iqm.iqm_provider.IQMFacadeBackend

iqm.qiskit_iqm.iqm_provider.IQMFacadeBackend#

class iqm.qiskit_iqm.iqm_provider.IQMFacadeBackend(client, **kwargs)#

Bases: IQMBackend

Facade backend for mimicking the execution of quantum circuits on IQM quantum computers. Allows to submit a

circuit to the IQM server, and if the execution was successful, performs a simulation with a respective IQM noise model locally, then returns the simulated results.

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

  • **kwargs – optional arguments to be passed to the parent Backend initializer

Initialize a BackendV2 based backend

Parameters:
  • provider – An optional backwards reference to the Provider object that the backend is from

  • name – An optional name for the backend

  • description – An optional description of the backend

  • online_date – An optional datetime the backend was brought online

  • backend_version – An optional backend version string. This differs from the version attribute as version is for the abstract Backend abstract interface version of the object while backend_version is for versioning the backend itself.

  • fields – kwargs for the values to use to override the default options.

  • client (IQMClient) –

Raises:

AttributeError – If a field is specified that’s outside the backend’s options

Attributes

architecture

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 on the backend.

run(run_input, **options)#

Run on the backend.

This method returns a Job object that runs circuits. Depending on the backend this may be either an async or sync call. It is at the discretion of the provider to decide whether running should block until the execution is finished or not: the Job class can handle either situation.

Parameters:
  • run_input (QuantumCircuit or Schedule or ScheduleBlock or list) – An individual or a list of QuantumCircuit, ScheduleBlock, or Schedule objects to run on the backend.

  • options – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object.

Returns:

The job object for the run

Return type:

Job