QRyd backend for qoqo quantum computing toolkit
Project description
qoqo-qryd
The qoqo-qryd
python package implements modules to support qoqo usage with quantum computers and quantum computer emulators of the QRydDemo project.
The QRydDemo project builds on quantum computers using Rydberg atoms. qoqo is quantum computing toolkit by HQS Quantum Simulations.
The qoqo-qryd package contains the following functionality:
Interface to the current QRydDemo WebAPI
At the moment QRydDemo WebAPI allows access to Quantum Hardware Emulators of different device topology. qoqo-qryd supports interfacing with the corresponding REST-API with low level calls as well as a high-level backend to qoqo quantum programs. For this it provides the backend APIBackend
to evaluate qoqo quantum programs and the api_devices
module to represent devices available on the emulators.
QRydDemo specific hardware operations (prototype)
Rydberg atom based quantum devices support, in principle, operations not commonly found in other quantum hardware. Changes in device topology are one of these operations. qoqo-qryd adds support for changes in device topology to qoqo via the operations in its pragma_operations
module.
Note that this is a preview prototype and does not represent a finalized set of operations on the QRydDemo hardware.
Local simulator supporting specific hardware operations
qoqo-qryd includes a local QuEST based simulator for quantum devices supporting the Rydberg specific quantum operations. The simulator is intended to let users test the capabilities of quantum hardware with the additional operations.
qoqo-qryd provides the simulator via the SimulatorBackend
qoqo-compatible backend that uses the device prototypes in its qryd_devices
module.
Note that the devices for the simulator do not represent a finalized design for QRydDemo.
Accessing QRydDemo WebAPI
To use the WebAPI, a QRydDemo account is required. Users can register via the online registration form.
Installation
The qoqo-qryd
package is available on PyPi as a source distribution and as precompiled wheels for linux and macOS on the x86 platform. Other platforms need to install from the source distribution.
For both source distribution and pre-built wheels it can be installed via
pip install qoqo-qryd
When building from source qoqo-qryd
requires rust, maturin and cmake to be installed locally. We recommend using rustup to set up a rust toolchain. The pip command should also automatically install maturin to build a python package locally and install it.
For a quick installation of the dependencies you can also use:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install maturin
Documentation
The user documentation is provided on github pages. The API-documentation for qoqo-qryd can be found as an appendix of the user documentation.
Examples
A small collection of example python scripts for the QRydDemo project can be found in the project github repository. The examples include
howto_webapi_qoqo.ipynb
provides an example accessing the QRydDemo's emulator with qoqo.switch_layout_example.py
shows how to construct a QRydDemo device and using the PragmaChangeQrydLayout operation to switch between layouts in a quantum Circuit.shift_qubits_example.py
shows how to construct a QRydDemo device and using the PragmaShiftQrydQubit operation to shift qubits between tweezer positions in a quantum Circuit.multi_qubit_example.py
shows how to use multi-qubit-operations.serialisation_example.py
demonstrates how to serialize a QuantumProgram to JSON format.
OpenSSL
Acknowledgments related to using OpenSSL for http requests:
"This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)."
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com).
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
Built Distributions
Hashes for qoqo_qryd-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdcf0adc594fb74523acdde176d0aff6871a897f4938432dff5c7a6a3651c8e3 |
|
MD5 | 215009680d8f6a951cff8684bb6c81ee |
|
BLAKE2b-256 | 78e2cae37635bead6746b9de3eff0588af818ba1d36abc204c2edc7b64b6eae3 |
Hashes for qoqo_qryd-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fa42956df8849feca2733f8eb3555d1c93509be8e0eef469852c182a41a1475 |
|
MD5 | bdb3f932b5bf44f7f9e120fe4e1154fa |
|
BLAKE2b-256 | 126e0f01622978184516e50f5be0673ccd29290e7946edfb19e7ffa0456bc0ef |
Hashes for qoqo_qryd-0.8.2-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afeef6e6dca3e693177510e5ccd920cc7f25fbca45bdf2a61836383fc6c442dc |
|
MD5 | 34b9e73dc7a6be47aa134a84d911d540 |
|
BLAKE2b-256 | 9b5d85968e300d99283659bc336926e155667ab709896bd1501e4d8b2c177c5d |
Hashes for qoqo_qryd-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9907cce0a6eefb91a22a3611445468bec01305e7063e06cc52ff16d707d9d39c |
|
MD5 | db5df6792d9cbf05dc4a33ceb948aa3c |
|
BLAKE2b-256 | 94f5c93d3eb0f13cf9b29f1dd002231ba8693f370c3582056686dcef57278c03 |
Hashes for qoqo_qryd-0.8.2-cp39-cp39-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0963b98a0c9429ee90d7fe3ba56867e1d78536e8d780686585dfa0679ead9195 |
|
MD5 | 5d1772c51b41105d43262095353c077d |
|
BLAKE2b-256 | 1da8394c6331fe7d2c783c2712bbd6130b296297d9a53188da325696db7d8d5d |
Hashes for qoqo_qryd-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c134151590fc615052c06c9b953b54124d4fee41ad6aecba37a3cf377f088935 |
|
MD5 | 92197a5316705dad1b17d770b0b7db4a |
|
BLAKE2b-256 | 572c02798627c37fe790cc07b8ffcf72581c5a40c291ca20c8be24ea8e6f4ffb |
Hashes for qoqo_qryd-0.8.2-cp38-cp38-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec7a38d87f95f5063f88264d61a05fb9dcbc05b547bb5737859ff729851f6019 |
|
MD5 | f17f81adace1676f84732c32690daa31 |
|
BLAKE2b-256 | 5204fc9024822ab9cbd7fb14de1208bd08c20c80c7142e8be32fc66acea1a90a |
Hashes for qoqo_qryd-0.8.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d263b7ad8fc21a52ffebf032207d34dc495c9fcb021147c23bf581ac6ad301d |
|
MD5 | 678ac97542bfece266e1f86075694c68 |
|
BLAKE2b-256 | b72dc322d6bfd454b4fa1097742e5ba8bf23aa410221664c3ffed90216c2972a |
Hashes for qoqo_qryd-0.8.2-cp37-cp37m-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 172cdc6ed3db6019ee5ff625bb0982e5e6f72631b97531335b4bdd261ad47371 |
|
MD5 | 8967239705ad72c0313c18667ec5720d |
|
BLAKE2b-256 | c44929943f8dcd4b006dfd79155d85442f6701698fc01b0700f9ee037f7f5d0c |