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

Add local edge source/destination shuffle functions and clean up shuffle utility functions. #4936

Draft
wants to merge 23 commits into
base: branch-25.04
Choose a base branch
from

Conversation

seunghwak
Copy link
Contributor

@seunghwak seunghwak commented Feb 12, 2025

This PR pulls updates from #4934 and #4931. Better be reviewed/merged after these PRs.

This PR was initially created to add forest pruning code. But re-purposed to avoid creating a PR that adds/updates two features (shuffling & forest pruning, forest pruning requires edge source/destination shuffling functions). A separate forest pruning PR will be created pulling updates from this PR.

This PR

  • Added utility functions to shuffle local edge source/destination vertices (already resides in the local GPU based on edge partitioning) to the owning GPUs (by vertex partitioning). This can be achieved just using a sub-communicator (major communicator or minor communicator involving only a subset of the GPUs). This is more efficient than using the existing shuffle_vertices which uses the global communicator.
  • Renamed public shuffle utility functions. Several public shuffle functions have external in their function names (e.g. shuffle_external_vertices), but we are using ext or int abbreviations to refer external (unrenumbered) and internal (renumbered) vertices elsewhere (e.g. renumbering/unrenumbering functions). This PR renames external in those functions to ext for consistency.
  • Splitted graph_functions.hpp to graph_functions.hpp and shuffle_functions.hpp and moved shuffle utility functions to the new shuffle_functions.hpp.
  • We have been calling detail space functions in many places even when there exists a public function doing the same job. This PR updates the codebase to invoke public functions whenever possible.

@seunghwak seunghwak requested a review from a team as a code owner February 12, 2025 22:56
@seunghwak seunghwak marked this pull request as draft February 12, 2025 22:58
Copy link

copy-pr-bot bot commented Feb 12, 2025

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@seunghwak seunghwak self-assigned this Feb 12, 2025
@seunghwak seunghwak added feature request New feature or request non-breaking Non-breaking change labels Feb 12, 2025
@seunghwak seunghwak added this to the 25.04 milestone Feb 12, 2025
@seunghwak seunghwak changed the title [WIP] Find the forest in an undirected graph. Add local edge source/destination shuffle functions and clean up shuffle utility functions. Feb 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CMake cuGraph feature request New feature or request non-breaking Non-breaking change python
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants