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

Change UCX tag generation to be more unique per communication #34

Open
ilumsden opened this issue Jul 25, 2023 · 0 comments · May be fixed by #50
Open

Change UCX tag generation to be more unique per communication #34

ilumsden opened this issue Jul 25, 2023 · 0 comments · May be fixed by #50
Labels
enhancement New feature or request

Comments

@ilumsden
Copy link
Collaborator

Yet another suggestion from @hariharan-devarajan

Currently, the tags for UCX's tag-matching communication are generated with:

tag = (producer_rank << 32) | consumer_rank

The benefit of this approach is it makes use of information from Flux to create a tag unique to the producer and consumer applications. However, the downside is that multiple communications between the same producer/consumer pair will not use a unique tag, which introduces potential issues with UCX tag matching.

Instead of the current approach, we could maintain a 32-bit counter (or possibly larger) in the module. Using this counter, the module could generate tags using:

tag = (producer_rank << 32) | counter

This tag will be unique for a particular transfer that is outgoing from a particular producer module. As a result, all transfers will have a unique tag until the counter overflows.

@ilumsden ilumsden added the enhancement New feature or request label Jul 25, 2023
@ilumsden ilumsden linked a pull request Oct 5, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant