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.3-cp37-abi3-win_amd64.whl (10.8 MB view details)

Uploaded CPython 3.7+ Windows x86-64

rasqal-0.1.3-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.3-cp37-abi3-macosx_11_0_arm64.whl (10.0 MB view details)

Uploaded CPython 3.7+ macOS 11.0+ ARM64

rasqal-0.1.3-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.3-cp37-abi3-win_amd64.whl.

File metadata

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

File hashes

Hashes for rasqal-0.1.3-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b45d9b6ac1771a5bdf1c9e90c652269676d606a49ad686ca7b4ec5149d83a6bb
MD5 815aab8587d3aeeb9a87dbb4278c9800
BLAKE2b-256 e195104b5b7c177ea4f8d6b94fb3da4835d200633a81423bf82465380d457cf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rasqal-0.1.3-cp37-abi3-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 5db7c848f1c7991ebd3295e5defc089e83882f355279e70219ce2bc01d0a3ea0
MD5 c9251406fbab766fbe1fa0c4e76edb02
BLAKE2b-256 3dc552e0d9d77e4a9e126dcba6c381cdfb5ba5d0258545a52985d3bfcd257f7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rasqal-0.1.3-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27cca49714c98ceba1699dfc6229d52dec5cdfd8ced69aedc27ad4809d6edbc6
MD5 2c0a78e718a94d59db15e3588a781cdf
BLAKE2b-256 67e8616cf571f1b51407b81a7eb0efc34978153003a4db64f093add3c6909085

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rasqal-0.1.3-cp37-abi3-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 61c2ef962714aab6ff602c0577a0c0d1f0520aec7ac86cfb83786087994e65ec
MD5 39e7c346a649881048e6212ba081c9fb
BLAKE2b-256 81fefc15dce4a1879d621ae8f6683c36f2c78003b213b6ced8799b7339525baf

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