Skip to content

IonQ

IonQ Backend

IonQ's quantum computers are universal, gate-based devices based on the trapped ion framework. Specifically they use trapped ytterbium ions that are modified with squences of laser pulses to achieve computation. IonQ's quantum hardware is accessed through Amazon Braket. Find out more about IonQ's hardware here.

IonQ provides several quantum computing devices, including IonQ Harmony with up to 11 qubits, IonQ Aria featuring up to 25 qubits, and IonQ Forte, their most advanced system with 32 qubits.

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 IonQ backend with:

from luna_quantum.solve.parameters.backends import IonQ

backend = IonQ(
    aws_access_key=None,
    aws_secret_access_key=None,
    aws_session_token=None,
    device='Aria1'
)

API-Reference

IonQ

Bases: AWSBackendBase

Configuration parameters for IonQ quantum backends, accessed via AWS.

Attributes:

Name Type Description
device Literal["Aria1", "Aria2", "Forte1", "ForteEnterprise1"], default="Aria1"

The specific IonQ quantum device to use for computations. Options are:

  • "Aria1": IonQ's flagship trapped-ion quantum computer
  • "Aria2": Next-generation IonQ system with improved connectivity
  • "Forte1": IonQ's enterprise-grade quantum system
  • "ForteEnterprise1": Enhanced enterprise version with dedicated access

Different devices have varying characteristics such as qubit count, connectivity, and error rates.

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['Aria1', 'Aria2', 'Forte1', 'ForteEnterprise1'] = 'Aria1'

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.