-
-
Notifications
You must be signed in to change notification settings - Fork 429
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
6274: Improve the MPI parcelport and change the zero-copy threshold to 8192 r=hkaiser a=JiakunYan Improve the MPI parcelport: - Replace the lock-based tag provider with an atomic variable - Make the header message size dynamic Since the maximum size of the dynamic header message is set to be the zero-copy serialization threshold, I also changed it from 128B to 8192B. (The message size that MPI switches from eager protocol to rendezvous protocol is usually around 8K - 64K). Experiments: Octo-Tiger, max_level=6, SDSC Expanse, 32 nodes, 128 threads per node. With `hpx.parcel.mpi.sendimm=0`, this PR improves the total execution time from 11.77s to 10.68s. With `hpx.parcel.mpi.sendimm=1`, this PR improves the total execution time from ~60s to 11.72s. Co-authored-by: Jiakun Yan <[email protected]>
- Loading branch information
Showing
14 changed files
with
277 additions
and
271 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -90,12 +90,6 @@ set(HPX_PARCELPORT_LIBFABRIC_WITH_LOGGING | |
OFF | ||
CACHE BOOL "Libfabric parcelport logging on/off flag" | ||
) | ||
set(HPX_WITH_ZERO_COPY_SERIALIZATION_THRESHOLD | ||
This comment has been minimized.
Sorry, something went wrong.
vivekd01
|
||
"4096" | ||
CACHE | ||
STRING | ||
"The threshold in bytes to when perform zero copy optimizations (default: 128)" | ||
) | ||
|
||
# We do a cross compilation here ... | ||
set(CMAKE_CROSSCOMPILING | ||
|
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.
hpx_option(
HPX_WITH_ZERO_COPY_SERIALIZATION_THRESHOLD
STRING
ADVANCED
)
After making this change, rebuild your project using CMake, and the HPX_WITH_ZERO_COPY_SERIALIZATION_THRESHOLD will be set to "8192" as the default value.