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 funtion in ./src/function.py

from qiskit_serverless import distribute_task, get, 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 `distribute_task` decorator
@distribute_task()
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(circuit)
    for circuit in circuits
]

# 4. `get` function will collect all
# results from distributed functions
collected_results = 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.36.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.36.0
File Size Uploaded
qiskit_serverless-0.36.0.tar.gz 74.1 kB Details

Built distribution (wheel)

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

Total release size: 169.4 kB

Release files / qiskit_serverless-0.36.0.tar.gz

Download URL qiskit_serverless-0.36.0.tar.gz
Size 74.1 kB
Tags Source
SHA-256 checksum
How to use checksums
54f8f7d94d30766731f83ca468cc540fe0c24d2873cf729fa44fe0bbc5aabd4f
BLAKE2b-256 checksum
How to use checksums
e03a76c68738eb6eb0788c2d12db8f6cf50b043e532237b77829f113740c9131
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.36.0-py3-none-any.whl

Download URL qiskit_serverless-0.36.0-py3-none-any.whl
Size 95.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6e909d782cc82580d4e6c3dd026eceb8405b78ab051d44ba9e71ee7d2be87bc5
BLAKE2b-256 checksum
How to use checksums
e5c88ed7cf48d93a4ce74e1ea8ef2f7ad0cfbfebddab9406b9a6a7ed89e49451
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.36.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