Scaleway provider for Pulser
Scaleway provider implementation to use neutral atoms based quantum computers.
Pulser Scaleway is a Python package to run quantum sequence on Scaleway infrastructure, providing access to Pasqal neutral atom quantum computers.
More info on the Quantum service web page.
Installation
We encourage installing Scaleway provider via the pip tool (a Python package manager):
pip install pulser-scaleway
Getting started
To instantiate the ScalewayProvider, you need to have an access token and a project_id
from pulser_scaleway import ScalewayProvider
qaas_connection = ScalewayProvider(
project_id=os.environ["PULSER_SCALEWAY_PROJECT_ID"],
secret_key=os.environ["PULSER_SCALEWAY_SECRET_KEY"],
)
Alternatively, the ScalewayProvider can discover your access token from environment variables:
export PULSER_SCALEWAY_PROJECT_ID="project_id"
export PULSER_SCALEWAY_SECRET_KEY="token"
Then you can instantiate the provider without any arguments:
from pulser_scaleway import ScalewayProvider
qaas_connection = ScalewayProvider()
Now you have access to the supported backends and can design your pulse sequence. See the technical documentation on how to write a sequence.
# Retrieve all QPU devices (emulated or real)
devices = qaas_connection.fetch_available_devices()
fresnel_device = devices["QPU-FRESNEL-100PQ-FR"]
# Create a register of trapped atoms before performing operation on them
register = Register.square(5, 5).with_automatic_layout(fresnel_device)
# Declare the sequence of pulses to perform on the register
sequence = Sequence(register, fresnel_device)
sequence.declare_channel("rydberg_global", "rydberg_global")
t = sequence.declare_variable("t", dtype=int)
amp_wf = BlackmanWaveform(t, np.pi)
det_wf = RampWaveform(t, -5, 5)
sequence.add(Pulse(amp_wf, det_wf, 0), "rydberg_global")
# Declare a backend based on the sequence and remote connection
backend = QPUBackend(sequence=sequence, connection=qaas_connection)
# Run jobs with different arguments over the same sequence and register
results = backend.run(
job_params=[
{"runs": 100, "variables": {"t": 1000}},
{"runs": 20, "variables": {"t": 2000}},
],
wait=True,
)
Development
This repository is at its 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
Metadata
Release files for pulser-scaleway 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pulser_scaleway-0.1.7.tar.gz | 10.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pulser_scaleway-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.7 kB
Release files / pulser_scaleway-0.1.7.tar.gz
| Download URL | pulser_scaleway-0.1.7.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4b6cd2152550ffd74e6c2bd2a57090037fe06a9394a886a57657597a1c74c0c1
|
|
BLAKE2b-256 checksum How to use checksums |
7b512c16611a0f24bbef1839d98c30c8c33fad53b974d5ef3d7a9abf574a8d6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / pulser_scaleway-0.1.7-py3-none-any.whl
| Download URL | pulser_scaleway-0.1.7-py3-none-any.whl |
|---|---|
| Size | 11.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0c563de6b14848fefaae81deec88f55d194ce157a318c99e9f89bb718f3beddd
|
|
BLAKE2b-256 checksum How to use checksums |
dbe98f0f2750801f806bf49b2b15f130e6f0a32848b3eb9b4131c250bd45e491
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|