Getting Started with Apache Mahout's Qumat (and What's in 0.6)
Updated
Install Qumat with pip install qumat on Python 3.10 or newer, then write a circuit once and run it on Qiskit, Cirq, or Amazon Braket by changing a config value rather than your circuit code. Version 0.6 adds first-class AMD ROCm support, six QDP encodings with parity across CUDA and ROCm, and faster zero-copy GPU paths. This guide covers the prerequisites, the install-and-run steps, what 0.6 changed, and where to find release notes and project resources.
What Apache Mahout is now
Apache Mahout builds an environment for quickly creating scalable, performant machine learning applications. Today that work centers on quantum machine learning in Python, with two components:
- Qumat — a high-level Python library for quantum computing. You build a circuit with standard and parameterized gates, then execute it on Qiskit, Cirq, or Amazon Braket through one unified API, on simulators or real quantum hardware.
- QDP (Quantum Data Plane) — a GPU-accelerated data plane that turns classical data into quantum states without simulating state-preparation circuits.
The earlier Mahout Classic codebase (Samsara and MapReduce) is in maintenance mode; the community's current work is on Qumat and QDP.
Before you start
| Requirement | Detail |
|---|---|
| Python version | 3.10+ |
| Install source | PyPI, via pip install qumat |
| Backends | Qiskit, Cirq, Amazon Braket (simulators or real hardware) |
| GPU path (optional) | NVIDIA CUDA or AMD ROCm, for QDP |
You do not need to install a separate quantum SDK to write circuits — Qumat provides the unified API — but you do need access to whichever backend you intend to execute on.
Step 1: Install Qumat
pip install qumat
Expected result: the qumat package is available in your Python 3.10+ environment. If pip resolves an older release, pin the version explicitly to get 0.6 features.
Step 2: Build a circuit with standard and parameterized gates
Qumat supports Hadamard, Pauli, CNOT, Toffoli, SWAP, and rotation gates, with parameter binding for variational circuits. The workflow is: define gates and parameters once, then reuse the same circuit definition across backends.
Input: a gate list and, for variational circuits, parameter values. Action: construct the circuit through the Qumat API. Expected result: a backend-agnostic circuit object you can hand to any supported backend.
Step 3: Switch backends by config, not code
The core promise of Qumat is "one API, three backends." To move from Qiskit to Cirq or Amazon Braket, change a config value — your circuit code stays the same. This is the main reason to choose Qumat over writing directly against a single SDK: portability across simulators and hardware without a rewrite.
Step 4: Use QDP when data loading is the bottleneck
QDP addresses the data-loading bottleneck in quantum machine learning. Instead of simulating a state-preparation circuit, it constructs the state vector directly in GPU memory and hands it to your training or kernel pipeline.
- Six encodings: amplitude, angle, basis, phase, IQP, and IQP-Z — with the same coverage on every GPU backend.
- NVIDIA CUDA and AMD ROCm: native CUDA kernels and hand-written Triton kernels for ROCm, selectable from the same API.
- Zero-copy interop: DLPack handoff to and from PyTorch, NumPy, and TensorFlow, plus GPU-pointer paths that skip the host round trip.
- Benchmarked on real workloads: SVHN IQP training, quantum kernel SVM, and data-to-state latency benchmarks ship with the project.
Use QDP when your pipeline spends meaningful time preparing quantum states from classical data; use Qumat alone when you mainly need portable circuit construction and execution.
What's new in Qumat 0.6
- First-class AMD ROCm support.
- Six QDP encodings with parity across CUDA and ROCm.
- Faster zero-copy GPU paths.
Release notes and the download link are on the project site (mahout.apache.org), alongside the "Get Qumat 0.6" entry point.
Verify your setup
A quick check that the install and backend selection work: build a small circuit with a Hadamard and a CNOT, run it on a simulator backend, and confirm you get the expected output distribution. Then change the backend config value and rerun the same circuit — if it executes without code changes, your setup matches Qumat's intended workflow.
Common snags
- Python too old: Qumat requires 3.10+; an older interpreter will fail at install or import.
- Assuming a backend is bundled: backend access (including real hardware) is separate from the Qumat install.
- Reaching for Mahout Classic: Samsara/MapReduce material is maintenance mode; new work should target Qumat and QDP.
- GPU expectations: CUDA and ROCm paths are for QDP's data plane, not a requirement for basic Qumat circuit work.
Where to go next
The project is under the Apache Software Foundation and licensed under the Apache License. For community context, the project lists talks including "Accelerating Quantum Machine Learning: Building a GPU-Accelerated Data Plane in Apache Mahout" (Community Over Code Asia 2026), "Introducing Qumat!" (FOSDEM 2025), and "QuMat: Apache Mahout's Quantum Computing Interface" (FOSSY 2024). Start at mahout.apache.org for the Qumat and QDP pages, release notes, and download links.