Sandia OpenSHMEM v1.4.1
The Sandia OpenSHMEM development team is pleased to announce SOS v1.4.1. Below are some of the changes included in this release:
- Significantly improved the performance and tunability of SOS when using multiple threads and/or numerous OpenSHMEM contexts.
- Added multi-threaded implementations of the shmem_perf_suite throughput benchmarks, which make use of OpenSHMEM contexts and OpenMP.
- Modified the test suite to enable building and running external to the SOS repository (see https://github.com/openshmem-org/tests-sos).
- Provided a pkg-config file for Sandia OpenSHMEM named 'sos'.
- Added a multi-threaded lock unit test with an accompanying library for thread-safe usage of OpenSHMEM locks.
- Added an optional probe routine to assist OFI transport progress (see --enable-manual-progress), which may improve the performance of pending communication operations for some providers (notably, PSM2).
- Improved the fidelity of throughput measurements in the performance testing suite.
- Added check to performance suite to verify that source and target processes are located on different nodes.
- Added the SHMEM_OFI_STX_DISABLE_PRIVATE mode which disables STX privatization, potentially improving load balance across transmit resources.
- SHMEM_OFI_STX_MAX default value reduced to 1 to avoid resource exhaustion with some providers.
- Improved the portability of SOS's error-reporting utilities.
- Introduced support for the shmem_query_thread routine.
- Added the shmemx_register_gettid function, which allows users to pass a function pointer for setting custom thread IDs.
- Add check for ASLR when remote virtual addressing optimization is enabled.
- Added the --disable-aslr-check options to disable the check for address space layout randomization.
- Added a unit test to validate the memory barriers in various SOS synchronization routines.
- Fix incorrect SHMEM_MINOR_VERSION value.
- Fixed threading synchronization race in context destruction.
- Multiple bugfixes in the unit tests, performance suite, Portals finalization, OFI STX management, the SOS simple build script, the default poll limit, and more (see git log for details).