Skip to content

[RELEASE] rapidsmpf v25.06 #322

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 86 commits into from
Jun 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
312f7fe
Update GHA workflow to build on `branch-*` (#159)
pentschev Mar 21, 2025
b0b0f5f
Drop CUDA 11 (#144)
pentschev Mar 24, 2025
2a3b244
Fix GHA build workflow (#160)
pentschev Mar 24, 2025
37f062a
Spill manager (#146)
madsbk Mar 24, 2025
bf35b04
Remove numpydoc validation from pre-commit (#156)
TomAugspurger Mar 24, 2025
3df14c3
Tighten compiler flags and fix build issues (#158)
pentschev Mar 24, 2025
8649bc1
Fix build errors (#163)
pentschev Mar 24, 2025
d65cd8a
Shuffler: register a spill function (#165)
madsbk Mar 25, 2025
93b4c0f
Add `ProgressThread` supporting generic functions (#143)
pentschev Mar 25, 2025
9269624
Adding an optional timeout for wait methods (#164)
nirandaperera Mar 25, 2025
2241c0c
Refactor Dask cluster boostrapping (#150)
TomAugspurger Mar 25, 2025
775878e
PeriodicSpillCheck test: more wiggle room (#170)
madsbk Mar 26, 2025
4ffc067
Test barrier must run on the dupped communicator (#171)
wence- Mar 26, 2025
b1ca99b
Simplify memory-resource handling in Dask integration (#172)
rjzamora Mar 26, 2025
7b04763
Adding Ray shuffle example (#105)
nirandaperera Mar 31, 2025
8187c54
Spill manager python bindings (#169)
madsbk Apr 1, 2025
492e00d
Test `SpillOnInsertAndExtraction` with UCXX (#167)
pentschev Apr 1, 2025
f311402
[Refactor] Integration dask submodule (#174)
madsbk Apr 2, 2025
454e33e
Fix `cudf_polars` imports (#176)
rjzamora Apr 2, 2025
b61c9c0
Streaming shuffle example (#130)
TomAugspurger Apr 3, 2025
0da087d
Spillable Python Objects (#177)
madsbk Apr 4, 2025
f38a8e4
Start removing tie to cudf datastructures in interface (#179)
wence- Apr 7, 2025
35b515d
Use `ProgressThread` in `Shuffler` (#166)
pentschev Apr 7, 2025
2b30454
[MINOR] Move Buffer data into a variant (#178)
nirandaperera Apr 8, 2025
951bc6d
More Python bindings of the spill manager (#182)
madsbk Apr 9, 2025
2f4048e
Test-bug: wait 100 ms NOT 100 seconds! (#184)
madsbk Apr 9, 2025
12575f9
Fix UB because the shuffler didn't clean up its spill function (#185)
madsbk Apr 9, 2025
3bc0416
Fix deadlock by releasing the GIL (#188)
madsbk Apr 10, 2025
7eba2e0
Refactor duration (#189)
madsbk Apr 10, 2025
9a8f8c3
Include `RAPIDS.cmake` to prevent downloading (#183)
pentschev Apr 11, 2025
241e5f4
More statistics (#186)
madsbk Apr 11, 2025
a95ee47
Timeout with stack (#162)
pentschev Apr 11, 2025
7345af5
Add pytest fixture to initialize/shutdown Ray cluster (#203)
pentschev Apr 14, 2025
bd42eaa
Rename Python module and package to `rapidsmpf` (#204)
pentschev Apr 14, 2025
59616e5
Rename C++ files and namespace to `rapidsmpf` (#201)
madsbk Apr 14, 2025
ed6024c
Rename CMake variables to `RAPIDSMPF` (#198)
madsbk Apr 15, 2025
22f951d
Rename C++ macros (#210)
pentschev Apr 15, 2025
4a8cc09
Rename CMake exports and conda package (#209)
pentschev Apr 15, 2025
e337c01
Release `SpillManager` pointer without GIL (#208)
pentschev Apr 15, 2025
99ea1d3
Rename docs (#211)
pentschev Apr 15, 2025
30c0844
Rename few missing entries to `rapidsmpf` (#212)
pentschev Apr 15, 2025
1598207
Synchronize CUDA device when transferring with UCXX (#215)
pentschev Apr 17, 2025
1badc50
Update CODEOWNERS (#217)
raydouglass Apr 18, 2025
230f566
Update to new repository name (#223)
pentschev Apr 22, 2025
c540804
Upload conda packages (#221)
pentschev Apr 23, 2025
50c7913
Add `conda-python-build` dependency on `conda-cpp-build` (#224)
pentschev Apr 23, 2025
8bae8d9
Remove custom nightly pipeline (#222)
pentschev Apr 24, 2025
13343ec
Treat doc build warnings as errors (#220)
TomAugspurger Apr 24, 2025
b77ed56
Add missing `unordered_map` include (#229)
pentschev Apr 28, 2025
74142e3
More accurate cmake specs (#233)
wence- Apr 30, 2025
b620771
Organize chunks by destination rank in the `PostBox` (#236)
nirandaperera May 2, 2025
9a174d1
[Refactor] Dask worker context (#237)
madsbk May 2, 2025
d556b30
Move Buffer::overloaded dispatch helper to top level (#238)
wence- May 2, 2025
0317f38
Use CUDA events instead of CUDA device/stream synchronization (#225)
pentschev May 5, 2025
94d5257
Python spilling: use chunked packing with a staging buffer (#248)
madsbk May 6, 2025
d4c738b
Implement `split_and_shuffle`, as a building block for sort-shuffling…
seberg May 7, 2025
132a57b
Fix `dependencies.yaml` pip requirements (#245)
trxcllnt May 7, 2025
3d62290
ProgressThread: add sleep argument (#253)
madsbk May 7, 2025
60e85f6
Dask shuffler cleanup (#254)
madsbk May 8, 2025
ee90fce
[MINOR] Rename postboxes (#257)
nirandaperera May 8, 2025
6ff0792
Add support for Python 3.13 (#262)
gforsyth May 8, 2025
6f747a5
Build and test with CUDA 12.9.0 (#264)
bdice May 8, 2025
6877cb6
Basic sorting support with Dask (#256)
rjzamora May 8, 2025
ef891a1
Change get_gtest to link statically and remove tests from package (#261)
seberg May 9, 2025
50263b4
Optional MPI support (#260)
madsbk May 9, 2025
b19d22d
Skip Ray for Python 3.13 (#272)
pentschev May 13, 2025
b4077bf
use GitHub Actions artifact store for package downloads (#274)
jameslamb May 13, 2025
120f13d
Remove spdlog dep (#277)
vyasr May 14, 2025
d03f885
Create PackedData from cudf PackedColumns (#228)
nirandaperera May 14, 2025
df35cd2
Finish CUDA 12.9 migration and use branch-25.06 workflows (#282)
bdice May 15, 2025
3002f9b
dask 2025.5.0 compat (#284)
TomAugspurger May 16, 2025
ed3dc0a
Install Ray from PyPI to build docs on Python 3.13 (#286)
pentschev May 19, 2025
55346a0
Buffer copy utils (#270)
nirandaperera May 19, 2025
6c3adfa
OOM protection by fallback to managed memory. (#287)
madsbk May 20, 2025
2404441
Configuration System (#285)
madsbk May 20, 2025
182f4e3
Ensure we drop the gil when calling C++ dtors (#294)
wence- May 21, 2025
2ed859c
Support GCC version 11 (#297)
madsbk May 22, 2025
93634f1
switch from 'run_script' to 'script' in GitHub Actions workflows (#293)
jameslamb May 22, 2025
4c68051
Serialization of Config Options (#299)
madsbk May 23, 2025
38f308f
feat: port conda recipes to `rattler-build` (#289)
gforsyth May 27, 2025
26e5ec4
enable Branch Checker (#310)
jameslamb May 28, 2025
d384363
Python bindings for `Options.get()` (#303)
madsbk May 28, 2025
e697527
Adding google benchmarks and `PartitionAndPack` bench (#307)
nirandaperera May 28, 2025
54b625c
feat: add wheel build of `rapidsmpf` (#269)
gforsyth May 29, 2025
6f86b91
[MINOR] Adding output partition count arg to benchmark (#316)
nirandaperera May 29, 2025
0147856
add wheel publishing (#319)
jameslamb May 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#cpp code owners
cpp/ @rapidsai/rapids-multi-gpu-cpp-codeowners
cpp/ @rapidsai/rapidsmpf-cpp-codeowners

#python code owners
python/ @rapidsai/rapids-multi-gpu-python-codeowners
python/ @rapidsai/rapidsmpf-python-codeowners

#cmake code owners
CMakeLists.txt @rapidsai/rapids-multi-gpu-cmake-codeowners
**/cmake/ @rapidsai/rapids-multi-gpu-cmake-codeowners
*.cmake @rapidsai/rapids-multi-gpu-cmake-codeowners
CMakeLists.txt @rapidsai/rapidsmpf-cmake-codeowners
**/cmake/ @rapidsai/rapidsmpf-cmake-codeowners
*.cmake @rapidsai/rapidsmpf-cmake-codeowners

#CI code owners
/.github/ @rapidsai/ci-codeowners
Expand Down
2 changes: 1 addition & 1 deletion .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Documentation for config - https://github.com/actions/labeler#common-examples

librapidsmp:
librapidsmpf:
- 'cpp/**'

CMake:
Expand Down
2 changes: 1 addition & 1 deletion .github/ops-bot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# - https://github.com/rapidsai/ops-bot

auto_merger: true
branch_checker: false
branch_checker: true
label_checker: true
release_drafter: false
recently_updated: false
Expand Down
84 changes: 67 additions & 17 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ name: build
on:
push:
branches:
- "main"
- "branch-*"
tags:
- v[0-9][0-9].[0-9][0-9].[0-9][0-9]
workflow_dispatch:
inputs:
branch:
Expand All @@ -18,20 +20,6 @@ on:
build_type:
type: string
default: nightly
workflow_call:
inputs:
branch:
required: true
type: string
date:
required: true
type: string
sha:
required: true
type: string
build_type:
type: string
required: true

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -45,18 +33,32 @@ jobs:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
script: ci/build_cpp.sh
sha: ${{ inputs.sha }}
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
conda-python-build:
needs: [conda-cpp-build]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.06
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
script: ci/build_python.sh
sha: ${{ inputs.sha }}
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
upload-conda:
needs: [conda-cpp-build, conda-python-build]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@branch-25.06
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
docs-build:
if: github.ref_type == 'branch'
needs: python-build
needs: conda-python-build
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.06
with:
Expand All @@ -66,5 +68,53 @@ jobs:
container_image: "rapidsai/ci-conda:latest"
date: ${{ inputs.date }}
node_type: "cpu8"
run_script: "ci/build_docs.sh"
script: "ci/build_docs.sh"
sha: ${{ inputs.sha }}
wheel-build-librapidsmpf:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/build_wheel_librapidsmpf.sh
package-name: librapidsmpf
package-type: cpp
# build for every combination of arch on CUDA 12 and latest Python
matrix_filter: group_by([.ARCH]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
wheel-publish-librapidsmpf:
needs: wheel-build-librapidsmpf
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.06
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
package-name: librapidsmpf
package-type: cpp
wheel-build-rapidsmpf:
needs: wheel-build-librapidsmpf
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/build_wheel_rapidsmpf.sh
package-name: rapidsmpf
package-type: python
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
wheel-publish-rapidsmpf:
needs: wheel-build-rapidsmpf
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.06
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
package-name: rapidsmpf
package-type: python
37 changes: 0 additions & 37 deletions .github/workflows/nightly-pipeline.yaml

This file was deleted.

42 changes: 41 additions & 1 deletion .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ jobs:
- conda-python-build
- conda-python-tests
- docs-build
- wheel-build-librapidsmpf
- wheel-build-rapidsmpf
- wheel-test
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@branch-25.06
if: always()
Expand All @@ -26,33 +29,70 @@ jobs:
checks:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@branch-25.06
wheel-build-librapidsmpf:
needs: checks
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
with:
build_type: pull-request
script: ci/build_wheel_librapidsmpf.sh
package-name: librapidsmpf
package-type: cpp
# build for every combination of arch on CUDA 12 and latest Python
matrix_filter: group_by([.ARCH]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
wheel-build-rapidsmpf:
needs: [checks, wheel-build-librapidsmpf]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.06
with:
build_type: pull-request
script: ci/build_wheel_rapidsmpf.sh
package-name: rapidsmpf
package-type: python
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
wheel-test:
needs: wheel-build-rapidsmpf
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.06
with:
build_type: pull-request
script: ci/test_wheel.sh
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
conda-cpp-build:
needs: checks
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-25.06
with:
build_type: pull-request
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
script: ci/build_cpp.sh
conda-cpp-tests:
needs: conda-cpp-build
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-25.06
with:
build_type: pull-request
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
container-options: "--cap-add CAP_SYS_PTRACE --shm-size=8g --ulimit=nofile=1000000:1000000"
script: ci/test_cpp.sh
conda-python-build:
needs: conda-cpp-build
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.06
with:
build_type: pull-request
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
script: ci/build_python.sh
conda-python-tests:
needs: conda-python-build
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.06
with:
build_type: pull-request
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
container-options: "--cap-add CAP_SYS_PTRACE --shm-size=8g --ulimit=nofile=1000000:1000000"
run_codecov: false
script: ci/test_python.sh
docs-build:
needs: conda-python-build
secrets: inherit
Expand All @@ -62,4 +102,4 @@ jobs:
node_type: "cpu8"
arch: "amd64"
container_image: "rapidsai/ci-conda:latest"
run_script: "ci/build_docs.sh"
script: "ci/build_docs.sh"
28 changes: 14 additions & 14 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,6 @@ on:
build_type:
type: string
default: nightly
workflow_call:
inputs:
branch:
required: true
type: string
date:
required: true
type: string
sha:
required: true
type: string
build_type:
type: string
required: true

jobs:
conda-cpp-tests:
Expand All @@ -38,7 +24,9 @@ jobs:
build_type: ${{ inputs.build_type }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
script: ci/test_cpp.sh
sha: ${{ inputs.sha }}
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
container-options: "--cap-add CAP_SYS_PTRACE --shm-size=8g --ulimit=nofile=1000000:1000000"
conda-python-tests:
secrets: inherit
Expand All @@ -47,6 +35,18 @@ jobs:
build_type: ${{ inputs.build_type }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
script: ci/test_python.sh
sha: ${{ inputs.sha }}
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
container-options: "--cap-add CAP_SYS_PTRACE --shm-size=8g --ulimit=nofile=1000000:1000000"
run_codecov: false
wheel-test:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.06
with:
build_type: ${{ inputs.build_type }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_wheel.sh
matrix_filter: map(select(.CUDA_VER | startswith("11") | not))
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ build
.mypy_cache
.hypothesis
__pycache__
compile_commands.json
9 changes: 2 additions & 7 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ repos:
hooks:
- id: mypy
args: ["--config-file=pyproject.toml",
"python/rapidsmp/"]
"python/rapidsmpf/"]
pass_filenames: false
- repo: https://github.com/PyCQA/isort
rev: 5.13.2
Expand All @@ -75,11 +75,6 @@ repos:
args: ["--config-root=python/", "--resolve-all-configs"]
files: python/.*
types_or: [cython]
- repo: https://github.com/numpy/numpydoc
rev: v1.8.0
hooks:
- id: numpydoc-validation
exclude: (python/rapidsmp/rapidsmp/tests/|.*__init__)
- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
hooks:
Expand All @@ -96,7 +91,7 @@ repos:
args: [--fix, --main-branch=main]
- id: verify-alpha-spec
- id: verify-codeowners
args: [--fix, --project-prefix=rapids-multi-gpu]
args: [--fix, --project-prefix=rapidsmpf]
- repo: https://github.com/rapidsai/dependency-file-generator
rev: v1.16.0
hooks:
Expand Down
Loading
Loading