-
-
Notifications
You must be signed in to change notification settings - Fork 437
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
openshmem-parcelport initial import #6308
Conversation
Performance test reportHPX PerformanceComparison
Info
Comparison
Info
Comparison
Info
Explanation of Symbols
|
Performance test reportHPX PerformanceComparison
Info
Comparison
Info
Comparison
Info
Explanation of Symbols
|
Signed-off-by: Johan511 <[email protected]>
Signed-off-by: Johan511 <[email protected]>
The major changes include: - Necessary changes to CMake files to accommodate changes due to the split of the original LCI library into two libraries (LCI and LCT). - A new performance counters and logging infrastructure based on LCT (currently only applied to the lci pp). - Controlled by CMake variables HPX_WITH_PARCELPORT_LCI_PCOUNTER and HPX_WITH_PARCELPORT_LCI_LOG. The default is OFF. - New LCI parcelport configurations: - reg_mem: whether to explicitly register memory buffers for long messages (value 1) or just let LCI register them on the fly (value 0). The default is 1. - ndevices: how many LCI devices (low-level network contexts) to use. The default is 2. - ncomps: how many completion managers to use. The default is 1.
@hkaiser is it ok if this branch is closed in favor of a newer branch build around the current version of HPX? the rebase is a little too extensive. |
Sure, whatever works for you. You could also simply force push your new version to this PR (overwrite what's there), though. |
Any background context you want to provide?
Implements an OpenSHMEM parcelport. This PR adds cmake-based (via pkg-config) OpenSHMEM configuration for the sandia-openshmem and the ucx-openshmem.
OpenSHMEM creates a distributed shared segment on each locality. The following flags were added to cmake.
-DHPX_WITH_PARCELPORT_OPENSHMEM=ON
-DHPX_WITH_PARCELPORT_OPENSHMEM_CONDUIT={sos, ucx}
The
sos
option is for Sandia-OpenSHMEM. Theucx
option is for the UCX-OpenSHMEM.Both Sandia OpenSHMEM and UCX-OpenSHMEM should be compiled with
--enable-shared
to make sure their OpenSHMEM builds are shared libraries. The GASNet-parcelport established the foundation for this implementation. Each locality gets a page of symmetric memory, equal to what is provided in GASNet, for communication.Checklist
Not all points below apply to all pull requests.