Skip to main content

Python SDK to BlueQubit app

Project description

BlueQubit Python SDK

BlueQubit Python SDK is a quantum computing SDK that lets you build, optimize, and run quantum circuits on BlueQubit platform from Python. Whether you need quantum simulation on large CPU/GPU devices or quantum circuit optimization at scale, this quantum development kit has you covered.

Quick Start

  1. Register on https://app.bluequbit.io and copy the API token.

  2. Install Python SDK from PyPI:

    pip install bluequbit
  1. Import and initialize the SDK (importing also Qiskit for circuit building):
    import qiskit

    import bluequbit

    bq_client = bluequbit.init("<token>")
  1. An example of how to run a Qiskit circuit using the SDK:
    qc_qiskit = qiskit.QuantumCircuit(2)
    qc_qiskit.h(0)
    qc_qiskit.x(1)

    job_result = bq_client.run(qc_qiskit, job_name="testing_1")

    state_vector = job_result.get_statevector() 
    # returns a NumPy array of [0. +0.j 0. +0.j 0.70710677+0.j 0.70710677+0.j]
  1. Here is an example to run the previous code asynchronously:
    # This line is non-blocking.
    job = bq_client.run(qc_qiskit, job_name="testing_1", asynchronous=True)

    # This line blocks until the job is completed.
    job_result = bq_client.wait(job.job_id)

    # If you want to cancel a pending job.
    bq_client.cancel(job.job_id)
  1. This is how you can use our mps.cpu device:
    # a 40 qubit GHZ state
    num_qubits = 40
    qc = qiskit.QuantumCircuit(num_qubits)
    qc.h(0)
    for i in range(num_qubits - 1):
        qc.cx(i, i+1)
    
    qc.measure_all()
    
    options = {
        "mps_bond_dimension": 2,
    }
    result = bq_client.run(qc, device="mps.cpu", options=options) # should take ~30seconds
    print(result.get_counts())

The mps.gpu device can be used in the same way. Note that while mps.gpu is faster, you need to have a certain amount of minimal balance to be able to use it.

  1. An example of how to use our Pauli Path Simulator to compute observable expectations:
    qc = qiskit.QuantumCircuit(3)
    qc.h(0)
    qc.h(1)
    qc.h(2)
    qc.ry(0.3, 0)
    qc.rz(0.6, 1)
    qc.rx(0.7, 2)

    # observable
    pauli_sum = [
        ("XYZ", -0.5),
        ("XXX", 0.2),
        ("XII", 0.3),
        ("III", 0.4),
    ]

    options = {
        "pauli_path_truncation_threshold": 0.1,
    }
    result = bq_client.run(qc, device="pauli-path", pauli_sum=pauli_sum, options=options)
    expectation_value = result.expectation_value
    # returns 0.9411262759533625
  1. An example of how to run a Pennylane circuit:
    import pennylane as qml
    from pennylane import numpy as np
    
    # use "bluequbit.cpu" device name to run on CPU
    dev = qml.device("bluequbit.cpu", wires=1, token="<token>")
    # use "bluequbit.gpu" device name to run on GPU
    # dev = qml.device("bluequbit.gpu", wires=1, token="<token>")
    
    @qml.qnode(dev)
    def circuit(angle):
        qml.RY(angle, wires=0)
        return qml.probs(wires=0)
    
    
    probabilities = circuit(np.pi / 4)
    # returns a NumPy array of [0.85355339 0.14644661]

To use the Pennylane plugin, you must have pennylane version 0.39 or above installed. bluequbit.cpu supports Pennylane circuits with up to 32 qubits (wires). bluequbit.gpu supports Pennylane circuits with up to 33 qubits (wires).

  1. This SDK requires Python versions 3.10 or above. The package is tested extensively on Python 3.10.

Full reference

Please find detailed reference at https://app.bluequbit.io/sdk-docs.

Questions and Issues

Please submit questions and issues to info@bluequbit.io.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

bluequbit-0.18.5b1.tar.gz (87.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bluequbit-0.18.5b1-py3-none-any.whl (98.8 kB view details)

Uploaded Python 3

File details

Details for the file bluequbit-0.18.5b1.tar.gz.

File metadata

  • Download URL: bluequbit-0.18.5b1.tar.gz
  • Upload date:
  • Size: 87.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bluequbit-0.18.5b1.tar.gz
Algorithm Hash digest
SHA256 05c6a6dce8aaea0ed01350fbfbb853f8f1464481f5fb60bb9e1b52eacd5530ce
MD5 e8ac7cf8164d811f705242f46cbde088
BLAKE2b-256 e9c7a0b8dabd25cf41bc9417d876b312c8a37dbcd8326a7532b496a7e222347a

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluequbit-0.18.5b1.tar.gz:

Publisher: release.yml on BlueQubitDev/bluequbit-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bluequbit-0.18.5b1-py3-none-any.whl.

File metadata

  • Download URL: bluequbit-0.18.5b1-py3-none-any.whl
  • Upload date:
  • Size: 98.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bluequbit-0.18.5b1-py3-none-any.whl
Algorithm Hash digest
SHA256 c093739ca7b8bb79d4a93c5dc56570d2ae06f9f2ace07f96a888b2c5bd0c418f
MD5 ceee9686106c35ddac7e766a8c00ca20
BLAKE2b-256 ce84b810670f39de71362dc7795418e5f30c008e97e8591c8e9edd3d4ec3eb4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluequbit-0.18.5b1-py3-none-any.whl:

Publisher: release.yml on BlueQubitDev/bluequbit-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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