Skip to content

Add instructions on running PDS-H - #23025

Merged
rapids-bot[bot] merged 13 commits into
NVIDIA:mainfrom
Matt711:imp/docs/polars-tpch-benchmark-instructions
Jul 2, 2026
Merged

Add instructions on running PDS-H#23025
rapids-bot[bot] merged 13 commits into
NVIDIA:mainfrom
Matt711:imp/docs/polars-tpch-benchmark-instructions

Conversation

@Matt711

@Matt711 Matt711 commented Jun 29, 2026

Copy link
Copy Markdown
Member

Description

Documentation for humans and agents to refer to for reproducing our benchmarks.

I punted on PDS-DS primarily because the data generation step is not as simple as PDS-H. I'll add instructions in a follow-up. First I want to close out #20587, so data generation really is just using duckdb's wrapper of dsdgen, rather than having to convert to floats.

#20587 should mostly be done, since the work we did for PDS-H with decimals should cover most of the cases we'll encounter for PDS-DS. FYI: I'm testing PDS-DS with decimals in #22848.

Contributes to #17640

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@Matt711 Matt711 added doc Documentation non-breaking Non-breaking change labels Jun 29, 2026
@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a PDS-H benchmark guide, updates cuDF Polars docs navigation, and changes benchmark-script thread defaults for non-CPU frontends.

Changes

cuDF Polars Benchmark Updates

Layer / File(s) Summary
PDS-H benchmark page
docs/cudf/source/cudf_polars/benchmarks.md
Adds PDS-H setup, dataset generation, CPU/SPMD/Ray execution commands, results output details, tuning options, and a PDS-DS placeholder.
Docs navigation wiring
docs/cudf/source/cudf_polars/index.md
Updates the benchmark link to the main-branch repository path and adds benchmarks to the Learn More toctree.
Benchmark threading defaults
python/cudf_polars/cudf_polars/streaming/benchmarks/pdsh.py, python/cudf_polars/cudf_polars/streaming/benchmarks/pdsds.py, python/cudf_polars/cudf_polars/streaming/benchmarks/utils.py
Sets RAPIDSMPF_NUM_STREAMING_THREADS, limits Polars/OpenMP threads for non-CPU frontends, and updates captured benchmark environment variables.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • rapidsai/cudf#22619: Also updates cuDF Polars benchmark documentation and related navigation references.

Suggested reviewers: madsbk, TomAugspurger, wence-

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: adding instructions for running the PDS-H benchmark.
Description check ✅ Passed The description is clearly related to the benchmark documentation and explains why PDS-DS is deferred.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs/cudf/source/cudf_polars/index.md (1)

95-96: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Point this link at the new docs page.

The benchmark entry already has a dedicated benchmarks page in the toctree, so linking readers to the GitHub source tree makes the navigation split between docs and source. A {doc} link keeps the entry point inside the rendered docs and matches the existing cross-link pattern in cudf_polars.

♻️ Proposed fix
-For more information on the benchmarks being run, see the PDS queries in the [cuDF GitHub repository](https://github.com/rapidsai/cudf/tree/main/python/cudf_polars/cudf_polars/streaming/benchmarks).
+For more information on the benchmarks being run, see {doc}`benchmarks`.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/cudf/source/cudf_polars/index.md` around lines 95 - 96, The benchmark
reference in the docs still points to the GitHub source tree instead of the
rendered documentation. Update the link in the cuDF Polars benchmark section to
use the existing `benchmarks` doc page via the current cross-link pattern used
in `cudf_polars`, so readers stay within the docs navigation.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@docs/cudf/source/cudf_polars/index.md`:
- Around line 95-96: The benchmark reference in the docs still points to the
GitHub source tree instead of the rendered documentation. Update the link in the
cuDF Polars benchmark section to use the existing `benchmarks` doc page via the
current cross-link pattern used in `cudf_polars`, so readers stay within the
docs navigation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2574264d-0a27-4c92-8bf0-d2391bb6e3c0

📥 Commits

Reviewing files that changed from the base of the PR and between 09b988f and 4df77a1.

📒 Files selected for processing (2)
  • docs/cudf/source/cudf_polars/benchmarks.md
  • docs/cudf/source/cudf_polars/index.md

Comment thread docs/cudf/source/cudf_polars/benchmarks.md Outdated
Comment thread docs/cudf/source/cudf_polars/benchmarks.md Outdated
Comment thread docs/cudf/source/cudf_polars/benchmarks.md Outdated
Comment thread docs/cudf/source/cudf_polars/benchmarks.md Outdated

### Run

Set these environment variables before running to match the configuration used for the published results:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes me nervous, since it'll inevitably go out of date. Maybe that's the right tradeoff, but could we at least link to those published benchmarks from here?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed them from here. And added defaults for POLARS_MAX_THREADS=1 and OMP_NUM_THREADS=1 for the GPU benchmarks in the actual runner.

Also did the same for RAPIDSMPF_NUM_STREAMING_THREADS

@Matt711
Matt711 requested a review from a team as a code owner June 29, 2026 23:49
@Matt711
Matt711 requested a review from rjzamora June 29, 2026 23:49
@github-actions github-actions Bot added Python Affects Python cuDF API. cudf-polars Issues specific to cudf-polars labels Jun 29, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@python/cudf_polars/cudf_polars/streaming/benchmarks/pdsh.py`:
- Around line 45-47: The benchmark environment metadata is still looking for the
old RapidsMPF thread variable name, so it will miss the value now being set in
pdsh.py. Update the environment capture logic in utils.py to read the exact
RAPIDSMPF_NUM_STREAMING_THREADS name used by the benchmark setup, or include
both spellings if you need compatibility, so extra_info.environment records the
streaming-thread setting correctly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: a0cf1e03-9b3f-49ba-9f14-a49a48545342

📥 Commits

Reviewing files that changed from the base of the PR and between 4df77a1 and 05ea9ed.

📒 Files selected for processing (2)
  • docs/cudf/source/cudf_polars/benchmarks.md
  • python/cudf_polars/cudf_polars/streaming/benchmarks/pdsh.py
✅ Files skipped from review due to trivial changes (1)
  • docs/cudf/source/cudf_polars/benchmarks.md

Comment thread python/cudf_polars/cudf_polars/streaming/benchmarks/pdsh.py
Comment thread python/cudf_polars/cudf_polars/streaming/benchmarks/pdsh.py Outdated
@GPUtester GPUtester moved this to In Progress in cuDF Python Jun 30, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@python/cudf_polars/cudf_polars/streaming/benchmarks/pdsds.py`:
- Around line 41-44: The benchmark setup in pdsds.py is only mutating os.environ
in the driver, so connected dask/ray workers never receive the updated
RAPIDSMPF_NUM_STREAMING_THREADS, POLARS_MAX_THREADS, or OMP_NUM_THREADS values.
Update the startup flow around build_parser and the benchmark environment setup
to either propagate these settings to workers through the cluster/worker launch
path or reject --connect unless the remote workers are already configured, and
make sure extra_info.environment reflects the actual worker-side values rather
than only the driver’s overrides.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6f8da132-9506-46d3-b538-cb54b127992c

📥 Commits

Reviewing files that changed from the base of the PR and between be44f90 and e28cc86.

📒 Files selected for processing (3)
  • python/cudf_polars/cudf_polars/streaming/benchmarks/pdsds.py
  • python/cudf_polars/cudf_polars/streaming/benchmarks/pdsh.py
  • python/cudf_polars/cudf_polars/streaming/benchmarks/utils.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • python/cudf_polars/cudf_polars/streaming/benchmarks/pdsh.py

Comment thread python/cudf_polars/cudf_polars/streaming/benchmarks/pdsds.py
@Matt711

Matt711 commented Jul 1, 2026

Copy link
Copy Markdown
Member Author

@mroeschke In 9d31e22 and 90c2f79 I updated the instructions for running CPU benchmarks on CPU-only machines.

@Matt711

Matt711 commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

I'm merging this as-is. But will follow-up with a PR to add pandas instructions and work out some broken assumptions in regards to running CPU benchmarks on CPU-only machines. The assumption is CUDA is installed (which of course it isn't).

@Matt711

Matt711 commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

/merge

@rapids-bot
rapids-bot Bot merged commit 226a17a into NVIDIA:main Jul 2, 2026
130 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in cuDF Python Jul 2, 2026
@Matt711
Matt711 deleted the imp/docs/polars-tpch-benchmark-instructions branch July 2, 2026 03:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cudf-polars Issues specific to cudf-polars doc Documentation non-breaking Non-breaking change Python Affects Python cuDF API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants