diff --git a/.github/workflows/benchmark-remote.yml b/.github/workflows/benchmark-remote.yml new file mode 100644 index 000000000000..b33498c55bef --- /dev/null +++ b/.github/workflows/benchmark-remote.yml @@ -0,0 +1,62 @@ +name: Remote Benchmark + +on: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + SCALE_FACTOR: '10.0' + +jobs: + main: + runs-on: self-hosted + steps: + - uses: actions/checkout@v4 + + - name: Clone Polars-benchmark + run: | + git clone --depth=1 https://github.com/pola-rs/polars-benchmark.git + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Create virtual environment + run: | + curl -LsSf https://astral.sh/uv/install.sh | sh + uv venv + echo "$GITHUB_WORKSPACE/.venv/bin" >> $GITHUB_PATH + echo "VIRTUAL_ENV=$GITHUB_WORKSPACE/.venv" >> $GITHUB_ENV + + - name: Install Python dependencies + working-directory: py-polars + run: | + # Install typing-extensions separately whilst the `--extra-index-url` in `requirements-ci.txt` + # doesn't have an up-to-date typing-extensions, see + # https://github.com/astral-sh/uv/issues/6028#issuecomment-2287232150 + uv pip install -U typing-extensions + uv pip install --compile-bytecode -r requirements-dev.txt -r requirements-ci.txt --verbose + + - name: Install Polars-Benchmark dependencies + working-directory: polars-benchmark + run: | + uv pip install --compile-bytecode -r requirements-polars-only.txt + + - name: Set up Rust + run: rustup show + + - name: Install Polars release build + env: + RUSTFLAGS: -C embed-bitcode -D warnings + working-directory: py-polars + run: | + maturin develop --release -- -C codegen-units=8 -C lto=thin -C target-cpu=native + + - name: Run benchmark + working-directory: polars-benchmark + run: | + make run-polars-no-env