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.2.tar.gz (35.6 kB view details)

Uploaded Source

Built Distribution

quantum_serverless-0.8.2-py3-none-any.whl (52.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quantum_serverless-0.8.2.tar.gz
  • Upload date:
  • Size: 35.6 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.2.tar.gz
Algorithm Hash digest
SHA256 460dc6b8ab95aa1da97fd6e29a8026f6362625d9843b2d01467193e627b4f265
MD5 9afb946910fc5d93d67d188adb2a2bd1
BLAKE2b-256 18e2dc38e28fe017fddf808dc7a75d637251ca0d02b071a7f50f199091e2a0c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantum_serverless-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 434145bef7fc3ee674551ca84df4d24fbc5f1ba11e65e59ebbe97e2882709d7e
MD5 685a9d982a0176541427d76c10f7d73d
BLAKE2b-256 62a9f0171d65cf06a478f8d6379e35a9c722be62c0dca117e1d53158ce681d81

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