Website profiles · Technology insights · Alternatives

mahout.apache.org

Apache Mahout builds an environment for quickly creating scalable, performant machine learning applications. Its current focus is Qumat, a backend-agnostic quantum circuit library, and QDP, a GPU-accelerated quantum data encoding engine.

No paid content found
Visit website
Profile views 0 Outbound visits 0 Normal
Home | Apache Mahout Full homepage screenshot

At a glance

Category
Artificial Intelligence
Language
English
Paid-content signal
No paid content foundObserved
Registered
1995
Hosting
FastlyInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Apache Mahout?

Apache Mahout is an Apache Software Foundation project aimed at building an environment for quickly creating scalable, performant machine learning applications. Its work has shifted away from the earlier Mahout Classic codebase (Samsara and MapReduce), which is now in maintenance mode, toward quantum machine learning in Python through two components: Qumat and QDP.

Qumat

Qumat is a high-level Python library for quantum computing. You build a circuit with standard and parameterized gates—Hadamard, Pauli, CNOT, Toffoli, SWAP, and rotation gates with parameter binding for variational circuits—then run it on Qiskit, Cirq, or Amazon Braket through one unified API, on simulators or real hardware. Switching backends means changing a config value rather than rewriting circuit code. It requires Python 3.10+ and installs from PyPI.

QDP (Quantum Data Plane)

QDP addresses the data-loading bottleneck in quantum machine learning. Rather than simulating a state-preparation circuit, it constructs the state vector directly in GPU memory and passes it to a training or kernel pipeline. It supports six encodings—amplitude, angle, basis, phase, IQP, and IQP-Z—with the same coverage across NVIDIA CUDA and AMD ROCm backends, and offers zero-copy interop with PyTorch, NumPy, and TensorFlow via DLPack.

Who it suits

  • Quantum ML researchers who want to prototype variational circuits across multiple SDKs without maintaining separate code paths.
  • GPU-oriented practitioners training quantum kernels or encodings where state preparation dominates runtime.
  • Teams evaluating backends who need to compare simulator and hardware results under identical circuit definitions.

Practical next step

If you are choosing between the two, decide by where your time goes: if you spend it rewriting circuits for different SDKs, start with Qumat; if you spend it waiting on data encoding, look at QDP. The project's page links to release notes for Qumat 0.6 and benchmark workloads (SVHN IQP training, quantum kernel SVM, data-to-state latency) that can help you judge fit before installing. For the broader Apache ecosystem, see The Apache Software Foundation.

How do I switch a Qumat circuit between Qiskit, Cirq, and Amazon Braket backends?

Change the backend through Qumat's configuration rather than rewriting your circuit: the project describes switching between Qiskit, Cirq, and Amazon Braket by changing a config value, with the same circuit code running on simulators or real hardware. In practice, that means building your gates once with Qumat's standard and parameterized gates (Hadamard, Pauli, CNOT, Toffoli, SWAP, and rotation gates with parameter binding), then setting the backend before execution.

What this changes for you

Concern What stays the same What you change
Circuit definition Gate sequence, parameters, measurement structure Nothing
Backend selection — A configuration value naming Qiskit, Cirq, or Braket
Execution target — Simulator or hardware, as supported by that backend

Practical next step

If you already have a working circuit, pick the backend you can run soonest—typically a local simulator—execute once to confirm the circuit builds and binds parameters correctly, then switch the config value to a second backend and compare results on the same inputs. Divergence in output usually points to backend-specific gate support or noise, not to your circuit logic.

For a variational workflow, keep parameter binding separate from backend choice so you can retrain or re-evaluate the same ansatz across providers without touching gate code. Install from PyPI with pip install qumat on Python 3.10+, and check the release notes for 0.6, which added first-class AMD ROCm support alongside CUDA.

The Apache Mahout project pages document the Qumat API and its backend configuration in more detail; the older Mahout Classic (Samsara and MapReduce) codebase is in maintenance mode and is not relevant to this task.

How does QDP speed up quantum data encoding compared to simulating state-preparation circuits?

QDP speeds up quantum data encoding by skipping circuit simulation entirely. Instead of building and simulating a state-preparation circuit to produce a quantum state, QDP constructs the state vector directly in GPU memory and hands it to your training or kernel pipeline. That removes the data-loading bottleneck in quantum machine learning, where preparing inputs can otherwise dominate runtime.

What changes in practice

  • No simulated state-prep circuit. The state vector is assembled directly on the GPU rather than derived by simulating gates, so the usual simulation overhead is avoided.
  • GPU-native execution. QDP runs on NVIDIA CUDA with native kernels and on AMD ROCm with hand-written Triton kernels, selectable from the same API.
  • Zero-copy handoff. DLPack interop with PyTorch, NumPy and TensorFlow, plus GPU-pointer paths, avoids a round trip through host memory.
  • Six encodings with parity across backends. Amplitude, angle, basis, phase, IQP and IQP-Z are available on every supported GPU backend.

When this matters most

The gain is largest when encoding sits on the hot path: repeated encoding inside a training loop, quantum kernel methods that encode many samples, or pipelines where a simulated preparation circuit would be re-run for every batch. A concrete reader scenario: someone training an IQP-based model on image data and feeding encoded states into PyTorch can keep data on the GPU end to end instead of paying simulation and transfer costs each step.

Trade-offs to weigh

  • Hardware scope. QDP targets GPU encoding for training and kernel pipelines; it is not a route to running circuits on real quantum hardware. For that, Qumat provides one API across Qiskit, Cirq and Amazon Braket, on simulators or hardware.
  • Backend dependence. You need a supported GPU stack (CUDA or ROCm). On CPU-only machines the advantage narrows.
  • Encoding fit. Confirm the encoding you need is among the six offered; unusual state-preparation schemes may still require a circuit-based approach.

As a decision criterion: if your bottleneck is preparing quantum states repeatedly for GPU-based training or kernels, QDP is the direct fit; if you need portability across quantum backends and hardware execution, use Qumat's circuit API. The project ships benchmarks on real workloads—SVHN IQP training, quantum kernel SVM and data-to-state latency—which are the most useful place to check expected gains for your case. See Apache Mahout for details on both components.

Should I use Mahout Classic (Samsara/MapReduce) or the newer Qumat and QDP components?

Choose Qumat and QDP for new work; treat Mahout Classic as legacy. The project's own page describes Samsara/MapReduce as in maintenance mode and says current community work centers on Qumat (a Python quantum-circuit library) and QDP (a GPU-accelerated quantum data plane). That split means the decision is less "which is better" than "which era of the project matches your problem."

When each fits

Your situation Better fit Why
Building quantum circuits in Python, running on simulators or hardware Qumat One API across Qiskit, Cirq and Amazon Braket; switching backends is a config change, not a code rewrite
Variational or parameterized circuit experiments Qumat Parameter binding and standard gates (Hadamard, Pauli, CNOT, Toffoli, SWAP, rotations) are built in
Encoding large classical datasets into quantum states for training or kernels QDP Constructs the state vector directly in GPU memory instead of simulating a state-preparation circuit
Existing MapReduce/Samsara pipelines you must keep running Mahout Classic Still available, but in maintenance mode—expect fixes, not new capability
New classical recommender or clustering work on Hadoop Neither, realistically The project's active direction no longer targets this; evaluate current alternatives instead of starting here

A concrete reader scenario: a researcher with an existing Hadoop cluster and a Samsara-based recommender has little reason to migrate—the code still runs. A graduate student starting a variational-circuit project on a CUDA or ROCm GPU should start with Qumat plus QDP, since both components are designed to work together and QDP ships with benchmark workloads (SVHN IQP training, quantum kernel SVM, data-to-state latency) that give a realistic starting point.

Decision criteria

  • Are you writing new code? If yes, the maintenance-mode status of Classic is the deciding factor.
  • Do you need quantum hardware or simulators? Qumat's backend-agnostic design matters here; Classic has no equivalent.
  • Is data loading your bottleneck? QDP's six encodings (amplitude, angle, basis, phase, IQP, IQP-Z) and zero-copy DLPack handoff to PyTorch, NumPy and TensorFlow address that specifically. If you are not GPU-bound, this advantage is smaller.
  • What is your stack? Qumat requires Python 3.10+ and installs from PyPI; Classic assumes a JVM/MapReduce environment.

As a next step, check which backend your team can actually access (Qiskit, Cirq or Braket) and whether your GPUs are NVIDIA or AMD—Qumat 0.6 is described as having parity across CUDA and ROCm, so either is viable. For broader context on the quantum tooling around it, Qiskit and Google Quantum AI document the backends Qumat targets.

How do I install Qumat and run my first parameterized quantum circuit in Python?

Install Qumat with pip on Python 3.10 or newer, then build a circuit with standard and parameterized gates and execute it on a supported backend (Qiskit, Cirq or Amazon Braket) by setting a config value rather than rewriting your circuit code. The project describes Qumat as a high-level Python library whose install command is pip install qumat, so the setup is a normal pip install into a 3.10+ environment.

Practical first run

A parameterized circuit means you define gates with named parameters, then bind values at run time — useful for variational loops where the same circuit is evaluated repeatedly with different angles. A concrete reader scenario: a student wants to compare one rotation-based circuit across two simulators. With Qumat's stated single-API design, the circuit is written once and the backend is switched in configuration; the parameter values are bound per run.

Steps that follow from the page evidence:

  1. Create and activate a Python 3.10+ virtual environment.
  2. pip install qumat.
  3. Build a circuit using Hadamard, Pauli, CNOT, Toffoli, SWAP and rotation gates, marking rotation angles as parameters.
  4. Choose a backend (Qiskit, Cirq or Amazon Braket) in config, targeting a simulator first.
  5. Bind parameter values and execute; repeat with new values for a variational sweep.

Decision criteria

  • Backend choice: pick the backend your team already runs or the hardware you can access; the point of the unified API is that you can defer or change this.
  • Simulator vs hardware: start on a simulator to validate parameter binding and measurement handling before spending queue time on real hardware.
  • Data-heavy workflows: if classical data must become quantum states at scale, the companion QDP component (GPU state construction, six encodings, DLPack interop with PyTorch, NumPy and TensorFlow) is the relevant piece rather than Qumat alone.
  • Legacy users: the older Mahout Classic (Samsara/MapReduce) codebase is in maintenance mode; new work should target Qumat.

For exact gate names, parameter-binding syntax and backend configuration keys, use the project's own Qumat documentation at Apache Mahout and the release notes for version 0.6, which the page notes added AMD ROCm support and faster zero-copy GPU paths.

Which GPU backends and frameworks does QDP support for zero-copy data handoff?

QDP supports two GPU backends and three zero-copy framework handoffs, according to the project's own description.

GPU backends

  • NVIDIA CUDA: native CUDA kernels.
  • AMD ROCm: hand-written Triton kernels.

Both are selectable from the same API, and the page states that all six encodings (amplitude, angle, basis, phase, IQP, IQP-Z) are available with parity on each backend.

Zero-copy framework handoff

QDP uses DLPack to hand data to and from:

  • PyTorch
  • NumPy
  • TensorFlow

The page also mentions GPU-pointer paths that skip the host round trip, so data can stay in GPU memory between the encoder and your training or kernel pipeline.

Practical reading

The main trade-off is hardware breadth versus depth. CUDA and ROCm cover the two dominant accelerator ecosystems, but anything else (for example, Apple Silicon GPUs or other accelerators) is not listed. The ROCm path is built on Triton rather than hand-written kernels, which is a different implementation route from CUDA — worth benchmarking yourself if you run mixed clusters.

For a concrete case: a team training a quantum kernel SVM on AMD hardware can encode classical inputs directly into state vectors on the GPU and pass them to PyTorch via DLPack without copying back to host memory. The same code runs on CUDA by changing the backend selection.

Next step: check whether your framework version's DLPack support matches what QDP expects, then reproduce the shipped SVHN IQP training or data-to-state latency benchmark on your own GPU to confirm the zero-copy path actually avoids host transfers in your setup. The project's benchmark workloads are the most direct way to validate this before committing.

Related questions

More questions →
What Apache Mahout Is and What It Focuses On Now

Apache Mahout is an Apache Software Foundation project that builds an environment for quickly creating scalable, performant machine learning applications. Its current work centers on quantum machine learning in Python, delivered through two components: Qumat, a backend-agnostic quantum circuit library, and QDP (Quantum Data Plane), a GPU-accelerated engine that encodes classical data into quantum states. The earlier Mahout Classic codebase (Samsara and MapReduce) is in maintenance mode, so new work should target Qumat and QDP.

The two current components

Qumat: write a circuit once, run it on three backends

Qumat is a high-level Python library for quantum computing. You build a circuit from standard and parameterized gates, then execute it on Qiskit, Cirq, or Amazon Braket through one unified API, on simulators or real quantum hardware.

Capability What it means for you
One API, three backends Switch between Qiskit, Cirq, and Amazon Braket by changing a config value, not your circuit code
Standard and parameterized gates Hadamard, Pauli, CNOT, Toffoli, SWAP, and rotation gates with parameter binding for variational circuits
Python 3.10+ Installable from PyPI with pip install qumat

The practical benefit is portability: a variational circuit you prototype on a simulator can be pointed at a different backend without a rewrite, which matters when you are comparing hardware or avoiding lock-in to one SDK.

QDP: remove the data-loading bottleneck

QDP targets a specific cost in quantum machine learning: preparing classical data as quantum states. 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.

For example, if you are training an IQP-style model on image data, the encoding step is where classical-to-quantum conversion usually dominates wall-clock time; QDP's approach is aimed at that step rather than at the circuit execution itself.

Which version should you use?

  • Starting new quantum ML work in Python: use Qumat, and add QDP if your pipeline is bottlenecked on encoding classical data into quantum states and you have a supported GPU (CUDA or ROCm).
  • Maintaining an existing Mahout Classic deployment (Samsara/MapReduce): it remains available but is in maintenance mode; the community's active development is on Qumat and QDP, so plan migrations accordingly.

Release status and where to start

Qumat 0.6 is the current release noted on the project site. It adds first-class AMD ROCm support, six QDP encodings with parity across CUDA and ROCm, and faster zero-copy GPU paths. The site links release notes and a download path for 0.6.

To evaluate the project, the most direct route is the Qumat install (pip install qumat on Python 3.10+) followed by the shipped benchmarks, which let you measure encoding latency and kernel performance on your own hardware before committing to a design.

What is QDP (Quantum Data Plane) in Apache Mahout and what problem does it solve?

QDP (Quantum Data Plane) is Apache Mahout's GPU-accelerated data plane that removes the data-loading bottleneck in quantum machine learning. Instead of simulating a state-preparation circuit, it constructs the quantum state vector directly in GPU memory and hands it to your training or kernel pipeline. It is the right tool when your bottleneck is getting classical data into quantum states at scale, and you want to avoid the cost of circuit-based state preparation.

The problem it solves

Quantum machine learning pipelines need classical data (images, vectors, kernel inputs) encoded as quantum states. The conventional route is to build a state-preparation circuit and simulate it. That simulation is the bottleneck: it adds latency before any training or kernel computation begins, and it scales poorly as data volume grows.

QDP takes a different route. Rather than simulating a circuit, it constructs the state vector directly in GPU memory. The encoded state is then passed to your training or kernel pipeline, so the data-loading step no longer dominates the pipeline.

How it works

  • Direct state construction: QDP builds the state vector in GPU memory instead of simulating a state-preparation circuit.
  • Six encodings: amplitude, angle, basis, phase, IQP, and IQP-Z, with the same coverage on every GPU backend.
  • GPU backends: native CUDA kernels for NVIDIA and hand-written Triton kernels for AMD 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.

The zero-copy path matters in practice: if your data already lives on the GPU in a PyTorch or TensorFlow tensor, QDP can consume it without copying back to host memory and out again.

When to use QDP

Situation QDP fits
Data loading or state preparation dominates pipeline time Yes — this is the core use case
You need amplitude, angle, basis, phase, IQP, or IQP-Z encoding Yes — all six are supported with backend parity
Your data is already in PyTorch, NumPy, or TensorFlow Yes — DLPack zero-copy interop
You run on NVIDIA CUDA or AMD ROCm Yes — native kernels for both
You want to write circuits once and run on Qiskit, Cirq, or Amazon Braket No — that is Qumat's role

Qumat and QDP are complementary: Qumat is the high-level Python library for building and executing circuits across backends, while QDP handles the data-encoding layer beneath it. Qumat requires Python 3.10+ and installs from PyPI with pip install qumat.

Verifying it in your pipeline

The project ships benchmarks on real workloads — SVHN IQP training, quantum kernel SVM, and data-to-state latency benchmarks — so you can compare encoding latency against a circuit-simulation baseline before committing. A practical check: time your current state-preparation step, then time the same encoding through QDP on your target GPU backend; the difference is the bottleneck QDP removes.

Current status

Qumat 0.6 is the current release, adding first-class AMD ROCm support, six QDP encodings with parity across CUDA and ROCm, and faster zero-copy GPU paths. The earlier Mahout Classic codebase (Samsara and MapReduce) is in maintenance mode; the community's active work is on Qumat and QDP.

Getting Started with Apache Mahout's Qumat (and What's in 0.6)

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.

How Qumat and QDP Differ in Apache Mahout, and When to Use Each

Qumat and QDP solve different problems in the same quantum machine learning pipeline. Qumat is a Python library for building quantum circuits once and running them on Qiskit, Cirq, or Amazon Braket through a single API. QDP (Quantum Data Plane) is a GPU-accelerated engine that turns classical data into quantum state vectors directly in GPU memory, skipping state-preparation circuit simulation. Choose Qumat when your bottleneck is circuit portability across backends; choose QDP when your bottleneck is loading classical data into quantum form. They are designed to be used together, not as alternatives.

The core difference in one table

Dimension Qumat QDP (Quantum Data Plane)
Role in the pipeline Circuit construction and execution Classical-to-quantum data encoding
Main input Gate definitions (standard and parameterized) Classical data (e.g., images, feature vectors)
Main output Executed circuits on a chosen backend State vectors in GPU memory
Backend scope Qiskit, Cirq, Amazon Braket; simulators or real hardware NVIDIA CUDA and AMD ROCm GPUs
Switching mechanism Change a config value, not circuit code Same API across CUDA and ROCm
Interop Python 3.10+, installable via pip install qumat Zero-copy DLPack handoff to/from PyTorch, NumPy, TensorFlow
Typical bottleneck addressed Rewriting circuits per backend Data-loading latency in quantum ML training

What Qumat does

Qumat is a high-level Python library for quantum computing. You build a circuit with standard gates (Hadamard, Pauli, CNOT, Toffoli, SWAP) and rotation gates with parameter binding for variational circuits, then execute it on Qiskit, Cirq, or Amazon Braket. The key property is portability: switching backends is a config change, not a rewrite of your circuit code. It runs on simulators or real quantum hardware.

Use Qumat when:

  • You want to prototype a variational circuit and compare results across more than one backend.
  • You need to move from a simulator to real hardware without changing circuit definitions.
  • Your team standardizes on Python and wants a pip-installable dependency (pip install qumat, Python 3.10+).

What QDP does

QDP removes the data-loading bottleneck in quantum machine learning. Instead of simulating a state-preparation circuit to encode classical data, it constructs the state vector directly in GPU memory and hands it to your training or kernel pipeline. It supports six encodings — amplitude, angle, basis, phase, IQP, and IQP-Z — with the same coverage on every GPU backend. Native CUDA kernels and hand-written Triton kernels for ROCm are selectable from the same API, and zero-copy DLPack paths connect to PyTorch, NumPy, and TensorFlow without a host round trip.

Use QDP when:

  • Your pipeline spends significant time encoding classical data (images, feature vectors) into quantum states.
  • You train on NVIDIA or AMD GPUs and want the same encoding coverage on both.
  • You need the encoded state to flow into PyTorch or NumPy tensors without copying through host memory.

How they fit together

A quantum ML workflow typically has two stages: prepare data as quantum states, then run circuits over them. QDP handles the first stage on GPU; Qumat handles the second across backends. For example, an IQP-encoded image dataset produced by QDP can feed a variational circuit defined and executed through Qumat. The project ships benchmarks for exactly this kind of workload, including SVHN IQP training, quantum kernel SVM, and data-to-state latency, so you can check whether the encoding stage is your actual bottleneck before adopting QDP.

Which to start with

Start with Qumat if your immediate need is circuit portability or you are evaluating multiple backends. Start with QDP if profiling shows data encoding dominates your training time, or if you already have a circuit stack and only need faster state preparation. If you are building a full pipeline from scratch, Qumat is the natural entry point because circuit code is where most workflows begin; add QDP once encoding latency becomes measurable.

Practical notes

  • Qumat 0.6 added first-class AMD ROCm support, six QDP encodings with parity across CUDA and ROCm, and faster zero-copy GPU paths.
  • The earlier Mahout Classic codebase (Samsara and MapReduce) is in maintenance mode; current community work is on Qumat and QDP.
  • Both components are Apache-licensed and part of the Apache Software Foundation.
What is Qumat in Apache Mahout and which quantum backends does it support?

Qumat is Apache Mahout's high-level Python library for writing quantum circuits once and running them on Qiskit, Cirq, or Amazon Braket through a single unified API. You switch backends by changing a config value rather than rewriting circuit code, and the same circuit can target simulators or real quantum hardware. It requires Python 3.10+ and installs from PyPI with pip install qumat.

What Qumat does

Qumat sits above the backend SDKs. You build a circuit from standard and parameterized gates, then execute it on whichever backend your configuration selects. The library's current release, Qumat 0.6, adds first-class AMD ROCm support and faster zero-copy GPU paths, according to the project site.

Supported backends

Backend How it's selected What runs
Qiskit Config value Simulators or real hardware
Cirq Config value Simulators or real hardware
Amazon Braket Config value Simulators or real hardware

The key design point: the circuit definition stays the same across all three. Only the backend configuration changes.

Supported gates

Qumat covers both fixed and parameterized gates:

  • Standard gates: Hadamard, Pauli, CNOT, Toffoli, SWAP
  • Rotation gates: with parameter binding for variational circuits

Parameter binding matters for variational algorithms, where gate angles are tuned during training rather than fixed at circuit construction. You define the circuit structure once and bind new parameter values per run.

How the backend switch works in practice

The workflow is:

  1. Install: pip install qumat on Python 3.10 or newer.
  2. Build the circuit: compose standard and parameterized gates into a circuit object.
  3. Set the backend: choose Qiskit, Cirq, or Amazon Braket in configuration.
  4. Execute: run on a simulator or submit to real hardware.

The expected result is the same circuit executed on your chosen backend without edits to the circuit code. The common pitfall is assuming backend parity is automatic for every feature — gate coverage and hardware availability differ by provider, so verify your specific gate set and target device before relying on a straight swap.

Where Qumat fits in Mahout today

Mahout's current focus is quantum machine learning in Python, built on two components: Qumat for circuits and QDP (Quantum Data Plane) for data encoding. QDP is a separate, GPU-accelerated engine that constructs quantum state vectors directly in GPU memory instead of simulating state-preparation circuits, with six encodings (amplitude, angle, basis, phase, IQP, IQP-Z) across NVIDIA CUDA and AMD ROCm.

The earlier Mahout Classic codebase (Samsara and MapReduce) is in maintenance mode; the community's active work is on Qumat and QDP. If you arrived at mahout.apache.org expecting the classic scalable-ML stack, note that the project has moved toward quantum ML.

When Qumat is the right choice

Choose Qumat if you want to prototype variational or gate-based circuits and compare behavior across Qiskit, Cirq, and Braket without maintaining three codebases. It is less suitable if you need deep provider-specific features that the unified API does not expose, or if you are maintaining legacy Mahout Classic workloads — those remain in maintenance mode rather than active development.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality.

Domain and Registration

Registered in 1995, this domain has about 31 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is NameCheap, Inc., a widely used domain service provider. The domain uses the common .org extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by Amazon Route 53, indicating managed DNS hosting. MX records point to the apache.org email service. CAA records restrict which certificate authorities are authorized to issue certificates. No CNAME was found; the observed records resolve directly to addresses. SPF and DMARC are configured. DKIM status is unknown.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: X-Content-Type-Options, Referrer-Policy, Permissions-Policy. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The x-cache, x-served-by, via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies Fastly, Apache without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

The meta description has 237 characters and may be shortened in search results. The Generator tag identifies Docusaurus v3.10.2, making the publishing system easier to fingerprint. Twitter Card metadata is configured. JSON-LD includes Organization data, helping describe the organization as an entity. The page declares 2 language or regional alternatives using hreflang.

Hosting and Email

DNSAmazon Route 53
HostingFastly
Emailapache.org
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 151.101.2.132

Registration details

RDAP / WHOIS

RegistrarNameCheap, Inc.
Registered1995-04-11
Expires2029-04-12
Domain statusclient delete prohibited、client transfer prohibited
Nameserversns-1139.awsdns-14.org、ns-1955.awsdns-52.co.uk、ns-303.awsdns-37.com、ns-558.awsdns-05.net
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Amahout.apache.org151.101.2.1321800—
AAAAmahout.apache.org2a04:4e42::6441800—
MXapache.orgmx1-ec2-va.apache.org180010
MXapache.orgmx1-he-de.apache.org180010
MXapache.orgmx2-ec2-de.apache.org180010
MXapache.orgmx2-ec2-ie.apache.org180010
MXapache.orgmx2-ec2-or.apache.org180010
MXapache.orgmx2-ec2-sy.apache.org180010
NSapache.orgns-1139.awsdns-14.org172800—
NSapache.orgns-1955.awsdns-52.co.uk172800—
NSapache.orgns-303.awsdns-37.com172800—
NSapache.orgns-558.awsdns-05.net172800—
TXTapache.orgMS=E03FCF4BFDA6010D863CDB04B4F156E4C480ACA51800—
TXTapache.org_globalsign-domain-verification=VPemhDee0EKRXi0IPzeSUrn849jHevrjIaTeDYOTZ41800—
TXTapache.orgatlassian-domain-verification=ymLFB7Wz8ScIJsja5lQgqHkFZGayJH7z0M3DAUwmeTFBvxJWz7rs9OqateFxBIb41800—
TXTapache.orggoogle-site-verification=y9Wki74vQ-HO4aXrJ-TzmPvLf8itBqrQTPjyAHktuMo1800—
TXTapache.orggradle-verification=L6JP9L6FV7OI2DLLG5N9515VA3Q6Q1800—
TXTapache.orgspf2.0/pra ?all1800—
TXTapache.orgv=spf1 include:_spf.apache.org -all1800—
CAAapache.org0 iodef "mailto:[email protected]"1800—
CAAapache.org0 issue "globalsign.com"1800—
CAAapache.org0 issue "letsencrypt.org"1800—
CAAapache.org0 issue "sectigo.com"1800—
CAAapache.org0 issue "ssl.com"1800—
CAAapache.org0 issuewild "letsencrypt.org"1800—
CAAapache.org0 issuewild "ssl.com"1800—
DMARC_dmarc.apache.orgv=DMARC1; p=none;1800—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subject*.apache.org
IssuerLet's Encrypt
Valid until2026-12-22T21:43 · Remaining when checked: 58 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html
serverApache
strict-transport-securitymax-age=31536000; includeSubDomains; preload
content-security-policydefault-src 'self' data: blob: 'unsafe-inline' 'unsafe-eval' https://www.apachecon.com/ https://www.communityovercode.org/ https://*.apache.org/ https://apache.org/ https://*.scarf.sh/ ; script-src 'self' data: blob: 'unsafe-inline' 'unsafe-eval' https://www.apachecon.com/ https://www.communityovercode.org/ https://*.apache.org/ https://apache.org/ https://*.scarf.sh/ ; style-src 'self' data: blob: 'unsafe-inline' 'unsafe-eval' https://www.apachecon.com/ https://www.communityovercode.org/ https://*.apache.org/ https://apache.org/ https://*.scarf.sh/ ; frame-ancestors 'self'; frame-src 'self' data: blob: 'unsafe-inline' 'unsafe-eval' https://www.apachecon.com/ https://www.communityovercode.org/ https://*.apache.org/ https://apache.org/ https://*.scarf.sh/ ; worker-src 'self' data: blob:;
access-control-allow-origin*

Identified technologies

FastlyApache

Pages, Search and Sharing

Meta descriptionApache Mahout builds an environment for quickly creating scalable, performant machine learning applications. Its current focus is Qumat, a backend-agnostic quantum circuit library, and QDP, a GPU-accelerated quantum data encoding engine.
Canonical URLhttps://mahout.apache.org/
LanguageEnglish (default)
Twitter Cardsummary_large_image

No robots.txt found

User reviews (0)

  • No reviews yet.