SST v12.0.0 Released
SST v12.0.0 is now available and can be downloaded here
The SST 12.0.0 release contains several performance enhancements and functionality improvements. 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 is supported on Apple Silicon
- Top-level metadata files (LICENSE, README, INSTALL, etc.) are now Markdown rather than raw text.
Deprecation and Removal Notices:
- SimpleSimulation has been removed from this release.
- Support for Zoltan is removed
- Pin 2.14 is no longer distributed by Intel. Elements relying on this version of Pin (i.e., Balar, some features of Ariel and Prospero) continue to work but are deprecated and replacement functionality is under development.
SST-Core (PDES-Core):
- Simulation configuration input and output changes
- Initial support for JSON input files as an optional alternative to Python. JSON does not yet support Statistics configuration.
- Ability to load simulation configurations in parallel with per-rank configuration files (JSON and Python)
- Added parallel output for configuration files (JSON and Python)
- The
SST::Interfaces::StandardMem
interface is no longer experimental and has been moved into the regular SST namespace
- Added
find_map()
and find_set()
to the Params class, supporting passing of Maps and Sets as parameter values in configuration files
- Improved error messages when an element library fails to load
- Added checks for valid names for parameters, ports, subcomponent slots, and component names. These are based on the naming conventions introduced in SST 11.0.0 and will become errors in SST 13.0.0.
- Changed event delivery ordering within a given time and priority. Events with the same delivery time will now be delivered based on the alphabetized order of the name of the link they were sent on. This ensures configurations loaded in parallel and serial produce identical ordering. Users may observe some deviation from SST 11 behavior as a result.
- Fixes for supporting Core timebases larger than 1ns.
- Deprecation
- SharedRegions are removed in favor of SharedObjects
- NullEvent has been moved to the Core’s private API and EmptyEvent has been introduced in its place
Params::find_scoped_params
and Params::find_prefixed_params
are removed in favor of Params::get_scoped_params()
. The new function allows only a dot (.) as the scoping delimeter.
- Zoltan partitioner is removed
- Outputting a configuration to XML is removed; Python and JSON are supported instead
Simulation::getSimulation()
is deprecated and the public parts of the Simulation class’ API have been moved to the Element (Component, SubComponent, etc.) base classes.
- Experimental
- Support for profiling performance has been added to the core. This support is still under development and subject to change. It can be enabled using the configuration options:
--enable-perf-tracking
and --enable-profile
SST-Elements:
- Updated build system to correctly inherit flags from SST Core and prevent overwriting of user-supplied flags.
- All elements were updated to adhere to the new naming conventions
- Ariel
- Switched to use
SST::Interfaces::StandardMem
rather than SST::Interfaces::SimpleMem
- Added testing for multi-level memory support
- Updated pintool for Pin 3.22
- Balar
- Switched to use
SST::Interfaces::StandardMem
rather than SST::Interfaces::SimpleMem
- CramSim
- Minor fixes and corrected parameter documentation
- Juno
- Switched to use
SST::Interfaces::StandardMem
rather than SST::Interfaces::SimpleMem
- MemHierarchy
- Fully switched to the SST Core StandardMem interface and all CPU models in SST-Elements have likewise switched over
- Several bug fixes
- Minor performance improvements
- Added support for coherent devices
- Merlin
- Refactored bridge component to fix linking error on OSX 12.2
- Miranda
- Switched to use
SST::Interfaces::StandardMem
rather than SST::Interfaces::SimpleMem
- Prospero
- Switched to use
SST::Interfaces::StandardMem
rather than SST::Interfaces::SimpleMem
- rdmaNic
- New library with a NIC model that performs RDMA
- Integrates with memHierarchy and Vanadis via StandardMem
- Samba
- Added Samba.SimpleTLB which provides a basic TLB mapping
- Internal development on a virtual memory implementation supporting Vanadis, MemHierarchy, and other models has begun
- Vanadis
- Significant development since SST 11.1
- Added 64b RISC-V ISA
- Reorganized OS model to support processes
- Supports C binaries
- Limited support for C++ binaries (depends on which runtime features are used)
- Performance improvements for resolving pipeline dependencies
SST-Macro:
- Added support for Linux/OSX on Arm architectures
- Now compiles against recently released C++ standard library implementations
- Bug fixes and usability improvements in compiler wrappers used for workload generation
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