Skip to content
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

[RELEASE] nx-cugraph v25.02 #86

Open
wants to merge 33 commits into
base: main
Choose a base branch
from
Open

[RELEASE] nx-cugraph v25.02 #86

wants to merge 33 commits into from

Conversation

raydouglass
Copy link
Member

❄️ Code freeze for branch-25.02 and v25.02 release

What does this mean?

Only critical/hotfix level issues should be merged into branch-25.02 until release (merging of this PR).

What is the purpose of this PR?

  • Update documentation
  • Allow testing for the new release
  • Enable a means to merge branch-25.02 into main for the release

raydouglass and others added 30 commits November 18, 2024 09:47
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
By default, CI runs on draft PRs. This leads to many CI runs that may be unnecessary.

With this PR's change to `.github/copy-pr-bot.yaml`, an `/ok to test` comment from a trusted user is required to trigger CI on draft PRs. Non-draft PRs will run CI by default, assuming that all commits are signed by trusted users. Otherwise an `/ok to test` is required (as before) -- see the `copy-pr-bot` docs at https://docs.gha-runners.nvidia.com/apps/copy-pr-bot/ for more information.

Part of rapidsai/build-planning#123.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Erik Welch (https://github.com/eriknw)
  - James Lamb (https://github.com/jameslamb)

URL: #52
## Changes
 - Skip functions not implemented by nx-cugraph
 - Handle exception where katz_centrality fails to converge and support storing benchmark time
 - Verify that input & output graph for ego_graph is consistent.

Authors:
  - Ralph Liu (https://github.com/nv-rliu)

Approvers:
  - Erik Welch (https://github.com/eriknw)

URL: #51
… references (#53)

Contributes to rapidsai/build-planning#118

Proposes the following changes for pip devcontainers:

* use UCX 1.17 (ref: rapidsai/cugraph-gnn#79 (comment))
* prefer system installation of ucx to the one provided by the `libucx-cu{11,12}` wheels (ref: rapidsai/devcontainers#421 (comment))

And some other related changes noticed while doing that:

* update lingering `24.*` references to `25.02`
* fix `update-version.sh` so those will be correctly updated in future releases

Similar to rapidsai/cugraph#4792

## Notes for Reviewers

### How I tested this

Relying on CI for most things. But for `update-version.sh`, tested like this:

```shell
./ci/release/update-version.sh '25.02.00'
git grep -E '24\.'
```

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: #53
This is targeting branch-25.02 since it's non-critical.

Authors:
  - Erik Welch (https://github.com/eriknw)

Approvers:
  - Ralph Liu (https://github.com/nv-rliu)

URL: #54
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
This pinning was needed for [historical reasons that are no longer relevant](rapidsai/cucim@5cbc80b).

Authors:
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - James Lamb (https://github.com/jameslamb)
  - Rick Ratzel (https://github.com/rlratzel)

URL: #60
This PR adds a newly added benchmark dataset to `bench_algos.py`

Authors:
  - Ralph Liu (https://github.com/nv-rliu)

Approvers:
  - Rick Ratzel (https://github.com/rlratzel)

URL: #61
)

Contributes to rapidsai/build-planning#138

Updates to using UCX 1.18 in pip devcontainers here.

Also updates to the latest version of `rapids-dependency-file-generator` in `pre-commit` config.

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - https://github.com/jakirkham
  - Gil Forsyth (https://github.com/gforsyth)

URL: #65
This function is not yet defined or implemented in NetworkX, and there is high probability the API may change once added to NetworkX. For now, this is "best effort" and simply mimics PLC leiden.

Authors:
  - Erik Welch (https://github.com/eriknw)
  - Ralph Liu (https://github.com/nv-rliu)

Approvers:
  - Rick Ratzel (https://github.com/rlratzel)

URL: #50
This PR uses CUDA 12.8.0 to build and test.

xref: rapidsai/build-planning#139

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: #66
Here are results from a single round of benchmarks for louvain and leiden:
```
Name (time in ms)                                                                 Min
bench_leiden_communities[ds=karate-backend=cugraph-preconverted]              32.3493
bench_louvain_communities[ds=karate-backend=cugraph-preconverted]             15.2782
bench_leiden_communities[ds=netscience-backend=cugraph-preconverted]          83.5688
bench_louvain_communities[ds=netscience-backend=cugraph-preconverted]         34.1273
bench_leiden_communities[ds=email_Eu_core-backend=cugraph-preconverted]       81.3393
bench_louvain_communities[ds=email_Eu_core-backend=cugraph-preconverted]      50.0181
bench_leiden_communities[ds=amazon0302-backend=cugraph-preconverted]         755.0755
bench_louvain_communities[ds=amazon0302-backend=cugraph-preconverted]        939.3094

Name (time in s)                                                                  Min
bench_leiden_communities[ds=cit-patents-backend=cugraph-preconverted]          8.2224
bench_louvain_communities[ds=cit-patents-backend=cugraph-preconverted]         7.7888
bench_leiden_communities[ds=soc-livejournal1-backend=cugraph-preconverted]    16.1031
bench_louvain_communities[ds=soc-livejournal1-backend=cugraph-preconverted]   22.2967
bench_leiden_communities[ds=hollywood-backend=cugraph-preconverted]           22.7196
bench_louvain_communities[ds=hollywood-backend=cugraph-preconverted]          24.3643
bench_leiden_communities[ds=europe_osm-backend=cugraph-preconverted]          39.7309
bench_louvain_communities[ds=europe_osm-backend=cugraph-preconverted]         46.4452
```

Authors:
  - Erik Welch (https://github.com/eriknw)

Approvers:
  - Rick Ratzel (https://github.com/rlratzel)

URL: #67
Adds support for `jaccard_coefficient` to nx-cugraph.

This includes a test, but relies largely on the existing test coverage provided by NetworkX. The test included here could (should) be submitted to NetworkX though in a separate PR, since it is not covering anything unique to nx-cugraph.

A benchmark is also included, with results showing 2-4X speedup. I've seen much, much larger speedup on a different graph (large movie review bipartite graph, showing 966s for NX, 2s for nx-cugraph = ~500X), so I need to investigate further.  This investigation need not prevent this PR from being merged now though.

![image](https://github.com/user-attachments/assets/3ceb7d62-50c4-437e-96d2-0ab452dd39d2)

Authors:
  - Rick Ratzel (https://github.com/rlratzel)

Approvers:
  - Ralph Liu (https://github.com/nv-rliu)
  - Erik Welch (https://github.com/eriknw)

URL: #62
This PR points the shared workflow branches back to the default 25.02 branches.

xref: rapidsai/build-planning#139

Authors:
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: #74
This PR adds a notebook to demonstrate nx-cugraph's support for `nx.jaccard_coefficients()` by implementing a simple movie recommendation system based on MovieLens data.

This notebook will also be made available in Google Colab and referenced in an upcoming blog.

Authors:
  - Rick Ratzel (https://github.com/rlratzel)
  - Ralph Liu (https://github.com/nv-rliu)

Approvers:
  - Ralph Liu (https://github.com/nv-rliu)
  - Erik Welch (https://github.com/eriknw)

URL: #71
This should help give better log messages when `create_using` is an instance of a networkx graph, since we can't update an nx graph inplace.

Authors:
  - Erik Welch (https://github.com/eriknw)

Approvers:
  - Rick Ratzel (https://github.com/rlratzel)

URL: #56
eriknw and others added 3 commits February 5, 2025 00:25
I'd like to understand why `edge_betweenness_centrality` needs to scale results to match networkx when `k` is given. Is PLC or NetworkX doing it wrong? My guess is that NetworkX is actually incorrect this time.

Authors:
  - Erik Welch (https://github.com/eriknw)

Approvers:
  - Ralph Liu (https://github.com/nv-rliu)
  - Rick Ratzel (https://github.com/rlratzel)

URL: #59
Uses a retry wrapper for `pip` commands to try to alleviate CI failures due to hash mismatches that result from network hiccups

xref rapidsai/build-planning#148

This will retry failures that show up in CI like:

```
   Collecting nvidia-cublas-cu12 (from libraft-cu12==25.2.*,>=0.0.0a0)
    Downloading https://pypi.nvidia.com/nvidia-cublas-cu12/nvidia_cublas_cu12-12.8.3.14-py3-none-manylinux_2_27_aarch64.whl (604.9 MB)
       ━━━━━━━━━━━━━━━━━━━━━                 350.2/604.9 MB 229.2 MB/s eta 0:00:02
  ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
      nvidia-cublas-cu12 from https://pypi.nvidia.com/nvidia-cublas-cu12/nvidia_cublas_cu12-12.8.3.14-py3-none-manylinux_2_27_aarch64.whl#sha256=93a4e0e386cc7f6e56c822531396de8170ed17068a1e18f987574895044cd8c3 (from libraft-cu12==25.2.*,>=0.0.0a0):
          Expected sha256 93a4e0e386cc7f6e56c822531396de8170ed17068a1e18f987574895044cd8c3
               Got        849c88d155cb4b4a3fdfebff9270fb367c58370b4243a2bdbcb1b9e7e940b7be
```

Authors:
  - Gil Forsyth (https://github.com/gforsyth)

Approvers:
  - Mike Sarahan (https://github.com/msarahan)
  - Bradley Dice (https://github.com/bdice)

URL: #80
This is a medium-priority algorithm that I considered pairing with @nv-rliu on instead of #32, so I thought I would knock it out while it was still fresh in mind. It was pretty quick.

To reviewers: this is low priority and may slip to the next release. Please do more important things first. It is reasonable to request benchmarking, which I hope to add when I get a chance.

I created more tests in networkx to help with this PR: networkx/networkx#7726

I think the implementation is pretty clean and straightforward, so hopefully others think so too (although it probably requires understanding _what_ this algorithm does).

Authors:
  - Erik Welch (https://github.com/eriknw)

Approvers:
  - Ralph Liu (https://github.com/nv-rliu)
  - Rick Ratzel (https://github.com/rlratzel)

URL: #35
@raydouglass raydouglass requested review from a team as code owners February 7, 2025 19:30
@raydouglass raydouglass requested review from gforsyth and removed request for a team February 7, 2025 19:30
@github-actions github-actions bot added conda Relates to conda packaging benchmarks ci labels Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
benchmarks ci conda Relates to conda packaging
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants