Skip to content

IQM

IQM Backend

IQM's quantum computers are universal, gate-based machines that utilize superconducting qubits. This superconducting quantum hardware excels in scalability and control, making it a strong contender for fault-tolerant quantum computing and enabling users to achieve the highest quality and accuracy for Noisy-Intermediate-Scale-Quantum applications. IQM's hardware is hosted on Amazon Braket. Find out more about IQM's hardware here.

Using Environment Variables

You can set your AWS credentials via environment variables to avoid passing them during initialization:

export LUNA_AWS_ACCESS_KEY=your_aws_access_key
export LUNA_AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key

Initialization

Initialize the IQM backend with:

from luna_quantum.solve.parameters.backends import IQM

backend = IQM(
    aws_access_key=None,
    aws_secret_access_key=None,
    aws_session_token=None,
    device='Garnet'
)

API-Reference

IQM

Bases: AWSBackendBase

Configuration parameters for IQM quantum backends, accessed via AWS.

Attributes:

Name Type Description
device Literal["Garnet"], default="Garnet"

The specific IQM quantum device to use for computations. Currently only "Garnet" is available - IQM's superconducting quantum processor with native two-qubit gates and optimized for near-term algorithms.

aws_access_key str | QpuToken | None

The AWS access key

aws_secret_access_key str | QpuToken | None

The AWS secret access key

aws_session_token str | QpuToken | None

The AWS session token

aws_access_key class-attribute instance-attribute

aws_access_key: str | QpuToken | None = Field(
    repr=False, exclude=True, default=None
)

aws_secret_access_key class-attribute instance-attribute

aws_secret_access_key: str | QpuToken | None = Field(
    repr=False, exclude=True, default=None
)

aws_session_token class-attribute instance-attribute

aws_session_token: str | QpuToken | None = Field(
    repr=False, exclude=True, default=None
)

device class-attribute instance-attribute

device: Literal['Garnet'] = 'Garnet'

provider property

provider: str

Retrieve the name of the provider.

Returns:

Type Description
str

The name of the provider.

_get_token

_get_token() -> TokenProvider | None

device_provider

device_provider() -> str

Return the device provider identifier.

get_qpu_tokens

get_qpu_tokens() -> TokenProvider | None

Retrieve a QPU token.

This method is intended to be implemented by subclasses to provide the mechanism for fetching the required Quantum Processing Unit (QPU) tokens, if they are required by the solver implementation. The tokens may either be sourced from a TokenProvider object or result in a None if unavailable.

Returns:

Type Description
TokenProvider | None:

An object implementing the TokenProvider interface if tokens are available/needed, otherwise None.