Liking cljdoc? Tell your friends :D

org.soulspace.qclojure.adapter.backend.pricing

Functions for calculating pricing for quantum jobs on AWS Braket.

This namespace provides cost estimation for quantum circuits based on actual device pricing data from AWS Braket device capabilities.

Pricing models:

  • QPU devices: flat per-task fee ($0.30) + per-shot fee (device-specific)
  • Simulators: per-minute fee (device-specific), estimated from circuit complexity

Pricing data sources (in order of preference):

  1. Device capabilities from GetDevice API (:capabilities -> :service -> :device-cost)
  2. AWS Pricing API (fallback)
  3. Hardcoded fallback values (last resort)

The per-shot prices vary by device and are available in the device capabilities map under [:service :device-cost {:price <number> :unit <string>}]. The per-task fee of $0.30 is uniform across all QPUs.

Functions for calculating pricing for quantum jobs on AWS Braket.

This namespace provides cost estimation for quantum circuits based on
actual device pricing data from AWS Braket device capabilities.

Pricing models:
- QPU devices: flat per-task fee ($0.30) + per-shot fee (device-specific)
- Simulators: per-minute fee (device-specific), estimated from circuit complexity

Pricing data sources (in order of preference):
1. Device capabilities from GetDevice API (:capabilities -> :service -> :device-cost)
2. AWS Pricing API (fallback)
3. Hardcoded fallback values (last resort)

The per-shot prices vary by device and are available in the device capabilities
map under [:service :device-cost {:price <number> :unit <string>}].
The per-task fee of $0.30 is uniform across all QPUs.
raw docstring

create-pricing-clientclj

(create-pricing-client)
(create-pricing-client config-overrides)

Creates an AWS Pricing client with optional configuration overrides.

Parameters:

  • config-overrides: Map of configuration overrides (optional)

Returns: AWS Pricing client instance

Note: The Pricing API is only available in us-east-1 and ap-south-1 regions.

Creates an AWS Pricing client with optional configuration overrides.

Parameters:
- config-overrides: Map of configuration overrides (optional)

Returns:
AWS Pricing client instance

Note:
The Pricing API is only available in us-east-1 and ap-south-1 regions.
sourceraw docstring

device-pricingclj

(device-pricing backend device-arn)

Resolve pricing data for a device, using a cascading strategy:

  1. Check pricing cache (24h TTL)
  2. Read from device capabilities (GetDevice API)
  3. Fall back to AWS Pricing API
  4. Use hardcoded fallback values

Parameters:

  • backend: BraketBackend instance
  • device-arn: Device ARN string

Returns: Map with :device-cost {:price <n> :unit <s>}, :source, and :cached-at.

Resolve pricing data for a device, using a cascading strategy:
1. Check pricing cache (24h TTL)
2. Read from device capabilities (GetDevice API)
3. Fall back to AWS Pricing API
4. Use hardcoded fallback values

Parameters:
- backend: BraketBackend instance
- device-arn: Device ARN string

Returns:
Map with :device-cost {:price <n> :unit <s>}, :source, and :cached-at.
sourceraw docstring

estimate-costclj

(estimate-cost backend circuits options)
(estimate-cost backend circuits device-arn options)

Estimate the cost of executing quantum circuit(s) on AWS Braket.

Uses actual device pricing from device capabilities when available, falling back to Pricing API and then hardcoded values.

QPU pricing: $0.30 per task + device-specific per-shot price. Simulator pricing: device-specific per-minute price (estimated from circuit complexity).

Parameters:

  • backend: BraketBackend instance
  • circuits: single circuit or collection of circuits
  • options: execution options including :shots (default 1000)
  • device-arn: (optional) device ARN; defaults to current device

Returns: Map with :total-cost, :currency, :pricing-model, :cost-breakdown, and :pricing-source.

Estimate the cost of executing quantum circuit(s) on AWS Braket.

Uses actual device pricing from device capabilities when available,
falling back to Pricing API and then hardcoded values.

QPU pricing: $0.30 per task + device-specific per-shot price.
Simulator pricing: device-specific per-minute price (estimated from
circuit complexity).

Parameters:
- backend: BraketBackend instance
- circuits: single circuit or collection of circuits
- options: execution options including :shots (default 1000)
- device-arn: (optional) device ARN; defaults to current device

Returns:
Map with :total-cost, :currency, :pricing-model, :cost-breakdown,
and :pricing-source.
sourceraw docstring

estimate-simulator-minutesclj

(estimate-simulator-minutes circuit shots)

Estimate simulator execution time in minutes from circuit properties.

This is a rough heuristic for cost estimation purposes. Actual execution time depends on many factors including circuit structure, number of qubits, entanglement, and simulator type.

Parameters:

  • circuit: quantum circuit map (or first circuit if sequential)
  • shots: number of shots

Returns: Estimated execution time in minutes (minimum 1 minute).

Estimate simulator execution time in minutes from circuit properties.

This is a rough heuristic for cost estimation purposes.
Actual execution time depends on many factors including circuit
structure, number of qubits, entanglement, and simulator type.

Parameters:
- circuit: quantum circuit map (or first circuit if sequential)
- shots: number of shots

Returns:
Estimated execution time in minutes (minimum 1 minute).
sourceraw docstring

parse-braket-pricingclj

(parse-braket-pricing pricing-products)

Parse Braket pricing from AWS Pricing API response.

Extracts per-task and per-shot prices from the Pricing API product list. Uses a functional reduce instead of atoms.

Parameters:

  • pricing-products: Collection of JSON product strings from AWS Pricing API

Returns: {:price-per-task <number>, :price-per-shot <number>, :currency "USD"} or {:error ...} on failure.

Parse Braket pricing from AWS Pricing API response.

Extracts per-task and per-shot prices from the Pricing API product list.
Uses a functional reduce instead of atoms.

Parameters:
- pricing-products: Collection of JSON product strings from AWS Pricing API

Returns:
{:price-per-task <number>, :price-per-shot <number>, :currency "USD"} 
or {:error ...} on failure.
sourceraw docstring

per-task-feeclj

Uniform per-task fee for all Braket QPU devices (USD). Per AWS Braket pricing: https://aws.amazon.com/braket/pricing/

Uniform per-task fee for all Braket QPU devices (USD).
Per AWS Braket pricing: https://aws.amazon.com/braket/pricing/
sourceraw docstring

query-braket-pricingclj

(query-braket-pricing pricing-client service-code region)

Query AWS Pricing API for Braket service pricing.

This is a fallback mechanism used when device capabilities don't contain pricing data.

Parameters:

  • pricing-client: AWS Pricing API client
  • service-code: Service code (e.g., "AmazonBraket")
  • region: AWS region name

Returns: {:products [...]} on success, {:error ...} on failure.

Query AWS Pricing API for Braket service pricing.

This is a fallback mechanism used when device capabilities
don't contain pricing data.

Parameters:
- pricing-client: AWS Pricing API client
- service-code: Service code (e.g., "AmazonBraket")
- region: AWS region name

Returns:
{:products [...]} on success, {:error ...} on failure.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close