Skip to main content

No project description provided

Project description

Stability Client verify process License Code style: Black Python Qiskit

Quantum Serverless client

diagram

Installation

pip install quantum_serverless

Documentation

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

Usage

Step 1: write pattern

  from quantum_serverless import distribute_task, get, get_arguments, save_result

   from qiskit import QuantumCircuit
   from qiskit.circuit.random import random_circuit
   from qiskit.primitives import 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().quasi_dists[0]


   # 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` funciton
   # 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 pattern

   from quantum_serverless import ServerlessProvider, QiskitPattern
   from qiskit.circuit.random import random_circuit

   serverless = ServerlessProvider(
       username="<USERNAME>", 
       password="<PASSWORD>",
       host="<GATEWAY_ADDRESS>",
   )

   # create program
   program = QiskitPattern(
       title="Quickstart",
       entrypoint="pattern.py",
       working_dir="./src"
   )

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

   # run program
   job = serverless.run(
       program=program,
       arguments={
           "circuits": circuits
       }
   )

Step 3: monitor job status

   job.status()
   # 'DONE'
    
   # or get logs
   job.logs()

Step 4: get results

   job.result()
   # {"quasi_dists": [
   #  {"0": 0.25, "1": 0.25, "2": 0.2499999999999999, "3": 0.2499999999999999},
   #  {"0": 0.1512273969460124, "1": 0.0400459556274728, "6": 0.1693190975212014, "7": 0.6394075499053132},
   #  {"0": 0.25, "1": 0.25, "4": 0.2499999999999999, "5": 0.2499999999999999}
   # ]}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quantum_serverless-0.8.1.tar.gz (35.4 kB view details)

Uploaded Source

Built Distribution

quantum_serverless-0.8.1-py3-none-any.whl (52.0 kB view details)

Uploaded Python 3

File details

Details for the file quantum_serverless-0.8.1.tar.gz.

File metadata

  • Download URL: quantum_serverless-0.8.1.tar.gz
  • Upload date:
  • Size: 35.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for quantum_serverless-0.8.1.tar.gz
Algorithm Hash digest
SHA256 3b9db96d38c05f6ca18724a98f6ead991681d486ec1279ad71e4b5c2dffe71b8
MD5 211ced97765ef406ff9491a82ee66b4c
BLAKE2b-256 28e81315e27fddfe90a727dc9dc8b3b51ddf5b22d5a73df506cc7a6643e28703

See more details on using hashes here.

File details

Details for the file quantum_serverless-0.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for quantum_serverless-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5ad111295f3670aaa74b1e3224c58afccbb705331687b6e4911da0ac1d9a0bff
MD5 09d7a641c4779bd5472a6cca648e4c2b
BLAKE2b-256 3a9e33efdf9970be206cb15a856fe0ad2a17103ce5677ab3efc426fbe7ce001e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page