Skip to content

@davidozog davidozog released this Dec 17, 2020 · 30 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.5.0. Below are some of the changes included in this release:

  • Support for the OpenSHMEM 1.5 specification.
  • This full release includes the changes listed below for v1.5.0rc1 and the following additional changes.
  • Added a multiplier for scaling the number of trial iterations in performance test suite benchmarks, configurable by environment variable, SHMEM_PERF_SUITE_TRIALS_MULTIPLIER.
  • Added an {SOS base}/examples directory with simple OpenSHMEM example programs and instructions on how to build and run those.
  • With the recent fixes in libfabric v1.11.x, the RXM/Verbs provider support does not require setting the FI_MR_CACHE_MAX_COUNT environment variable to 0 when threading is used.
  • Additional bugfixes, including profiling symbols for some team-based collectives, support for C99 compilation, and unit test failures with single PE.
Assets 2
Pre-release

@davidozog davidozog released this Aug 18, 2020 · 52 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.5.0, release candidate 1. Below are some of the changes included in this release:

  • Added support for the OpenSHMEM v1.5 specification.
  • New features include: a teams API and teams-based collectives, put-with-signal routines, nonblocking atomic routines, multiple-element wait/test vector comparison routines, shmem_malloc_with_hints, and a profiling interface. See OpenSHMEM 1.5 Specification, Annex G for details.
  • Deprecations include: active-set-based library constants and collective routines, shmem_barrier, and short/unsigned short variants for
    shmem_wait_until and shmem_test. See OpenSHMEM 1.5 Specification, Annex F for details.
  • Added support for the UCX transport.
  • Added shmem_malloc_with_hints. Currently, no hint values are supported.
  • Added shmem_signal_fetch.
  • Multiple bugfixes, including in teams resource management, put completion logic, and configure issues when multiple transports are detected.
Assets 2

@davidozog davidozog released this Feb 24, 2020 · 171 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.4.5. Below are some of the changes included in this release:

  • Added a complete OpenSHMEM teams API to the shmemx interfaces.
  • Added the OpenSHMEM wait/test vector API to the shmemx interfaces.
  • Added support for shared memory atomic operations with the appropriate acquire/release memory ordering where required. This feature requires the --enable-shr-transport build flag.
  • Improved experimental support for the RXM/Verbs provider stack with libfabric 1.8 and newer.
  • Updated SOS to use the new OFI memory registration mode flags instead of the deprecated FI_MR_SCALABLE/FI_MR_BASIC modes.
  • Updated the wait/test any/all/some "status" array semantics to reflect recent changes to the OpenSHMEM specification.
  • Added a memory sync before returning from barriers to ensure shared memory updates and remote updates cached in the NIC are visible in memory.
  • Updated the utility atomics (spinlocks and counters) to use __atomic built-in functions rather than the deprecated __sync builtins.
  • Removed redundant shmem_barrier_all from the GUPS example application.
  • Moved unit tests derived from OpenSHMEM specification examples to the test/spec-example directory.
Assets 2

@jdinan jdinan released this Sep 19, 2019 · 415 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.4.4. Below are some of the changes included in this release:

  • Experimental support for RXM/Verbs provider stack with libfabric 1.8. Requires --enable-hard-polling and --enable-ofi-mr=basic build flags. The FI_MR_CACHE_MAX_COUNT environment variable should be set to 0 when threading is used. Depending on the libfabric build, setting SHMEM_OFI_PROVIDER="verbs;ofi_rxm" may be necessary to select the provider.
  • Rewrite of node-level detection/management to enable improvements in on-node communication and resource management.
  • Added bandwidth optimized ring reduction algorithm, selectable by setting the SHMEM_REDUCE_ALGORITHM environment variable to "ring". See README for details.
  • Added the SHMEM_COLL_SIZE_CROSSOVER environment variable to control the message size at which collective communication transitions between latency and bandwidth optimization.
  • Added SHMEM_OFI_STX_AUTO environment variable to enable automatic partitioning of STX resources on node. See README for details.
  • Updated unit tests and performance test suite to properly handle failed context creation.
  • Updated OFI transport to support providers that do not support the FI_SHARED_CONTEXT TX attribute (STX) on endpoints.
  • Updated OFI transport to bind a CQ to the target EP (required by some providers) and poll the target CQ when driving manual progress. As a result, manual progress no longer requries a target-side counter and can be used in conjunction with hard polling.
  • Added support for decimal values in the SHMEM_SYMMETRIC_SIZE environment variable (e.g., 1.5G).
  • Updated shmem_init_thread routine to return an error when library initialization fails (e.g., due to invalid SHMEM_SYMMETRIC_SIZE value).
  • Fixed argument/context handling in Mandelbrot example program.
  • Improved handling of context creation failure.
  • Added missing pshmem_global_exit symbol to profiling interfaces.
  • Updated shmem_ptr to return a pointer for the local process, even when inter-PE shared memory is not enabled.
  • Updated fence, quiet, and context destroy to perform no operation for SHMEMX_CTX_INVALID.
  • Additional bugfixes and improvement (see git log for details).
Assets 2

@jdinan jdinan released this Feb 13, 2019 · 543 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.4.3. Below are some of the changes included in this release:

  • Added proposed OpenSHMEM put-with-signal routines to shmemx interaces.
  • Added proposed OpenSHMEM wait/test-any/some/all to shmemx interfaces.
  • Added proposed OpenSHMEM nonblocking fetching atomic operations to shmemx interfaces.
  • Added proposed OpenSHMEM SHMEM_CTX_INVALID constant to shmemx interfaces.
  • Added put-with-signal optimization that uses the FI_FENCE capability (see --enable-ofi-fence for details).
  • Added support for backtrace printing when SOS aborts (see SHMEM_BACKTRACE environment variable for details).
  • OFI transport merged cntr and cq endpoints, improving resource utilization.
  • Fixed issue with missing pshmem symbols in proposed profiling interfaces.
  • Improved support for SLURM using PMI-1.
  • Fixed shmem_ctx_t type compatibility with C++ and older C compilers.
  • Added NBI atomics support to performance suite benchmarks.
  • Unit tests for the C++ generic interfaces (currently an SOS extension) were moved to the "test/shmemx" directory and context creation failure handling was improved in all tests to improve portability of the SOS test suite.
  • Constant and type declarations were moved from shmem.h to shmem-def.h to eliminate dependence of pshmem.h and shmemx.h on shmem.h
Assets 2
Pre-release

@jdinan jdinan released this Feb 1, 2019 · 551 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.4.3, release candidate 1. Below are some of the changes included in this pre-release:

  • Added proposed OpenSHMEM put-with-signal routines to shmemx interaces.
  • Added proposed OpenSHMEM wait/test-any/some/all to shmemx interfaces.
  • Added proposed OpenSHMEM nonblocking fetching atomic operations to shmemx interfaces.
  • Added proposed OpenSHMEM SHMEM_CTX_INVALID constant to shmemx interfaces.
  • Added put-with-signal optimization that uses the FI_FENCE capability (see --enable-ofi-fence for details).
  • Added support for backtrace printing when SOS aborts (see SHMEM_BACKTRACE environment variable for details).
  • OFI transport merged cntr and cq endpoints, improving resource utilization.
  • Fixed issue with missing pshmem symbols in proposed profiling interfaces.
  • Improved support for SLURM using PMI-1.
  • Unit tests for the C++ generic interfaces (currently an SOS extension) were moved to the "test/shmemx" directory and context creation failure handling was improved in all tests to improve portability of the SOS test suite.
  • Constant and type declarations were moved from shmem.h to shmem-def.h to eliminate dependence of pshmem.h and shmemx.h on shmem.h
Assets 2

@jdinan jdinan released this Oct 5, 2018 · 711 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.4.2. Below are some of the changes included in this release:

  • Improved performance when using OFI thread completion model, by releasing the context lock when blocked in quiet/fence operations.
  • Added support for using MPI as the process manager, via --enable-pmi-mpi.
  • Added option to flush stdout/stderr during barrier operations, enabled via SHMEM_BARRIERS_FLUSH environment variable.
  • Added PE affinity information to debugging output, enabled via SHMEM_DEBUG environment variable.
  • Fixed issue with SHMEM_OFI_PROVIDER environment variable being unrecognized.
  • Added experimental performance counters API extension (see shmemx.h)
  • Added --enable-ofi-mr={basic,scalable,rma-event} and removed --with-ofi-mr, --disable-mr-scalable, and --enable-mr-rma-event.
  • Renamed --with-total-data-ordering configuration flag to --enable-total-data-ordering.
  • Added multithreaded lock unit test to demonstrate the use of hierarchical locking to enable multithreaded usage of OpenSHMEM locks.
  • Updated perf. suite tests to improve bandwidth reporting and improve coverage over atomic operations.
  • Updated manual progress to automatically enable completion polling.
  • Updated target counter binding in OFI to comply with libfabric requirements.
  • Fixed invalid locking in context destroy debug message when bounce buffering is not enabled on the context.
  • Simplified the OFI random STX allocator.
Assets 2
Pre-release

@jdinan jdinan released this Sep 25, 2018 · 722 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.4.2, release candidate 1. Below are some of the changes included in this release:

  • Added support for using MPI as the process manager, via --enable-pmi-mpi.
  • Added option to flush stdout/stderr during barrier operations, enabled via SHMEM_BARRIERS_FLUSH environment variable.
  • Added PE affinity information to debugging output, enabled via SHMEM_DEBUG environment variable.
  • Fixed issue with SHMEM_OFI_PROVIDER environment variable being unrecognized.
  • Added experimental performance counters API extension (see shmemx.h)
  • Added --enable-ofi-mr={basic,scalable,rma-event} and removed --with-ofi-mr, --disable-mr-scalable, and --enable-mr-rma-event.
  • Renamed --with-total-data-ordering configuration flag to --enable-total-data-ordering.
  • Added multithreaded lock unit test to demonstrate the use of hierarchical locking to enable multithreaded usage of OpenSHMEM locks.
  • Updated perf. suite tests to improve bandwidth reporting and improve coverage over atomic operations.
  • Updated manual progress to automatically enable completion polling.
  • Updated target counter binding in OFI to comply with libfabric requirements.
  • Fixed invalid locking in context destroy debug message when bounce buffering is not enabled on the context.
  • Simplified the OFI random STX allocator.
Assets 2

@davidozog davidozog released this Apr 19, 2018 · 934 commits to master since this release

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).
Assets 2
Pre-release

@davidozog davidozog released this Mar 29, 2018 · 976 commits to master since this release

The Sandia OpenSHMEM development team is pleased to announce SOS v1.4.1, release candidate 1. Below are some of the changes included in this release:

  • 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 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 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).
  • 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.
  • Multiple bugfixes in the unit tests, performance suite, Portals finalization, OFI STX management, the SOS simple build script, the default poll limit, and more.
  • Fix incorrect SHMEM_MINOR_VERSION value.

Please note that this is a pre-release, which may contain bugs or performance issues.

Assets 2