Was ist Amazon Braket?
Amazon Braket ist ein vollständig verwalteter Quantencomputing-Dienst, mit dem Sie Quantencomputer mehrerer Anbieter erkunden und damit experimentieren können — alles über ein einheitliches Python-SDK. Der lokale Simulator ist vollständig kostenlos. Cloud-Simulatoren berechnen eine geringe Gebühr pro Aufgabe. Shots auf echten QPUs werden pro Shot abgerechnet.
Installation & Einrichtung
pip install amazon-braket-sdk
# AWS credentials (needed for cloud features)
# Option 1: AWS CLI
aws configure
# Option 2: Environment variables
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secretKostenloser lokaler Simulator
Der LocalSimulator ist vollständig kostenlos, läuft auf Ihrem Rechner und benötigt kein AWS-Konto.
from braket.circuits import Circuit, FreeParameter
from braket.devices import LocalSimulator
# Free — no AWS credentials needed
device = LocalSimulator()
# Build a Bell state circuit
circuit = Circuit()
circuit.h(0)
circuit.cnot(0, 1)
circuit.probability() # Return outcome probabilities
task = device.run(circuit, shots=0) # shots=0 for exact probabilities
result = task.result()
print(result.values) # [[0.5, 0, 0, 0.5]]
# With sampling (shots)
circuit2 = Circuit().h(0).cnot(0, 1)
task2 = device.run(circuit2, shots=1000)
counts = task2.result().measurement_counts
print(counts) # {'00': ~500, '11': ~500}Parametrische Schaltkreise
from braket.circuits import Circuit, FreeParameter
from braket.devices import LocalSimulator
# FreeParameters for variational circuits
theta = FreeParameter("theta")
phi = FreeParameter("phi")
circuit = Circuit()
circuit.ry(0, theta)
circuit.ry(1, phi)
circuit.cnot(0, 1)
circuit.expectation(observable=braket.Observable.Z() @ braket.Observable.Z(),
target=[0, 1])
device = LocalSimulator()
# Sweep parameters
import numpy as np
for t in np.linspace(0, 2 * np.pi, 20):
task = device.run(circuit, shots=200, inputs={"theta": t, "phi": 0.5})
result = task.result()
print(f"theta={t:.2f}: {result.values}")Cloud-Simulatoren (SV1, DM1, TN1)
from braket.aws import AwsDevice
from braket.circuits import Circuit
# SV1 — Statevector simulator (up to 34 qubits)
sv1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1")
# DM1 — Density matrix with noise (up to 17 qubits)
dm1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/dm1")
# TN1 — Tensor network (up to 50 qubits, sparse circuits)
tn1 = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/tn1")
circuit = Circuit().h(0).cnot(0, 1)
# Note: cloud sims have per-task + compute costs (~$0.075/task)
task = sv1.run(
circuit,
shots=1000,
s3_destination_folder=("your-s3-bucket", "results/")
)
print(task.result().measurement_counts)Echte QPU-Hardware
Braket QPUs are pay-per-shot — see the free real-hardware options and how Braket compares with IBM Quantum before spending anything.
from braket.aws import AwsDevice
from braket.circuits import Circuit
# IonQ Aria (trapped-ion, ~$0.01/shot)
ionq_device = AwsDevice(
"arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1"
)
# Oxford Quantum Circuits (superconducting)
oqc_device = AwsDevice(
"arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy"
)
circuit = Circuit().h(0).cnot(0, 1)
# Check device availability before submitting
print(ionq_device.status)
print(ionq_device.properties.paradigm.qubitCount)
# Submit (costs apply per shot on real hardware)
task = ionq_device.run(circuit, shots=50)
print(task.result().measurement_counts)Keep exploring
Also available via HLQuantum
Want to run the same circuit on multiple backends without rewriting your code? HLQuantum abstracts this SDK (and 5 others) behind a single unified API.
import hlquantum as hlq
qc = hlq.Circuit(2)
qc.h(0).cx(0, 1).measure_all()
# One line to switch between any backend
result = hlq.run(qc, shots=1024) # auto-detect
result = hlq.run(qc, shots=1024, backend="braket") # explicit