Skip to content

Run the cudf-polars test suite against DaskEngine and RayEngine#22381

Open
madsbk wants to merge 16 commits intorapidsai:mainfrom
madsbk:engine_reset-test-dask-and-ray
Open

Run the cudf-polars test suite against DaskEngine and RayEngine#22381
madsbk wants to merge 16 commits intorapidsai:mainfrom
madsbk:engine_reset-test-dask-and-ray

Conversation

@madsbk
Copy link
Copy Markdown
Member

@madsbk madsbk commented May 5, 2026

Builds on the cached streaming_engines fixture from #22364, which amortizes SPMD bootstrap via _reset(), and extends the same pattern to Dask and Ray.

With this change, the test matrix runs against:

["in-memory", "spmd", "spmd-small", "dask", "ray"]

subject to package availability and rrun gating.

We might change the different setups later, but for now CI runs:

Engine Block Size(s) GPU Configuration
SPMDEngine "medium", "small" Single GPU
DaskEngine "medium" Single GPU
RayEngine "medium" Two GPUs

@madsbk madsbk self-assigned this May 5, 2026
@madsbk madsbk added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels May 5, 2026
@github-actions github-actions Bot added Python Affects Python cuDF API. cudf-polars Issues specific to cudf-polars labels May 5, 2026
@GPUtester GPUtester moved this to In Progress in cuDF Python May 5, 2026
@madsbk madsbk force-pushed the engine_reset-test-dask-and-ray branch 3 times, most recently from 7bb501d to 4c5b5da Compare May 6, 2026 11:06
@madsbk madsbk force-pushed the engine_reset-test-dask-and-ray branch from d088a13 to 3fccdf3 Compare May 6, 2026 13:33
@madsbk madsbk force-pushed the engine_reset-test-dask-and-ray branch from 3fccdf3 to b294bf8 Compare May 6, 2026 14:05
Comment thread .github/workflows/pr.yaml
# (rapidsmpf compatibility already validated in rapidsmpf CI)
matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
build_type: pull-request
container-options: "--cap-add CAP_SYS_PTRACE --shm-size=8g --ulimit=nofile=1000000:1000000"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

These changes are necessary to provide enough resources for UCX. For reference, we already do the same for UCXX and RapidsMPF, both need it for the same reason:

@madsbk madsbk marked this pull request as ready for review May 6, 2026 18:56
@madsbk madsbk requested a review from a team as a code owner May 6, 2026 18:56
@madsbk madsbk requested review from a team as code owners May 6, 2026 18:56
@madsbk madsbk requested review from Matt711 and msarahan May 6, 2026 18:56
@rapidsai rapidsai deleted a comment from pentschev May 6, 2026
@rapidsai rapidsai deleted a comment from pentschev May 6, 2026
@rapidsai rapidsai deleted a comment from pentschev May 6, 2026
@rapidsai rapidsai deleted a comment from copy-pr-bot Bot May 6, 2026
@pytest.mark.parametrize("max_rows_per_partition", [3, 9])
def test_join_conditional(reverse, max_rows_per_partition, streaming_engine_factory):
streaming_engine = streaming_engine_factory(
def test_join_conditional(reverse, max_rows_per_partition, spmd_engine_factory):
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.

Why are these spmd only? If it's just for the pytest.warns, we should probably just make that a contextlib.nullcontext() when we have a non-spmd engine.

Comment on lines +72 to +73
# The metadata being asserted on is determined by IR lowering
# (engine-agnostic), so SPMD coverage is sufficient.
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.

Is using spmd_engine_factory your general recommendation for this these types of tests that we're really, really sure should be engine-agnostic?

Comment thread dependencies.yaml Outdated
common:
- output_types: [conda, requirements, pyproject]
packages:
- ray>=2.0
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We don't need to hold this PR for this, but perhaps we might want to pin to >=2.55.1 like we do in RapidsMPF. Only 2.55.1 support aarch64 and Python 3.14. Although this condition will satisfy version 2.55.1, it's best that we know we're testing with the minimal supported version for everything we care about.

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 improvement Improvement / enhancement to an existing function non-breaking Non-breaking change Python Affects Python cuDF API.

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

5 participants