rasqal

A dynamically executed quantum-classical hybrid runtime.

https://github.com/oqc-community/rasqal

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

llvm python quantum quantum-classical quantum-computing quantum-computing-research runtime rust
Last synced: 6 months ago · JSON representation ·

Repository

A dynamically executed quantum-classical hybrid runtime.

Basic Info
  • Host: GitHub
  • Owner: oqc-community
  • License: other
  • Language: Rust
  • Default Branch: develop
  • Homepage:
  • Size: 81.6 MB
Statistics
  • Stars: 21
  • Watchers: 3
  • Forks: 5
  • Open Issues: 11
  • Releases: 9
Topics
llvm python quantum quantum-classical quantum-computing quantum-computing-research runtime rust
Created almost 2 years ago · Last pushed 8 months ago
Metadata Files
Readme License Code of conduct Citation Codeowners

README.md

PyPi Deployment


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

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

All Time
  • Total Commits: 68
  • Total Committers: 3
  • Avg Commits per committer: 22.667
  • Development Distribution Score (DDS): 0.029
Past Year
  • Commits: 68
  • Committers: 3
  • Avg Commits per committer: 22.667
  • Development Distribution Score (DDS): 0.029
Top Committers
Name Email 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
enhancement (13) experimental (1)
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.

  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 34 Last month
Rankings
Dependent packages count: 9.7%
Average: 37.0%
Dependent repos count: 64.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/build.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/cla-assistant.yaml actions
  • cla-assistant/github-action v2.3.0 composite
src/Cargo.toml cargo
src/build-llvm/Cargo.toml cargo
  • 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
src/rasqal/Cargo.toml cargo
src/tests/qsharp/def-classical-expression/def-classical-expression.csproj nuget
src/tests/qsharp/minified-oracle-generator/minified-oracle-generator.csproj nuget
src/rasqal/pyproject.toml pypi
  • pytket ~=1.23.0
  • qiskit ==0.45.*
  • qiskit-aer ==0.13.*
  • qiskit-ignis ==0.7.*
  • qiskit-optimization ==0.4.*
.github/actions/install-llvm/action.yml actions
  • actions/cache v4 composite
.github/actions/rust-toolchain/action.yml actions
.github/workflows/deploy-wheels.yml actions
  • ./.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/workflows/cache-refresh.yaml actions
  • ./.github/actions/install-llvm * composite
  • ./.github/actions/rust-toolchain * composite
  • actions/checkout v4 composite
  • actions/setup-python v3 composite
src/tests/qsharp/basic-branching/basic-branching.csproj nuget
src/tests/qsharp/basic-loops/basic-loops.csproj nuget
src/tests/qsharp/nested-calls/nested-calls.csproj nuget
examples/poetry.lock pypi
  • 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
examples/pyproject.toml pypi
  • python ~=3.10
  • qsharp ~=1.9.0
  • rasqal ~=0.1.6
src/tests/qsharp/oracle-generator/oracle-generator.csproj nuget
src/tests/qsharp/qaoa/QAOA.csproj nuget
src/tests/qsharp/simplified-oracle-generator/simplified-oracle-generator.csproj nuget