Skip to main content

Qall: Composable execution for hybrid computing

PyPI version License

Qall is an open-source framework for defining, packaging and executing hybrid workflows across heterogeneous compute resources, from CPUs and GPUs to quantum processors (QPU) and emulators.

Qall separates what a computation needs from where it runs, making workflows portable, reproducible and reusable across infrastructure.

Qall was initially developed around hybrid quantum-classical workloads, where classical and quantum resources must work together as part of a single computation.

Why Qall?

Hybrid workloads increasingly combine different types of compute (CPU, GPU, QPU) alongside storage, network and infrastructure management.

CPU loading
       │
       ▼
GPU preprocessing ───► QPU execution
       │                 │
       └───────┬─────────┘
               ▼
        CPU postprocessing

A single workload may need to move between CPU, GPU and QPU resources, while handling environments, credentials, queues, intermediate data and execution state.

Qall lets these steps be described as one computation, while infrastructure selection and execution are handled separately.

Qall provides a common execution model:

  • Tasks & Workflows: define computations and compose them into graphs
  • Resource Profiles: map abstract requirements to available infrastructure
  • Artifacts & Checkpoints: persist intermediate state and enable partial recomputation
  • Workers: ad-hoc adataper to connect computations to execution backends
  • Registry: version and distribute computation objects

Quickstart

Install Qall SDK & CLI:

pip install qall

Write your pythonic workflow:

from qall import task, workflow

def _get_value(val):
    return 0.5 * val

@task(resource={"min_cpu": 2})
def prepare_data(val : float):
    return [0.1, 0.2, 0.3] * _get_value(val)

@workflow
def main():
    data = prepare_data(0.5)
    print(f"Prepared data: {data}")

Run it locally:

qall run my_workflow.py --local

Run it remotely :

qall login scaleway --secret-key=X --project-id=Y

qall run my_workflow.py

The same execution model is designed to extend from local development to managed heterogeneous infrastructure.

Qall-compliant provider Integration status CPU GPU QPU emulated QPU
Local ✅ ✅ ❌ ❌ Qsim, Aer
⚙️ CUDA-Q
Scaleway (website) ⚙️ ✅ ✅ Quandela, Pasqal, IQM, AQT CUDA-Q, Aer, Qsim

Quantum / hybrid example

Qall can execute quantum circuits from within a classical workflow.

from qall import task, workflow, run
import qiskit

@task(min_qubit=5, qpu_type="gate-based", requirements=["qiskit"])
def execute_quantum(size):
    qc = qiskit.QuantumCircuit(size)
    qc.h(0)

    for i in range(1, size):
        qc.cx(i - 1, i)

    qc.measure_all()

    result = run(qc, shots=100)
    return result.get_counts()

@workflow
def main():
    result = execute_quantum(3)
    return result

The same workflow can combine classical computation and quantum execution without exposing provider-specific infrastructure in the workflow code.

qall.run(): hide the execution plumbing. Calling a quantum backend typically involves more than submitting a circuit: provider and SDK compatibility; authentication and credentials; backend discovery and selection; session or execution context creation; circuit submission and job management; queues and asynchronous execution provider-specific result formats; connection and execution state.

What Qall takes care of

Qall is designed for developers who want to stay hands-on with their workloads without having to build and maintain the infrastructure required to execute them:

Developers focus on Qall takes care of
What to compute Where and how it runs
Writing and evolving Python code Packaging, executing the workload and manage result storage
Defining what each step needs Matching and installing requirements to available resources
Calling a quantum circuit Handling the backend-specific execution
Combining CPU, GPU and QPU steps Orchestrating the different resources
Controlling resource usage Managing the execution infrastructure

For example, instead of embedding provider-specific backend and execution logic into a workflow, a developer can simply write:

result = qall.run(circuit, shots=100)

Qall handles the execution details required by the selected backend while keeping the workflow independent from a specific infrastructure.

For infrastructure providers, the same abstraction works in the other direction: a provider integrates its resource once with Qall, rather than exposing its execution model directly to every application.

Design principles

Separate computation from infrastructure

Workflows describe requirements, not necessarily physical resources.

@task(
    resource={
        "min_cpu": 2,
        "min_memory_gb": 16,
    }
)
def preprocess():
    ...

The actual resource can be selected later according to the active execution profile.

Computations as reusable artifacts

Qall represents workflows as content-addressed computation graphs.

This enables:

  • deterministic versioning
  • deduplication
  • workflow sharing
  • partial recomputation
  • reusable computation components

Heterogeneous execution

The same workflow model can combine:

  • CPU workloads
  • GPU workloads
  • quantum emulators
  • QPUs
  • other specialized execution backends

Quantum computing is one of the first use cases driving this model.

Project status

Qall is an early-stage open-source project under active development.

The APIs and execution model are evolving. The project is currently intended primarily for experimentation, development and feedback from the hybrid computing community.

Qall is developed by Scaleway's Quantum R&D team as an open-source exploration of infrastructure for heterogeneous and hybrid computing.

The project is designed around open interfaces and infrastructure-agnostic abstractions, with the goal of making hybrid workloads easier to build, execute and share.

Metadata

Release files for qall 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qall 0.1.3
File Size Uploaded
qall-0.1.3.tar.gz 70.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qall 0.1.3
File Interpreter ABI Platform
qall-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 210.8 kB

Release files / qall-0.1.3.tar.gz

Download URL qall-0.1.3.tar.gz
Size 70.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c944cf5bc246c1188613caed67c3332c3e5022d9187902b864ad0a94fff49b8b
BLAKE2b-256 checksum
How to use checksums
837271e91b79eb6b3a572ff7c795a366e149f4428627cfa42ad45e9cfc7b6a85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / qall-0.1.3-py3-none-any.whl

Download URL qall-0.1.3-py3-none-any.whl
Size 139.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29502c18540b8d6b37cfd2a83cfecac84e9d18fcae11e2095465293a8ef6e954
BLAKE2b-256 checksum
How to use checksums
618fd44d289d8b43c5c69a0dfa94afe13a21cbe2656138e275eabe76af6ae1ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page