IQM

Uses IQM superconducting quantum computers for circuit evaluation via Amazon Braket.

Available as IQMClient.

Note

Requires authentication with your own AWS account subscribed to Amazon Braket.

Solver specification:

Client class

amplify.IQMClient

Execution parameters

Depends on the algorithm

Execution result

Depends on the algorithm

Execution time

Depends on the algorithm

Quantum computer type

Gate-based, superconducting qubits

API method

REST API (Amazon Braket)

The variable types and polynomial degree accepted for the input problem depend on the chosen algorithm.

  • When QAOA is specified as the client argument

    Binary

    Ising

    Integer

    Real

    Objective function

    -

    Nth degree*

    -

    -

    Equality constraint

    -

    **

    -

    -

    Inequality constraint

    -

    -

    -

    -

    *: Problems of arbitrary degree are supported. However, depending on the qubit connectivity of the quantum computer, the required number of qubits may increase.

    **: When Constrained QAOA is selected via QAOA type, N-HOT constraints are supported.

  • When RQAOA is specified as the client argument

    Binary

    Ising

    Integer

    Real

    Objective function

    -

    Nth degree*

    -

    -

    Equality constraint

    -

    -

    -

    -

    Inequality constraint

    -

    -

    -

    -

    *: Problems of arbitrary degree are supported. However, depending on the qubit connectivity of the quantum computer, the required number of qubits may increase.

Client class:

The client class has the following attributes and methods.

Attribute

Data type

Details

device

str

The IQM device name or device ARN to use. Default: "Garnet"

provider

braket.aws.aws_session.AwsSession | None

Specifies the provider used to connect to the device. Currently, only Amazon Braket is supported.

Backend-specific metadata:

Detailed sampling information is available via QAOA’s sampling_meta. Uses BraketJobMeta.

meta = client_result.history[0].sampling_meta
meta.circuit             # The executed circuit object
meta.metadata            # Amazon Braket task metadata (task_id, created_at, ended_at)
Configuration example:
import boto3
from braket.aws import AwsSession
from amplify import QAOA, IQMClient

# Create the client
client = IQMClient(QAOA)

# Specify the device
client.device = "Garnet"

# Set up AWS authentication (build AwsSession from an AWS profile)
boto_session = boto3.Session(profile_name="my-profile")
client.provider = AwsSession(boto_session=boto_session)

# Set QAOA parameters
client.parameters.reps = 1
client.parameters.shots = 100
Execution example:
from amplify import Model, VariableGenerator, solve

# Create decision variables and the objective function
g = VariableGenerator()
q = g.array("Binary", 2)
f = q[0] * q[1] + q[0] - q[1] + 1

# Create a model
model = Model(f)

# Run the solver
result = solve(model, client)

Obtain the backend version:

>>> client.version()