Skip to content

Releases: Sandia-OpenSHMEM/SOS

Sandia OpenSHMEM v1.5.2

26 Jul 17:35
Compare
Choose a tag to compare

The Sandia OpenSHMEM development team is pleased to announce SOS v1.5.2. This full release includes the changes listed below from v1.5.2rc1 and the following additional changes:

  • Added configuration support for building Sandia OpenSHMEM with oneAPI compilers.
  • Resolved a performance issue with fetching atomic operations when using the CXI libfabric provider.
  • In the OFI transport, added the FI_RECV capability to contexts (for driving progress) resolving an issue with the Omni-Path Express (opx) provider.

Sandia OpenSHMEM v1.5.2rc1

08 Mar 22:27
Compare
Choose a tag to compare
Pre-release

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

  • Added support for the CXI libfabric provider, enabling SOS on the Slingshot interconnect. Setup instructions are on SOS's Github wiki.
  • Added support for shmem_team_ptr routine.
  • Added support for negatives strides in the OpenSHMEM teams APIs.
  • Added checks for incorrect buffer overlap when error-checking is enabled.
  • Added a configure option to enable deprecated tests, --enable-deprecated-tests, which is disabled by default.
  • Added a configure option to enable libfabric manual progress, --enable-ofi-manual-progress, which is disabled by default.
  • Added experimental support for a hint to shmem_malloc_with_hints, SHMEMX_MALLOC_NO_BARRIER, which removes the barrier at exit from the routine. Users must synchronize appropriately after such an operation.
  • Initialized the OFI tx/rx capabilities appropriately to limit what is enabled by providers. This resolves an issue with the Omni-Path Express (opx) provider.
  • Patched the symmetric data segment initialization to better support MacOS.

Sandia OpenSHMEM v1.5.1

16 May 19:24
193e671
Compare
Choose a tag to compare

The Sandia OpenSHMEM development team is pleased to announce SOS v1.5.1. This full release includes the changes listed below from v1.5.1rc1 and the following additional change:

  • Added a Dockerfile so users can create containers that provide a configurable Ubuntu sandbox for running SOS applications and benchmarks.

Sandia OpenSHMEM v1.5.1rc1

07 Feb 15:28
2545682
Compare
Choose a tag to compare
Pre-release

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

  • Added deprecation warnings for shmem_barrier, active-set reductions, and other deprecated routines, such as the 32/64-bit collectives.
  • Removed usage of deprecated APIs in shmem_perf_suite, apps, and spec-examples.
  • Added missing types for the OpenSHMEM v1.5 reductions (e.g., fixed-width integers, ptrdiff_t, size_t, and schar).
  • Fixed an incorrect function signature for shmem_team_get_config().
  • Resolved some critical issues with the UCX transport.
  • Updated upstream configuration scripts from OpenMPI for UCX, PMI, etc.
  • Fixed issues with the OpenSHMEM teams API (e.g. team-based broadcasts now update the destination object on all PEs including the root).
  • Corrected the return value for shmem_test_all and shmem_test_all_vector.
  • Added support for shmem_signal_wait_until.
  • Resolved a critical build issue on Mac OSX.
  • Fixed several issues in the SOS unit tests and updated them to use the OpenSHMEM v1.5 APIs.
  • Migrated SOS continuous integration from Travis CI to Github Actions and Workflows.

Sandia OpenSHMEM v1.5.0

17 Dec 20:44
cc41001
Compare
Choose a tag to compare

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.

Sandia OpenSHMEM v1.5.0rc1

18 Aug 21:16
b7ce94e
Compare
Choose a tag to compare
Pre-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.

Sandia OpenSHMEM v1.4.5

24 Feb 23:08
1f89a0f
Compare
Choose a tag to compare

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.

Sandia OpenSHMEM v1.4.4

19 Sep 20:45
6935f93
Compare
Choose a tag to compare

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).

Sandia OpenSHMEM v1.4.3

13 Feb 15:48
773ccbb
Compare
Choose a tag to compare

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

Sandia OpenSHMEM v1.4.3rc1

01 Feb 21:47
1490316
Compare
Choose a tag to compare
Pre-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