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_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)💡
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