Amazon Braket provides access to quantum computing hardware from multiple providers, as well as high-performance quantum simulators. This guide covers the available devices, their capabilities, and how to use them with QClojure.
arn:aws:braket:::device/quantum-simulator/amazon/sv1
arn:aws:braket:::device/quantum-simulator/amazon/tn1
arn:aws:braket:::device/quantum-simulator/amazon/dm1
arn:aws:braket:us-west-1::device/qpu/rigetti/aspen-m-3
Characteristics:
arn:aws:braket:us-east-1::device/qpu/ionq/aria-1
arn:aws:braket:us-east-1::device/qpu/ionq/forte-1
Characteristics:
arn:aws:braket:eu-north-1::device/qpu/iqm/garnet
arn:aws:braket:eu-west-2::device/qpu/oqc/lucy
arn:aws:braket:us-east-1::device/qpu/quera/aquila
Characteristics:
;; Use simulator for development
(def sim-backend
(braket/create-braket-simulator {:s3-bucket "my-bucket"}))
;; Use specific QPU
(def rigetti-backend
(braket/create-braket-qpu "arn:aws:braket:us-west-1::device/qpu/rigetti/aspen-m-3"
{:s3-bucket "my-bucket"
:region "us-west-1"}))
;; Get provider-specific information
(braket/get-provider-info sim-backend :rigetti)
;; => {:provider :rigetti
;; :supported-gates #{:rz :rx :cz :i :measure}
;; :constraints {:max-qubits 80, :native-connectivity :grid}
;; :pricing-multiplier 1.0}
(braket/get-provider-info sim-backend :ionq)
;; => {:provider :ionq
;; :supported-gates #{:rx :ry :rz :xx :i :measure}
;; :constraints {:max-qubits 32, :native-connectivity :all-to-all}
;; :pricing-multiplier 2.5}
The QClojure Braket backend automatically optimizes circuits for each provider:
;; Check device status
(braket/get-device-info backend "arn:aws:braket:us-east-1::device/qpu/ionq/aria-1")
;; => {:provider :ionq
;; :status :online
;; :availability-window {:start "2025-08-27T10:00:00Z"
;; :end "2025-08-27T18:00:00Z"}
;; :queue-depth 5}
;; Estimate cost before running
(qb/estimate-cost backend circuit {:shots 1000})
;; => {:total-cost 2.45
;; :cost-breakdown {:shots-cost 0.35
;; :task-cost 3.00
;; :provider-multiplier 1.2}}
(def rigetti-circuit
(-> (qc/create-circuit 3)
(qc/h-gate 0)
(qc/cnot-gate 0 2))) ; Non-adjacent, will need SWAP
;; Backend automatically optimizes for Rigetti topology
(qb/submit-circuit rigetti-backend rigetti-circuit
{:shots 1000
:optimize-for-device? true})
(def ionq-circuit
(-> (qc/create-circuit 5)
(qc/h-gate 0)
(qc/cnot-gate 0 4) ; Direct connection possible
(qc/cnot-gate 1 3))) ; No SWAPs needed
(qb/submit-circuit ionq-backend ionq-circuit {:shots 1000})
;; Get all available devices
(braket/list-devices backend)
;; Check specific device
(braket/get-device-info backend device-arn)
;; Check queue status
(braket/get-device-availability backend device-arn)
Device Offline
Queue Delays
Regional Access
For hands-on examples with different devices, see the Braket Tutorial.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
Ctrl+k | Jump to recent docs |
← | Move to previous article |
→ | Move to next article |
Ctrl+/ | Jump to the search field |