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

Uploaded Python 3

File details

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

File metadata

  • Download URL: bluequbit-0.18.7b1.tar.gz
  • Upload date:
  • Size: 87.9 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.7b1.tar.gz
Algorithm Hash digest
SHA256 4d0666f7c74c16a7e36f94f7d7fd42a649733161dad493291f00b75e20cc18f2
MD5 48953cab6e9f747e3bdef208153ec611
BLAKE2b-256 67ffcf28dcb4d8ef93ba58cfcf50900b3857c1c941fe0afb57ac770a073ac47c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bluequbit-0.18.7b1-py3-none-any.whl
  • Upload date:
  • Size: 99.0 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.7b1-py3-none-any.whl
Algorithm Hash digest
SHA256 11353c2b7aa3f94de3f75acc0b5fc574265564f5d40c1b035b8752bb0eb37879
MD5 62c2324d52e6c6ed8f60aac8f8101e25
BLAKE2b-256 716a581871c88b0626e4afc30ebe843005f3abd6d6e0439b6c542db3605630a5

See more details on using hashes here.

Provenance

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