-
Notifications
You must be signed in to change notification settings - Fork 901
v5.0.x: OSC rdma patches #9961
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
v5.0.x: OSC rdma patches #9961
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add ofi to the list of btls that do not need to verify connectivity, since the most common use case of OFI does provide this property. Rename the list of btls with full connectivity from ompi_osc_rdma_btls to ompi_osc_rdma_full_connectivity_btls to make it a little more clear what the list represents. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit 2e4d3a0)
When the rdma and pt2pt onesided components both existed, there was a use case for lowering the priority of the RDMA component when certain MTLs are in use. With the pt2pt component removed, this is dead code. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit 9c74047)
With the removal of the pt2pt component, there's really not an advantage to having 2 levels of priority (depending on whether we have a true rdma btl or emulated), so go with a single priority. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit cc2f5ef)
The RDMA OSC component requires remote completion for its synchronization algorithms to work properly. This is phase one of two to handle BTLs which do not provide remote completion. This patch requires "accelerated" BTLs to support remote completion. Accelerated BTLs are those which can communicate with all peers in the Window (so multiple BTLs per Window are not used), natively provide the required put/get/atomic operations, and which can register suitable memory for the window's communication. Signed-off-by: Wei Zhang <[email protected]> Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit fcd215d)
No functional changes (an initialization was reordered to make documentation easier), but add documentation about BTL selection behavior. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit e509302)
Skipping the over-optimization of supporting a BTL that can talk native RDMA to everyone but self (we don't have one of those today) allows a large simplification of the accelerated BTL selection on the OSC RDMA component. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit e0a5b8d)
Remove the type-specific implementation of min in the btl active message code and use opal_min instead. While this loses type safety in the general case, most compilers used in development support C generics, so we'll still get type safety checks. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit fe3b925)
Rename internal functions in the btl am-rdma code to be consistently prefixed by am_rdma_. Previously, there was a mixture of prefixes, all of which were unnecessarily long for private functions. There is no external-visible change in this commit. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit 3f8d80f)
Disable the underlying flush() call when using the am-rdma interfce. The current code does not properly handle flushing between the am-rdma and underlying code properly, so it is quite easy to end up with flush not behaving the way users expect. Since there are currently no callers that rely on a btl having both flush and am-rdma interfaces, explicitly disable the case for now. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit 6b8887c)
Add per-btl storage for the am-rdma interface, allowing the interface to make one-time decisions about whether or not to use the underlying put/get interfaces. This is a necessary step in allowing users of the am-rdma interface to require different semantics (completion, registration, etc.) than what is natively provided by the BTL. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit adcb2a1)
Add a mode for the am-rdma interface where the existing BTL is not updated, but the wrapper functions are exported directly to the caller. This interface allows for specifying required flags (although REMOTE_COMPLETION is the only one supported today) and disabling memory registration requirements for the returned interface. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit 0475fe9)
The front end functions for am-rdma atomic operations only allow a 4 or 8 byte atomic. Add an assert on the progress function that the received size is less than a uint8_t can hold before assignment from a size_t. Signed-off-by: Brian Barrett <[email protected]> (cherry picked from commit 341f164)
Signed-off-by: Austen Lauria <[email protected]> (cherry picked from commit 45cd218)
a5c0fcf
to
a63fdb7
Compare
gpaulsen
approved these changes
Feb 3, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Port of #9835, #9904 and #9932