This is an automated email from the ASF dual-hosted git repository.

guanmingchiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/mahout.git

commit 3c174ed2f6be1adc6c0377f8a4ecdd72ab486de1
Author: Ryan Huang <[email protected]>
AuthorDate: Fri Dec 26 10:12:29 2025 +0800

    [QDP] Add colab benchmark example (#755)
    
    * colab benchmark
    
    * add link
    
    * add link
    
    * update with colab badge
    
    * precommit
    
    * renamed folder name to notebooks
    
    * update link
---
 qdp/benchmark/README.md                        |   6 +
 qdp/benchmark/notebooks/mahout_benchmark.ipynb | 207 +++++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/qdp/benchmark/README.md b/qdp/benchmark/README.md
new file mode 100644
index 000000000..e338d2545
--- /dev/null
+++ b/qdp/benchmark/README.md
@@ -0,0 +1,6 @@
+<!-- TODO: benchmark docs -->
+
+
+### We can also run benchmarks on colab notebooks(without owning a GPU)
+
+[![Open in 
Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/apache/mahout/blob/colab-benchmark/qdp/benchmark/notebooks/mahout_benchmark.ipynb)
diff --git a/qdp/benchmark/notebooks/mahout_benchmark.ipynb 
b/qdp/benchmark/notebooks/mahout_benchmark.ipynb
new file mode 100644
index 000000000..81fd746fd
--- /dev/null
+++ b/qdp/benchmark/notebooks/mahout_benchmark.ipynb
@@ -0,0 +1,207 @@
+{
+  "cells": [
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "pjstUzDHQHad"
+      },
+      "source": [
+        "## Install environments"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/";
+        },
+        "collapsed": true,
+        "id": "-hkLubLFXs_8",
+        "outputId": "95dda2d2-2cff-4b99-8a19-ce47e6f67fa6"
+      },
+      "outputs": [],
+      "source": [
+        "!sudo apt-get update -y > /dev/null\n",
+        "!sudo apt-get install python3.11 python3.11-dev python3.11-distutils 
libpython3.11-dev > /dev/null\n",
+        "!sudo apt-get install python3.11-venv binfmt-support > /dev/null\n",
+        "!sudo apt-get install python3-pip > /dev/null\n",
+        "!python3 -m pip install --upgrade pip > /dev/null\n",
+        "!python3 -m pip install ipykernel\n"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/";
+        },
+        "collapsed": true,
+        "id": "_HEpQ4F3C4gV",
+        "outputId": "2f9969f4-313b-4652-ddf8-e538598532db"
+      },
+      "outputs": [],
+      "source": [
+        "# 1. Install Rust Toolchain\n",
+        "!curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- 
-y\n",
+        "import os\n",
+        "os.environ['PATH'] += \":/root/.cargo/bin\"\n",
+        "\n",
+        "# 2. Verify Installation\n",
+        "!rustc --version\n",
+        "!cargo --version\n",
+        "\n",
+        "# 3. Install Maturin (Build Backend for qdp-python)\n",
+        "!pip install maturin"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/";
+        },
+        "collapsed": true,
+        "id": "ljkluVL5ES4S",
+        "outputId": "73b1d5c1-6580-4633-e774-f58a138e94b8"
+      },
+      "outputs": [],
+      "source": [
+        "!curl -LsSf https://astral.sh/uv/install.sh | sh"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/";
+        },
+        "id": "9cgMNKOoEgYm",
+        "outputId": "24cec148-17c9-4dea-c47f-18d05e6b1911"
+      },
+      "outputs": [],
+      "source": [
+        "!nvcc --version\n"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "rOja7HAaQL1h"
+      },
+      "source": [
+        "## Install Mahout"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/";
+        },
+        "collapsed": true,
+        "id": "u7Skxs7lDBlq",
+        "outputId": "ff876484-54a0-4f92-ca9b-ff7003997ee6"
+      },
+      "outputs": [],
+      "source": [
+        "# 1. Clone the repository\n",
+        "!git clone -b dev-qdp https://github.com/apache/mahout.git\n";,
+        "\n",
+        "# 2. Install Python Dependencies\n",
+        "# We use the requirements file provided in the benchmark folder\n",
+        "%cd /content/mahout/qdp/qdp-python\n",
+        "!uv venv -p python3.11\n",
+        "# Activate the virtual environment and run uv sync and maturin 
develop\n",
+        "!source .venv/bin/activate && uv sync --group dev\n",
+        "# !source .venv/bin/activate && uv run --python 3.11 maturin develop"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "XX7w2efnD9np"
+      },
+      "outputs": [],
+      "source": [
+        "%cd /content/mahout/qdp/qdp-python\n",
+        "\n",
+        "# 1. Remove all old wheels to prevent future conflicts\n",
+        "!rm -rf /content/mahout/qdp/target/wheels/*\n",
+        "\n",
+        "# 2. Re-run build (so we have exactly one fresh wheel)\n",
+        "!uv run maturin build --interpreter .venv/bin/python\n",
+        "\n",
+        "# 3. Install the single new wheel found\n",
+        "!uv pip install /content/mahout/qdp/target/wheels/*.whl --python 
.venv/bin/python --force-reinstall\n",
+        "\n",
+        "!./.venv/bin/python -c \"import mahout_qdp; 
print(mahout_qdp.__file__)\""
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "collapsed": true,
+        "id": "eYLNNzRQFNQ_"
+      },
+      "outputs": [],
+      "source": [
+        "!uv pip install -r /content/mahout/qdp/benchmark/requirements.txt 
--python .venv/bin/python"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "collapsed": true,
+        "id": "qqmfUHGsGm8m"
+      },
+      "outputs": [],
+      "source": [
+        "!uv pip install matplotlib-inline --python .venv/bin/python"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "hj7sU3yJQeMj"
+      },
+      "source": [
+        "## Run Benchmarks"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "iuP5BdI3E-oR"
+      },
+      "outputs": [],
+      "source": [
+        "!./.venv/bin/python /content/mahout/qdp/benchmark/benchmark_e2e.py 
--frameworks mahout-parquet mahout-arrow pennylane --qubits 18 --samples 500"
+      ]
+    }
+  ],
+  "metadata": {
+    "accelerator": "GPU",
+    "colab": {
+      "gpuType": "T4",
+      "provenance": []
+    },
+    "kernelspec": {
+      "display_name": "Python 3",
+      "name": "python3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 0
+}

Reply via email to