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

Assets 2

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.

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

Assets 2

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.

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

Assets 2

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

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

Assets 2

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.

@jdinan jdinan released this Feb 2, 2018 · 531 commits to master since this release

Assets 2

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

  • Support for the OpenSHMEM 1.4 specification.
  • New features include: Thread safety, communication management API (contexts), test routines, sync routines, calloc for symmetric objects, bitwise atomic operations, and updated C11 generic selection bindings. See OpenSHMEM 1.4 Specification, Annex G for details.
  • Deprecations include: Fortran API, shmem_wait routines, mpp header directory, and SMA-prefixed environment variables. See OpenSHMEM 1.4 Specification, Annex F for details.
  • Added support for OFI FI_THREAD_COMPLETION thread safety model, needed to use the SHMEM_THREAD_MULTIPLE mode with the PSM2 provider and others (see --enable-thread-completion). For providers that support FI_THREAD_SAFE, this mode may also provider better performance for private and serialized contexts.
  • Added manpages and unit tests for OpenSHMEM 1.4 API routines.
  • Optimized performance of private and serialized contexts.
  • Improved performance of shmem_fence operation.
  • Added memory barriers needed to support shared memory interactions between threads and PEs.
  • Updated unit tests to remove use of deprecated API routines.
  • Added support to OFI transport for sharing STX resources across contexts.
  • Added several environment variables that can be used to control STX resource management in the OFI transport: SHMEM_OFI_STX_MAX, SHMEM_OFI_STX_ALLOCATOR, and SHMEM_OFI_STX_THRESHOLD. See README for details.
  • Updated data segment exposure method to improve compatibility with tools.
  • Updated thread safety support in Portals transport, eliminating several possible races in communication tracking/completion code.

@davidozog davidozog released this Jan 31, 2018 · 7 commits to v1.3.x since this release

Assets 2

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

  • Changed the symmetric data segment variables (data_start/end) to be weak symbols to avoid a linker error for tools using the PSHMEM interface.
  • Added a missing header file (inttypes.h), needed for the XPMEM transport.
Pre-release

@jdinan jdinan released this Jan 19, 2018 · 566 commits to master since this release

Assets 2

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

  • Support for OpenSHMEM 1.4, for details please refer to the OpenSHMEM 1.4 Specification.
    • New features include: Thread safety, communication management API (contexts), test routines, sync routines, calloc, bitwise atomic operations, and updated C11 generic selection bindings.
    • Deprecations include: Legacy Fortran API, shmem_wait routines, mpp header directory, and SMA-prefixed environment variables.
  • Added support to OFI transport for sharing STX resources across contexts.
  • Added several environment variables that can be used to control STX resource management in the OFI transport: SHMEM_OFI_STX_MAX, SHMEM_OFI_STX_ALLOCATOR, and SHMEM_OFI_STX_THRESHOLD. See README for details.
  • Added support for returning gracefully when context creation is unsuccessful.
  • Updated data segment exposure method to improve compatibility with tools.
  • Updated thread safety support in Portals, eliminating several possible races in communication tracking/completion code.

Please note that this is a pre-release, which may contain bugs or performance issues. While all OpenSHMEM 1.4 features have been implemented for the Portals transport, several features including contexts, are not yet optimized for Portals.

Pre-release

@jdinan jdinan released this Dec 22, 2017 · 638 commits to master since this release

Assets 2

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

  • Support for OpenSHMEM 1.4, for details please refer to the OpenSHMEM 1.4 Specification.
    • New features include: Thread safety, communication management API (contexts), test routines, sync routines, calloc, bitwise atomic operations, and updated C11 generic selection bindings.
    • Deprecations include: Legacy Fortran API, shmem_wait routines, mpp header directory, and SMA-prefixed environment variables.
  • Added support for OFI FI_THREAD_COMPLETION thread safety model, needed to use the SHMEM_THREAD_MULTIPLE mode with the PSM2 provider and others (see --enable-thread-completion). For providers that support FI_THREAD_SAFE, this mode may also provider better performance for private and serialized contexts.
  • Added manpages for OpenSHMEM 1.4 API routines.
  • Improved performance of private and serialized contexts.
  • Improved performance of shmem_fence operation.
  • Added memory barriers needed to support shared memory interactions between threads and PEs.
  • Updated unit tests to remove use of deprecated API routines.

Please note that this is a pre-release, which may contain bugs or performance issues. In particular, internal resource sharing between OpenSHMEM contexts remains a work-in-progress, which may limit the number of contexts that can be created for a given OFI provider. While all OpenSHMEM 1.4 features have been implemented for the Portals transport, several features including contexts, are not yet optimized for Portals.

Pre-release

@davidozog davidozog released this Nov 9, 2017

Assets 2

The Sandia OpenSHMEM development team is pleased to announce a pre-release of SOS v1.4.0 (Alpha 1). Below are some of the changes included in this release:

  • Full support for the OpenSHMEM 1.4 Specification. Here is the latest release candidate for the 1.4 specification document: OpenSHMEM-1.4-rc3.pdf
  • New features include: Thread safety, communication management API (contexts), test routines, sync routines, calloc for symmetric objects, bitwise atomic operations, and updated C11 generic selection bindings.
  • Deprecations include: Fortran API, shmem_wait routines, mpp header directory, and SMA-prefixed environment variables.
  • This is an alpha release; full API support is provided, but the implementation may contain bugs and is not yet optimized for performance.

@jdinan jdinan released this Nov 7, 2017 · 925 commits to master since this release

Assets 2

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

  • Added manpages for OpenSHMEM API routines.
  • Added polling limit control variables SMA_OFI_TX_POLL_LIMIT and SMA_OFI_RX_POLL_LIMIT (see README for details) to allow control over quiet and wait polling limits, respectively.
  • Rewrite of environment variable management code and improved info output.
  • Added support for processor atomics in thread-safe build.
  • Added support for local communication optimization (--enable-memcpy).
  • Added support for libfabric FI_MR_RMA_EVENT memory registration mode.
  • Added experimental support for the PMIx process management interface (--with-pmix).
  • Fixed completion race in multithreaded mode.
  • Fixed bugs in support for zero-length point-to-point and collective communication.
  • Multiple bugfixes to test suite, including GUPS benchmark