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

Repartitioner for communication pattern #148

Merged
merged 31 commits into from
Aug 28, 2024
Merged

Conversation

greole
Copy link
Collaborator

@greole greole commented Aug 9, 2024

This PR implements the first part of the repartitioner namely repartitioning of the communication pattern.

Repartitioning means that based on the parameter ranks_per_gpu a set of owning and non-owning ranks are created. Owning ranks take over all the matrix rows and communication of the non owning ranks.

To repartition the communication patter the following steps are performed:

  • Check all communication partners on every rank and decide whether they are on a remote rank or local after repartitioning
  • All communication to and from local after repartitioning ranks can be discarded
  • The remaining non-local communication needs to be transferred to new owner rank

@greole greole changed the base branch from dev to stack/ogl_0.6 August 9, 2024 07:48
include/OGL/Repartitioner.H Outdated Show resolved Hide resolved
include/OGL/Repartitioner.H Outdated Show resolved Hide resolved


/* @brief given received interfaces this function sorts into local and non
*local
Copy link
Collaborator

@chihta-wang chihta-wang Aug 19, 2024

Choose a reason for hiding this comment

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

It is a little confusing here.

According to the comment here, the function sorts a given set of interfaces into local and nonlocal interfaces.
But the function takes local and nonlocal sparsity patterns and returns a new non-local sparsity pattern.

Does the function actually do a sorting job for a given set of interfaces?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good catch, this comment is outdated. I'll fix it with the PR that implements the function.

include/OGL/Repartitioner.H Outdated Show resolved Hide resolved
include/OGL/Repartitioner.H Outdated Show resolved Hide resolved
@greole greole changed the title Impl/repartitioner Repartitioner for communication pattern Aug 21, 2024
@greole greole merged commit 6da10b3 into stack/ogl_0.6 Aug 28, 2024
16 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants