rasqal
A dynamically executed quantum-classical hybrid runtime.
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 3 committers (33.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.5%) to scientific vocabulary
Keywords
Repository
A dynamically executed quantum-classical hybrid runtime.
Basic Info
Statistics
- Stars: 21
- Watchers: 3
- Forks: 5
- Open Issues: 11
- Releases: 9
Topics
Metadata Files
README.md
Projects
Rasqal is a dynamic quantum hybrid runtime with one goal: to statically solve as much of the quantum program as possible before sending what remains to a quantum computer. It's heavily inspired by SAT solvers and interpreters, mixing techniques from both together to dynamically execute, analyze, and solve the IR it gets given.
Forq is an experimental, highly-scalable static analysis data structure for predicting quantum states. It sacrifices absolute precision for scalability and when states get too complex it condenses them, causing the bitstring results to become a predicted range of probabilities rather than a definite answer. When stable, will be available for testing via Rasqals experimental options.
Any papers written about them can found here, and act as a technical deep-dive into their concepts.
Quick Start
Install Rasqal in your favourite Python venv by running pip install rasqal. Our current testing is done with v3.10 of Python.
To run a QIR/LLVM file with a default QASM runner as a backend: ```python from rasqal.simulators import fetchqasmrunner
Create a QASM simulation backend with 20 qubits available.
runtime = fetchqasmrunner(20) runtime.run("pathtoll_file") ```
If your entry-point has arguments that map to Python primitives, you can use them like this: ```python from rasqal.simulators import fetchqasmrunner
Create a QASM simulation backend with 20 qubits available.
runtime = fetchqasmrunner(20) runtime.run("pathtoll_file", ["squirrel", 42]) ```
Any results from the IR are just returned like a normal Python method as long as mapping succeeds: ```python from rasqal.simulators import fetchqasmrunner
Create a QASM simulation backend with 20 qubits available.
runtime = fetchqasmrunner(20) results = runtime.run("pathtoll_file", ["squirrel", 42]) ```
For more complex scenarios check out our quick start, examples, or tests.
Contributing
To start contributing you can either put up PRs with additional features and fixes, which will require you first to build the system locally, or raise bugs, improvements and feature requests via the repositories Issues tab.
Licence
This code in this repository is licensed under the BSD 3-Clause Licence. Please see LICENSE for more information.
Owner
- Name: oqc-community
- Login: oqc-community
- Kind: organization
- Repositories: 1
- Profile: https://github.com/oqc-community
Citation (CITATION.cff)
cff-version: 1.2.0
title: Rasqal
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: John
family-names: Dumbell
email: john.dumbell42@gmail.com
affiliation: Oxford Quantum Circuits (OQC)
repository-code: "https://github.com/oqc-community/rasqal"
url: "https://github.com/oqc-community/rasqal"
abstract: >-
Rasqal is a quantum-classical hybrid runtime that leans on
dynamic execution of hybrid IRs to optimize and synthesize
the circuits it sends to the QPU while executing the
classical parts itself. This approach means all
non-quantum variables are known at runtime, including
results from embedded quantum executions. Such information
is then used to enhance classical execution paths and
optimize circuit synthesis.
license: BSD-3-Clause
license-url: "https://github.com/oqc-community/rasqal/blob/develop/LICENSE"
GitHub Events
Total
- Watch event: 4
- Delete event: 4
- Issue comment event: 2
- Push event: 38
- Pull request event: 6
- Create event: 3
Last Year
- Watch event: 4
- Delete event: 4
- Issue comment event: 2
- Push event: 38
- Pull request event: 6
- Create event: 3
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| John Dumbell | e****y@g****m | 66 |
| Anthony Cabrera | c****m@i****g | 1 |
| John Dumbell | e****y@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 15
- Total pull requests: 78
- Average time to close issues: about 1 month
- Average time to close pull requests: 7 days
- Total issue authors: 1
- Total pull request authors: 3
- Average comments per issue: 0.33
- Average comments per pull request: 0.18
- Merged pull requests: 75
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 19
- Average time to close issues: N/A
- Average time to close pull requests: 19 days
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 0.0
- Average comments per pull request: 0.42
- Merged pull requests: 17
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- chemix-lunacy (16)
Pull Request Authors
- chemix-lunacy (120)
- cabreraam (2)
- owen-oqc (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 34 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 9
- Total maintainers: 1
pypi.org: rasqal
A hybrid quantum-classical analysis/solving runtime.
- Documentation: https://rasqal.readthedocs.io/
- License: BSD-3-Clause
-
Latest release: 0.1.7
published over 1 year ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v3 composite
- cla-assistant/github-action v2.3.0 composite
- normalize-line-endings 0.3 development
- serial_test 0.9 development
- bitvec 1.0
- const-str 0.5
- lazy_static 1.4
- llvm-sys-140 140.0
- log 0.4
- mut_static 5.0
- pytket ~=1.23.0
- qiskit ==0.45.*
- qiskit-aer ==0.13.*
- qiskit-ignis ==0.7.*
- qiskit-optimization ==0.4.*
- actions/cache v4 composite
- ./.github/actions/install-llvm * composite
- ./.github/actions/rust-toolchain * composite
- actions/checkout v4 composite
- actions/download-artifact v4 composite
- actions/setup-python v3 composite
- actions/upload-artifact v4 composite
- pypa/gh-action-pypi-publish release/v1 composite
- ./.github/actions/install-llvm * composite
- ./.github/actions/rust-toolchain * composite
- actions/checkout v4 composite
- actions/setup-python v3 composite
- dill 0.3.9
- docplex 2.28.240
- graphviz 0.20.3
- jinja2 3.1.4
- lark 1.2.2
- markupsafe 2.1.5
- mpmath 1.3.0
- networkx 3.3
- numpy 1.26.4
- pbr 6.1.0
- ply 3.11
- psutil 6.0.0
- python-dateutil 2.9.0.post0
- pytket 1.32.0
- qiskit 0.45.3
- qiskit-aer 0.14.2
- qiskit-algorithms 0.3.0
- qiskit-ignis 0.7.1
- qiskit-optimization 0.6.1
- qiskit-terra 0.45.3
- qsharp 1.9.0
- qwasm 1.0.1
- rasqal 0.1.6
- retworkx 0.15.1
- rustworkx 0.15.1
- scipy 1.14.1
- setuptools 75.1.0
- six 1.16.0
- stevedore 5.3.0
- symengine 0.13.0
- sympy 1.13.3
- typing-extensions 4.12.2
- python ~=3.10
- qsharp ~=1.9.0
- rasqal ~=0.1.6