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.8b1.tar.gz (88.4 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.8b1-py3-none-any.whl (99.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bluequbit-0.18.8b1.tar.gz
Algorithm Hash digest
SHA256 873af0c63a167248a57a13a08f3b8d3a5f655914c1b4f2611dfe1a5d3595cf22
MD5 959e0665d1b4d25fe4001304a9fc2393
BLAKE2b-256 ebac481545ec66598ffae04881227470668262a22834844400696e1400e6ab5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluequbit-0.18.8b1.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.8b1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for bluequbit-0.18.8b1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f62ed8ca599701be3f8a74a98dee9b246ae8cf37fda6aeb3d69820714af3434
MD5 f5504f89d6fcd46afd6b684ca6eff9f3
BLAKE2b-256 ed72b7bf59b518321872e88966a06e1745390b2c1fedb501b3a203177f199cde

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluequbit-0.18.8b1-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