Skip to main content

A dynamically executed quantum-classical hybrid optimizing runtime.

Project description

PyPi Deployment

Rasqal is a quantum-classical hybrid runtime which runs QIR in a fully dynamic fashion, building up quantum circuits on the fly and executing them against a provided quantum backend. It uses symbolic execution and heavily deferred execution to perform code transformations, optimizations and lowering to power the circuit synthesis.

Some of the key things this approach enables:

  1. Unrestricted QIR and LLVM instructions fully interwoven. You can throw whatever form of IR you want at it and it'll process all classical bits locally (or lower them).
  2. Enabling hybrid algorithms to be run on machines and tools with only a gate-level API available. This includes QASM API's if you use its simulation framework.
  3. Lots of optimization potential when passed large amounts of classical context that a quantum algorithm uses to accentuate its own execution.

We also have a full feature list and quick intro to its concepts as well as a draft paper that covers its internals in excruciating detail.

If you have any features or ideas you'd like to see implemented feel free to raise a feature request!

Note: Rasqal is still early days and the potential instruction combinations of LLVM and QIR are immense, so we won't have been able to test all of them. If you have a file which dosen't work please raise an issue with it!

Getting Started

  1. Install Rasqal in your favourite Python venv by running pip install rasqal. Our current testing is done with v3.9 of Python.
  2. Read the quick start and look at our Python example.
  3. (Optional) Read the paper for a deep-dive into Rasqals concepts and data structures.

Contributing

If you'd like to contribute your first destination will be to build the system locally. There's also a getting started page that covers some of the most important bits you'd need to know about the project before jumping into writing code.

After that feel free to fork the project and put up PRs with any work you would like to add. All experimental work that isn't ready for prime time has to be disabled by default and have no impact on core execution time and stability.

Thanks for making Rasqal better than it was!

We also have a code of conduct that we expect everyone to adhere too.

Licence

This code in this repository is licensed under the BSD 3-Clause Licence. Please see LICENSE for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

rasqal-0.1.4-cp37-abi3-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.7+ Windows x86-64

rasqal-0.1.4-cp37-abi3-manylinux_2_31_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.7+ manylinux: glibc 2.31+ x86-64

rasqal-0.1.4-cp37-abi3-macosx_11_0_arm64.whl (10.0 MB view details)

Uploaded CPython 3.7+ macOS 11.0+ ARM64

rasqal-0.1.4-cp37-abi3-macosx_10_7_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.7+ macOS 10.7+ x86-64

File details

Details for the file rasqal-0.1.4-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: rasqal-0.1.4-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for rasqal-0.1.4-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 47dd4509880a4ef9568891029b1c7ce5b093612bd5134f743c91cf89bb0388de
MD5 6e146d72bd84a0d0012c9f57f2b52f87
BLAKE2b-256 90032c44d29b49b1862d289713717e57da989886c795c0e9c834c14e0aa1ec3b

See more details on using hashes here.

File details

Details for the file rasqal-0.1.4-cp37-abi3-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for rasqal-0.1.4-cp37-abi3-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 2c8f34c5feedc0be2cf87a3fce049766f02dddb1dffb19409111439720f57af7
MD5 c73c80d671a9313238a55619a511d594
BLAKE2b-256 53c523f67c73fafc6c51d14a341905ecdb114e9d282f1ff58c8f38b12bfb47e1

See more details on using hashes here.

File details

Details for the file rasqal-0.1.4-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rasqal-0.1.4-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 07590766d6f904092243fc3f20b9fcbdede08ae2f7021ad7a9f928726ec5189f
MD5 28f7469d317d1641ae1f65e1195443c9
BLAKE2b-256 549f97d9b0c5c90ca305bc47d67912067b3389332f4671ce87a078c50fa27156

See more details on using hashes here.

File details

Details for the file rasqal-0.1.4-cp37-abi3-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for rasqal-0.1.4-cp37-abi3-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 607c5dc1a677c6c1817d973dc29b931a4e31fb3f01ec7d1ead0d90562c50faf8
MD5 08c1c8dbf1f1e18fe22bbd749d073a1a
BLAKE2b-256 bccd83049d6fa68bcaa6a2d48fa20fe8af71b838147f4dbe18a65c27c0eac62a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page