Ce este Amazon Braket?
Amazon Braket este un serviciu de calcul cuantic complet gestionat care îți permite să explorezi și să experimentezi cu calculatoare cuantice de la mai mulți furnizori — totul printr-un SDK Python consecvent. Simulatorul local este complet gratuit. Simulatoarele cloud percep o taxă mică pe sarcină. Tragerile pe QPU real sunt tarifate per tragere.
Simulator local
Rulează pe mașina ta
Gratuit pentru totdeauna
Simulatoare cloud
SV1, DM1, TN1
~0,075 $/sarcină + calcul
QPU real
Hardware IonQ, OQC
0,01–0,90 $/tragere
Instalare și configurare
terminal
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_secretSimulator local gratuit
Simulatorul LocalSimulator este complet gratuit, rulează pe mașina ta și nu necesită un cont AWS.
braket_local.py
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}Circuite parametrice
braket_parametric.py
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}")Simulatoare cloud (SV1, DM1, TN1)
braket_cloud_sim.py
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)Hardware QPU real
Braket QPUs are pay-per-shot — see the free real-hardware options and how Braket compares with IBM Quantum before spending anything.
braket_hardware.py
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.
python
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