Skip to main content
Blog
6 min read

Apache Mahout Hackathon at Community over Code Glasgow 2026

Mahout TeamMahout Team
Apache Mahout

Apache Mahout is running a hands-on hackathon at Community over Code Glasgow 2026. This post collects everything a participant needs in one place: the Google Colab notebook, the kickoff slides, and the task list.

  • When: Tuesday, 13 October 2026, 15:00 to 18:40
  • Where: The Wee Dram Room, Community over Code, Glasgow, UK
  • Mentors: Andrew Musselman and Krishna Dave, plus Mahout committers in the room
  • Bring: a laptop with Python 3.10 to 3.12, git and a GitHub account. No GPU needed; the GPU part runs in Colab.

Downloads​

Colab notebookOpen In Colab or download the .ipynb and upload it with File > Upload notebook in Colab
Kickoff slidesView as PDF or download the .pptx. The slides are also shown below.
Event pageevents.apache.org: Apache Mahout hackathon

Colab setup: one minute before you run anything​

Colab's default runtime is Python 3.13, and Mahout 0.6.0 supports Python 3.10 to 3.12. Set the runtime first, or the install fails and the QDP part cannot run.

  1. Menu Runtime > Change runtime type.
  2. Runtime version: choose 2026.07 (Python 3.12.13), not "Latest".
  3. Hardware accelerator: choose T4 GPU.
  4. Click Save, then Runtime > Run all.

The first cell prints the Python version. It should say 3.12. If it says 3.13, repeat step 2.

The notebook follows the same order as the talk:

  • Parts 0 to 3: install, a Bell state, the same circuit on Qiskit, Cirq and Braket, and the state vector. Spend at most 10 minutes here.
  • Parts 4 and 5: optional extras, parameterized circuits and the swap test.
  • Part 6: QDP encoding on the GPU. Needs the T4 and the 2026.07 runtime.
  • Part 7: the task list, also reproduced below.

Kickoff slides​

Quantum computing in Python with Qumat and QDP, presented by Andrew K. Musselman and Krishna Dave. PDF · PPTX

Slide 1: Apache Mahout, quantum computing in Python with Qumat and QDP

Slide 2: What we will do today

Slide 3: Apache Mahout, then and now

Slide 4: Qumat, write once, run on any backend

Slide 5: QDP, GPU-accelerated data encoding

Slide 6: Install in one minute

Slide 7: Hello, Bell state

Slide 8: Same circuit, three backends

Slide 9: Parameterized circuits for optimization

Slide 10: QDP in four lines

Slide 11: Pick a task, one to two hours each, no GPU

Slide 12: From idea to merged pull request

Slide 13: Let's build

Hackathon tasks​

Every task is sized for one to two hours, needs no GPU, and ends in a pull request with a test. Claim a task by commenting on its issue.

Track A: Qumat (Python only). All reproduced on main and on qumat 0.6.0. Each issue has the reproduction steps.

#IssueTask
A1#1506Clear ValueError for an unknown backend name (today a ModuleNotFoundError leaks)
A2#1507Unsupported simulator_type should raise instead of print() and silently continuing
A3#1508Cirq backend ignores the initialized simulator and creates its own cirq.Simulator()
A4#1509Bug: reusing a parameter name on two gates fails on Qiskit only (name conflict adding parameter 't')
A5#1510create_empty_circuit() without num_qubits: Qiskit raises, Cirq and Braket allocate on demand
A6#1511Add one missing gate per person: S, S-dagger, T-dagger, CZ or Phase, on all three backends with a test
A7#1512Python 3.13 support: lift the <3.13 cap in pyproject.toml and add 3.13 to CI

Track B: QDP. B1 to B3 are pure Python. B4 to B6 are Rust: take one only if cargo is already installed, and start the first cargo build right away (5 to 10 minutes). No CUDA needed, the build uses stubs like CI does.

#IssueTask
B1#1469QdpBenchmark does not validate builder argument ranges
B2#1331QDP tests should skip, not error, when no GPU is present
B3#1468File loader ignores the configured batch limit (one-line wrapper fix plus a test)
B4#1472Read default LZ4-compressed Feather files (Rust reader)
B5#787NumPy file size check to prevent OOM (Rust reader)
B6#1436StreamingProducer: VecDeque for O(1) buffer advance (Rust)

From idea to merged pull request​

Setup takes about a minute in a terminal (not in Colab):

git clone https://github.com/<you>/mahout.git && cd mahout
pip install uv
uv sync # Qumat and the Python QDP package
uv run pre-commit install # ruff + type checks on every commit
uv run pytest testing/qumat # smoke test

Then: comment on the issue to claim it, branch, make the change with a test, and open a PR that links the issue. One committer approval is required to merge, so ping a mentor in the room. Your PR does not have to be finished by 18:40; mentors will keep reviewing afterwards.

Getting help​

Have fun, and thanks for hacking on Apache Mahout!