AQTBackend#

class AQTBackend(api_token: str, device_instance: str, workspace: str | None = None)[source]#

A Backend that executes circuits on AQT quantum hardware via AQT ARNICA.

Circuits are transpiled from Qrisp’s internal representation to Qiskit QuantumCircuit objects and submitted through AQT’s AQTSampler primitive. An AQTJob handle is returned immediately. Call Job.result() to block and retrieve the JobResult.

For further details, see the Backend documentation and the AQT ARNICA website.

Note

Requires the optional dependency qiskit-aqt-provider:

pip install qiskit-aqt-provider

Note

AQTSampler returns quasi-probability distributions (float values that sum to 1.0) rather than integer counts. These are returned as-is and are handled by Qrisp’s measurement normalisation logic.

Parameters:
api_tokenstr

API token for AQT ARNICA.

device_instancestr

The device instance to target, e.g. "ibex" or "simulator_noise". The offline simulators "offline_simulator_no_noise" and "offline_simulator_noise" are available with any API token. For an up-to-date list see the AQT ARNICA website.

workspacestr | None = None

The workspace identifier for your company or project.

Examples

We evaluate a QuantumFloat multiplication on the 12-qubit AQT IBEX:

>>> from qrisp import QuantumFloat
>>> from qrisp.interface import AQTBackend
>>> qrisp_ibex = AQTBackend(
...     api_token="YOUR_AQT_ARNICA_TOKEN",
...     device_instance="ibex",
...     workspace="YOUR_COMPANY_OR_PROJECT_NAME",
... )
>>> a = QuantumFloat(2)
>>> a[:] = 2
>>> b = a * a
>>> b.get_measurement(backend=qrisp_ibex, shots=100)
{4: 0.49, 8: 0.11, 2: 0.08, 0: 0.06, ...}
AQTBackend.run_async(circuits, shots: int | list[int] | None = None) AQTJob[source]#

Transpile and submit one or more circuits to the AQT backend.

This method returns an AQTJob immediately. Call Job.result on the returned object to block and retrieve the JobResult.

Parameters:
circuitsQuantumCircuit or Sequence[QuantumCircuit]

One Qrisp circuit or a sequence of Qrisp circuits to execute.

shotsint or list[int] or None, optional

Number of shots. If None, the backend’s shots option is used. If a list[int] is provided, the AQT sampler does not support per-circuit shot counts, so all circuits are run at max(shots) and a UserWarning is emitted.

Returns:
AQTJob