Skip to main content

Stability Client verify process License Code style: Black Python Qiskit

Qiskit Serverless client

diagram

Installation

To install the latest release of the client, run:

pip install qiskit-serverless

Ray is an optional dependency, needed only for the Ray runner. Install it with the ray extra:

pip install qiskit-serverless[ray]

To install an editable package from source, run:

pip install -r requirements.txt -r requirements-dev.txt
pip install -e .

Documentation

Full docs can be found at https://qiskit.github.io/qiskit-serverless/

Usage

Step 1: write function in ./src/function.py

import ray

from qiskit_serverless import get_arguments, save_result

from qiskit import QuantumCircuit
from qiskit.circuit.random import random_circuit
from qiskit.primitives import StatevectorSampler as Sampler
from qiskit.quantum_info import SparsePauliOp

# 1. let's annotate out function to convert it
# to distributed async function
# using Ray's `ray.remote` decorator
@ray.remote
def distributed_sample(circuit: QuantumCircuit):
    """Calculates quasi dists as a distributed function."""
    return Sampler().run([(circuit)]).result()[0].data.meas.get_counts()

# 2. our program will have one arguments
# `circuits` which will store list of circuits
# we want to sample in parallel.
# Let's use `get_arguments` function
# to access all program arguments
arguments = get_arguments()
circuits = arguments.get("circuits", [])

# 3. run our functions in a loop
# and get execution references back
function_references = [
    distributed_sample.remote(circuit)
    for circuit in circuits
]

# 4. `ray.get` will collect all
# results from distributed functions
collected_results = ray.get(function_references)

# 5. `save_result` will save results of program execution
# so we can access it later
save_result({
    "quasi_dists": collected_results
})

Step 2: run function

from qiskit_serverless import ServerlessClient, QiskitFunction
from qiskit.circuit.random import random_circuit

client = ServerlessClient(
    token="<TOKEN>",
    host="<GATEWAY_ADDRESS>",
)

# create function
function = QiskitFunction(
    title="Quickstart",
    entrypoint="program.py",
    working_dir="./src"
)
client.upload(function)

# create inputs to our program
circuits = []
for _ in range(3):
    circuit = random_circuit(3, 2)
    circuit.measure_all()
    circuits.append(circuit)

# run program
my_function = client.get("Quickstart")
job = my_function.run(circuits=circuits)

Step 3: monitor job status

job.status()
# 'DONE'

# or get logs
job.logs()

Step 4: get results

job.result()
# {'quasi_dists': [
# {'101': 902, '011': 66, '110': 2, '111': 37, '100': 17},
# {'100': 626, '101': 267, '001': 49, '000': 82},
# {'010': 145, '100': 126, '011': 127, '001': 89, '110': 173, '111': 166, '000': 94, '101': 104}
# ]}

Metadata

Release files for qiskit-serverless 0.37.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qiskit-serverless 0.37.0
File Size Uploaded
qiskit_serverless-0.37.0.tar.gz 70.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qiskit-serverless 0.37.0
File Interpreter ABI Platform
qiskit_serverless-0.37.0-py3-none-any.whl Python 3 none any Details

Total release size: 159.7 kB

Release files / qiskit_serverless-0.37.0.tar.gz

Download URL qiskit_serverless-0.37.0.tar.gz
Size 70.0 kB
Tags Source
SHA-256 checksum
How to use checksums
76c338cbd4c372a4930e5f2a3cbf475938afa6d1ee6ac0279c39413d9d16cbca
BLAKE2b-256 checksum
How to use checksums
2ef7db6173d0fda4ce4fe7b5e2b1d115569ce240a9fb3a765fdfab18bd3b2145
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / qiskit_serverless-0.37.0-py3-none-any.whl

Download URL qiskit_serverless-0.37.0-py3-none-any.whl
Size 89.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e21d758ad3ffe9801dc6806fca6df496490531ab31a90ca8886f2ced61b91a7
BLAKE2b-256 checksum
How to use checksums
65c9a6341a13de2ab808f2f5bf74edceec6b4e385c656401b7a2f06344abdb94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.37.0 This release

2 release files

0.35.1

2 release files

0.35.0

2 release files

0.34.0

2 release files

0.31.0

2 release files

0.30.1

2 release files

0.29.0

2 release files

0.27.0

1 release file

0.26.1

1 release file

0.26.0

1 release file

0.25.4

1 release file

0.25.3

1 release file

0.25.2

1 release file

0.25.1

1 release file

0.25.0

1 release file

0.24.0

1 release file

0.23.0

1 release file

0.21.1

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.18.1

2 release files

0.17.0

2 release files

0.16.3

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.15.2

2 release files

0.15.1

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.11.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page