Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SST 13.0.0 has been released #17

Open
berquist opened this issue May 1, 2023 · 0 comments
Open

SST 13.0.0 has been released #17

berquist opened this issue May 1, 2023 · 0 comments

Comments

@berquist
Copy link
Member

berquist commented May 1, 2023

SST 13.0.0 Released

SST v13.0.0 is now available and can be downloaded here

The SST 13.0.0 release contains several performance enhancements and functionality improvements. A selection of the improvement highlights are:

General

  • SST has moved to C++ 17
  • The SST MemPool implementation has been re-architected to improve performance
  • The Balar and Vanadis element libraries have had significant enhancements, see release notes below for details

Deprecation and Removal Notices

  • Python 2 support has been removed in SST 13 following its deprecation in prior releases.
  • The Simulation class has been deprecated as a public API and will be removed in SST 14, which has the following impacts:
    • simulation.h has been deprecated and will be remove in SST 14
    • BaseComponent::getSimulation() is deprecated and will be removed from public APIs in SST 14. Elements should use functions directly available through the Component/SubComponent/etc. APIs instead.
  • SST Core functions deprecated in SST 12 were removed, including getFinalSimTime(), requireEvent(), SST::to_string(), and the variant of loadModule() that did not require a Module API.
  • sendInitData() and recvInitData() have been deprecated in both the Link and SimpleNetwork APIs. Equivalent functions sendUntimedData and recvUntimedData should be used instead.
  • The transition to requiring Modules to register the Module API they implement is complete. The SST_ELI_REGISTER_MODULE macro now requires an API class name and should be used to register modules. The temporary SST_ELI_REGISTER_MODULE_DERIVED macro is deprecated.
  • The transition to requiring SubComponents to register the SubComponent API they implement is complete. The SST_ELI_REGISTER_SUBCOMPONENT macro should be used to register subcomponents and the temporary SST_ELI_REGISTER_SUBCOMPONENT_DERIVED macro is deprecated.
  • Use of Simulation::getSimulation() by Elements is deprectated

SST-Core (PDES-Core)

  • Updated build to use C++17 and require Python >= 3.6
  • The deprecated header file rng/sstrng.h was removed
  • The duplicated header file part/sstpart.h was removed. This duplicated sstpart.h.
  • Fixed an issue where finding Element libraries through sst-info, the SST bootstrap code and the SST factory could have slightly different search paths resulting in finding different libraries. Library search paths now use the same ordering.
  • Improved thread safety of Output::fatal()
  • Changed MemPool size reporting to use signed integers since negative counts are possible if there are more frees than mallocs on a given thread with the new MemPool implementation
  • Re-architected MemPools to minimize thread contention on shared bookkeeping structures
  • Added configuration option to require MemPools to cache-align allocations
  • Improved error reporting when Python is not found correctly during configure
  • Fixed bug in simulation build when using threads and MPI
  • Fixed capability that enables printing un-deleted events at simulation end
  • Some statistic registration and query functions that were not part of BaseComponent's public API but were in a public section of the header were moved to protected or private sections.
  • Added "on" and "off" to the set of strings accepted for Boolean configuration options
  • Fixed bug in format_string stringize.h that could lead to buffer overflows
  • Changed StatsEngine from a singleton to a per-Simulation object resourecs. StatOutputs are still stored in static data structures and are per MPI rank. The change fixes errors in statsitcs gathering and output for threaded executions.
  • Fixed bug in BaseComponent::getNextClockCycle() which allowed returning an incorrect time in some instances
  • Fixed clock adjustment at simulation end so that all clocks reflect the corrected end time
  • Added ability to use UnitAlgebra in Python link configuration
  • Fixed bug in StandardMem::getSuccess() that returned incorrect value

SST-Elements

  • Added support through Pin 3.26 for Ariel & Prospero. Began removing support for Pin 2.14.
  • Ariel
    • Added fix to kill the child PIN process during SST's finish() phase if it did not already exit
    • Added support for IO redirection for the traced process
  • Balar has undergone significant updates. It runs with Vanadis/MIPS and as a standalone GPU model ingesting traces. Work to support Vanadis/RISCV is underway.
  • Ember
    • Added support for exponential and trace models to the BFS motif
    • Added tricount motif
  • MemHierarchy
    • Fixed missing symbol in HMCSim backend
    • Fixed bug where StoreConditional requests weren't detected correctly
    • Fixed handling of locked lines in the coherent L1 cache
    • Added parameter to allow a cache to temporarily lock a load-linked line to improve forward progress on LL/SC
    • Removed dmaEngine from ELI for now since it is non-functional
  • Merlin
    • Updated merlin python to provide a handle to the loaded module from a platform file
    • Added support for dragonfly topologies with more than one link between switches in a group
  • SimpleElementExample
    • Added examples of creating, loading, configuring, and using SubComponents
    • Added example demonstrating the SST lifecycle
  • Vanadis
    • Added virtual memory support via new mmu element library
    • Supports multicore configurations, threads and processes
    • Added syscall support: clone, fork, fstat, fstatat, getaffinity, getrandom, prlimit, readlinkat, setrobustlist, madvise, rt_sigprocmask, rt_sigaction, sched_getaffinity, statx
    • Added support for hardware threading
    • Substantial bug fixes, performance enhancements, general clean up

SST-Macro

  • Fixed issue in configure for ARM architectures
  • Various minor fixes to support changes in SST Core
  • SST-Macro does not run in standalone mode (i.e., without SST-Core) on OSX under some versions of XCode 13. XCode 13.4.1 is known to work, XCode 13.2.1 does not work. We do not anticipate fixing this as the issue does not appear to be an issue in XCode 14.

Current release information can be found here

We look forward to hearing your successes with the latest release!


SST Research and Product Teams

Sandia National Laboratories, USA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant