SST v12.1.0 Released
SST v12.1.0 is now available and can be downloaded here
The SST 12.1.0 release contains several performance enhancements and functionality improvements, as well as two new element libraries. A selection of the improvement highlights are:
General
- The SST contributing guide has been updated to provide more detail on the SST Core development and contribution process
- To enable future improvements in parsing, configuring, and error checking, SST 11.0 introduced naming conventions for various items that require names. In general, names must be legal Python variables. Violating these conventions generates warnings in SST v12.x and they will be enforced in SST 13.0.0. A detailed description of the new naming conventions can be found here.
- SST 12.x is supported on Apple Silicon
- Top-level metadata files (LICENSE, README, INSTALL, etc.) are now Markdown rather than raw text.
- Key SST 12.1 improvements includes threading performance optimizations, new element libraries Mercury for user-space workload modeling and Osseous to support RTL components, and significant improvements to the Vanadis element library
Deprecation and Removal Notices
- We anticipate removing support for Python 2 in SST 13. SST 12.1 is likely the last SST release that will include Python 2 support.
SST-Core (PDES-Core)
- Added Profiling Points which allow users to profile SST performance more directly. These are available in the Core as well as to Components and SubComponents.
- Fix to force Python garbage collection at end of Python input execution
- Added capability to filter test outputs to SST testing framework
- Performance improvements to avoid use of Simulation::getSimulation() in time-critical functions
- Command-line option
--num_threads
is now --num-threads
for naming consistency
- In ELI,
SST_ELI_REGISTER_SUBCOMPONENT
can now be used in place of SST_ELI_REGISTER_SUBCOMPONENT_DERIVED
. Both are equally valid although the _DERIVED
version may be deprecated in a future release.
- Added ability to specify arbitrary attributes (as key/value pairs) on Components and SubComponents in the ELI.
SST::SubComponent
no longer inherits from SST::Module
- Clean up to sst-info output
- Performance enhancement in MemPools to reduce interthread contention
- Fixed issue where setting thread count in Python input script didn’t work
- Added function to the Python module to let the input file control whether
Py_Finalize
is called in the destructor. It is not called by default (same behavior as prior releases). The default behavior may change for SST for 13.0 release.
- Added component count to the verbose output of the ConfigGraph
- Updates to work correctly with Python 3.11
SST-Elements
- New element libraries have been added: Osseous (support for RTL components) and Mercury (user-space workload modeling adapted from SST-Macro)
- Added support through Pin 3.24 for Ariel & Prospero
- New 2D BFS pattern added to Ember motifs
- Vanadis underwent significant capability improvements and bug fixes
- LSQ overhaul including
- Fix for several debugging-related segfaults
- Corrected issue that prevented multiple stores from being inflight
- Improved support for fences
- Added support for auto-fracturing over cachelines to support RISC-V architectures without alignment constraints
- Added support for multiple-cache-line loads and stores
- Optimization for clearing LSQ based on hardware threads
- Fixed overlap detection between loads and stores
- Fixed override error in RISC-V decoder
- Cleaned up and added additional debug output
- Additional error checking
- Fixed issues including register mapping for partial loads, payload zero padding, register copy operation, errors in various instruction decoders
- Added tracking for unissued memory operations when function units are not available
- Performance improvements, especially when debug output is not enabled
- Additional tests for RISC-V and MIPS
- New RISCV instructions including: FSD, FLE.S, FLT.S, FCVT.W.D, FCVT.WU.D, FCVT.LU.D, FCVT.D.L, FCVT.D.LU, FMV.X.W, FMADD.D, AMOSWAP, FEQ.D, FMSUB.D, FNMSUB.D, FMIN.D, FSQRT.D, FSQRT.S, MULHU, FSFLAGS, REM, SLT
- New and updated syscall implementations: SET_THREAD_AREAD, GETTIME, MMAP, FSTAT, MADVISE
SST-Macro
- Replaced std::thread with pthreads
- SST-Macro does not compile in standalone mode (i.e., without SST-Core) on OSX under some versions of XCode. We do not anticipate fixing this as it is believed that the issue does not exist in newer versions of XCode.
- Known working versions: XCode 13.4.1, XCode 13.3.1, XCode 13.0
- Known non-working versions: XCode 13.2.1, XCode 13.2.0
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