SST v11.1.0 Released
SST v11.1.0 is now available and can be downloaded here
The SST 11.1.0 release contains several performance enhancements and functionality improvements. A selection of the improvement highlights are:
General:
- SST v11.1.0 includes a number of bug fixes, performance improvements, and feature updates
- 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. These conventions are encouraged in SST v11.x and will be enforced in SST 12.0.0. A detailed description of the new naming conventions can be found here.
- Apple Silicon: While this release does not include official support for Apple Silicon, initial testing of SST on the hardware has been successful. We are working on adding Apple Silicon to our supported platforms.
Deprecation Notice:
- Python 2.x support is deprecated and will be removed in SST 12.0.0.
- Zoltan support is deprecated and will be removed in SST 12.0.0.
SST-Core (PDES-Core):
- Performance optimizations were made throughout the event handling and delivery implementation to reduce overhead, memory usage, and speedup simulation.
- New SSTHandlerBase base class for event, clock, etc. handlers. See ssthandler.h for more details and usage.
- Added ELI inheritance capability to allow child classes to inherit ELI from their parent classes.
- Added output functions to StandardMem interface
- Generalized the model description parsing so that new model description handlers can be added more easily.
- A status summary of the optional parameters (e.g., Python version, OpenMPI enabled, MemPools on/off, etc.) has been added to the configuration output
- Clang-Format requirements have been added and are enforced on the Core codebase
- Updated README.md to include basic install instructions for CentOS/RHEL and Ubuntu.
- Eliminated use of libltdl in favor of dlopen
- Added JSON library and made various fixes to JSON output
- Added wall time tracking for each of the SST execution phases (init, run, complete)
- Added check to enforce that doubles generated by random number generators are in the range [0, 1)
- SST::RNG::SSTRandom was renamed to SST::RNG::Random
- Added ability to loopback a Link to the same port.
- Added versions of Link configuration functions that take a UnitAlgebra timebase.
- Added support for autoconf 2.71
- Bug fix to correctly generate CXX flags that are passed from SST-Core to SST-Elements (SST_EXPORT_CXXFLAGS)
- Fix to correctly handle compile flags for XCode 12.5+
- Added experimental command line option to enable direct links to other threads (i.e., events will not go through a SyncQueue before being inserted into the other threads event queue). This is enabled with –inter-thread-links=true. This mode will also reduce the number of barriers required at each synchronization point and may benefit the simulation of some models that use thread only parallelism.
- Added experimental TimeVortex implementation that bins events by delivery time and does the final sort in a just-in-time manner. This implementation can be used by adding
--time-vortex=sst.timevortex.map/binned
to the command line options (or in the input file in the program option section). Note: There is a known bug with the released implementation that exhibits in multi-thread runs that are not running with interthread links. This version of TimeVortex works correctly for serial runs and multithread runs with interthread links turned on.
- An experimental CMake buildsystem is available. It has not been tested with sst-elements and there are known deficiencies that will be addressed in future releases. For the best experience, we recommend using the existing build system as described in the SST installation instructions.
SST-Elements:
- Balar
- Fixed issue where some files were not included in the distribution.
- Pin 2.14 is no longer available and Balar does not work with Pin 3+. We are exploring alternatives.
- Ember
- Firefly
- MemHierarchy
- Fixed bug in writing data to scratchpad
- MemLinkBase SubComponents now clock themselves rather than relying on their parent components to clock them. This may lead to a difference in output statistics as the order in which the clocks are called may have changed in a given configuration.
- Fixed bugs in LLSC implementation and auto-configuration of cache policies
- Added support for experimental StandardMem interface. This includes auto-detection and enforcement of noncacheable memory address regions, support for MMIO communication, and support for device cache hierarchies. Two new test endpoints - standardCPU and standardMMIO were added as well as a number of tests.
- Enabled regular testing of Scratchpads
- Improved performance of CacheController
- Removed backwards compatibility for memory controllers that inherited their address mapping information from a directory rather than self-declaring. Memory controllers should use “addr_range_start”, “addr_range_end”, “interleave_step”, and “interleave_size” to declare their own parameters if needed (i.e., more than one memory controller in the simulation).
- Merlin
- Added additional checks to the initialization protocol
- Vanadis
- Reformat to match Core coding standards
- Added support for additional MIPS instructions
- Various performance enhancements
- Added endian checking
- Added additional statistics to count instructions executed
SST-Macro:
- Various bug fixes, cleanup, and minor enhancements
- Fixes for parallel MPI execution with SST Core. Threaded execution is currently unsupported. See user guide for details.
- Changes in standalone mode (with built-in core)
- No longer supports parallel execution. If this is desired, use with the SST Core. The user guide has been updated to reflect this change.
- Macro will not build in standalone mode on OSX with XCode 12.5+.
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