Skip to main content

A Pennylane-compatible package to run pennylane circuits on Scaleway Quantum as a Service

Project description

Pennylane Logo × Scaleway Logo

Pennylane devices running on Scaleway's Quantum-as-a-Service

Pennylane is an open-source framework for quantum machine learning, automatic differentiation, and optimization of hybrid quantum-classical computations.

Pennylane-Scaleway is a Python package to run pennylane's QML circuits on Scaleway infrastructure, providing access to:

  • Aer state vector and tensor network multi-GPU emulators
  • AQT trapped-ions quantum computers
  • IQM superconducting quantum computers
  • CUDA-Q NVIDIA's quantum framework
  • qsim Google's full state-vector simulator
  • QPerfect QPerfect's state-vector simulator
  • Quobly silicon spin qubits emulators by Quobly

More info on the Quantum service web page.

Installation

Prerequisites

Get your project-id as well as secret-key credentials from your Scaleway account. You can create and find them in the Scaleway console. Here how to create an API key.

For more information about the device you want to use, its pricing and capabilities, you can visit this page. Use the backend parameter to select the device you want to use (for instance backend="EMU-IBEX-12PQ-L4" if you want to try AQT emulation using a L4 GPU).

Supported device names

The following device names are supported:

  • scaleway.aer - Aer emulation, offers flexibility, noiseless by default but can handle given Aer's noise models, large choice of backends.
  • scaleway.aqt - AQT (Alpine Quantum Technologies), noisy trapped-ions based quantum computers.
  • scaleway.iqm - IQM, superconducting quantum computers.
  • scaleway.cudaq - NVIDIA, emulation framework.
  • scaleway.qsim - Google, full state-vector simulator.
  • scaleway.qperfect - QPerfect, state-vector simulator.
  • scaleway.quobly - Quobly's emulator.

Install the package

We encourage installing Scaleway provider via pip:

pip install pennylane-scaleway

Getting started

To run your pennylane's circuits on Scaleway's quantum backends, simply change your device's name and add your project_id and secret_key (OR set the environment variables SCW_PROJECT_ID and SCW_SECRET_KEY):

import pennylane as qml # No need to import pennylane-scaleway as long as it is installed in your current environment.

device = qml.device("scaleway.aer",
        wires=2,
        project_id=<your-project-id>,   # Or set SCW_PROJECT_ID environment variable
        secret_key=<your-secret-key>,   # Or set SCW_SECRET_KEY environment variable
        backend="EMU-AER-16C-128M"
    )

@qml.set_shots(512)
@qml.qnode(device)
def my_circuit():
    qml.Hadamard(wires=0)
    qml.CNOT(wires=[0, 1])
    return qml.counts()

print(my_circuit())

device.stop() # Don't forget to close the session when you're done!

You can also use the device as a context manager so your session is automatically closed when exiting the context:

import pennylane as qml

with qml.device("scaleway.aqt",
    project_id=<your-project-id>,
    secret_key=<your-secret-key>,
    backend="EMU-IBEX-12PQ-L4",
) as dev:

    @qml.set_shots(512)
    @qml.qnode(dev)
    def circuit():
        qml.Hadamard(wires=0)
        qml.CNOT(wires=[0, 1])
        return qml.counts()

    print(circuit())

Friendly reminder to avoid writing your credentials directly in your code. Use environment variables instead, load from a .env file or any secret management technique of your choice.

Session management

A QPU session is automatically created when you instantiate a device. You can manage it manually by calling device.start() and device.stop(), but it is recommended to use the context manager approach instead. You may also attach to an existing session, handle maximum session duration and idle duration by setting these as keyword arguments when instantiating the device. For example:

import pennylane as qml

with qml.device("scaleway.aer",
    wires=2,
    project_id=<your-project-id>,
    secret_key=<your-secret-key>,
    backend="EMU-AER-16C-128M",
    max_duration="1h",
    max_idle_duration="5m"
) as dev:
...

You can visualize your sessions on the Scaleway Console under the Labs/Quantum section.

Documentation

Documentation is available at Scaleway Docs.

You can find examples under the examples folder of this repository.

Development

This repository is in a very early stage and is still in active development. If you are looking for a way to contribute please read CONTRIBUTING.md.

Reach us

We love feedback! Feel free to reach us on Scaleway Slack community, we are waiting for you on #opensource.

License

License Apache 2.0

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

pennylane_scaleway-0.3.4.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

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

pennylane_scaleway-0.3.4-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file pennylane_scaleway-0.3.4.tar.gz.

File metadata

  • Download URL: pennylane_scaleway-0.3.4.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pennylane_scaleway-0.3.4.tar.gz
Algorithm Hash digest
SHA256 9fdf9703903cb1328ab92c7b4aee5f1dce77b33fe8b15d5010cefba9ed0e9807
MD5 8a580f46463e5ba6f8e7d21b3cac7772
BLAKE2b-256 8acd06c5f61825a709e4c24933f862341316e5e8ec5cdcdb858839b56e7fbd35

See more details on using hashes here.

File details

Details for the file pennylane_scaleway-0.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for pennylane_scaleway-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 dbd50deed272c9f0dec717e1a680bdcab216eb5e419da77a0bbe3aa6769a14ab
MD5 6d503dcf498b19f3c31be17483dfc5f6
BLAKE2b-256 0b2b38717996a5c4111bb977aebce53258fd968bc3e4693dd815b4871b3fc222

See more details on using hashes here.

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