SST v14.0.0 Released
SST v14.0.0 is now available and can be downloaded here
The SST 14.0.0 release contains several performance enhancements and functionality improvements. A selection of the improvement highlights are:
General
- SST has reintroduced checkpoint/restart support. The implementation in this release is preliminary and has a number of (temporary) limitations which we plan to address in upcoming releases. See the guide here.
- Checkpoint support required that the type for
Event::Handler
and Clock::Handler
functions change. These are deprecated and should be replaced by Event::Handler2
and Clock::Handler2
respectively. In a future release, the Handler type will be changed to match the new Handler2
types. See the checkpointing guide linked above for details.
- New libraries mercury, iris, and mask-mpi port the application skeletonization capabilities that SST-Macro provided into the large SST element ecosystem so that it can more easily be used with other element libraries (e.g., merlin network)
- An interactive sst-info utility has been released. The utility includes improved search and discovery capabilities. The utility requires that the ncurses.h header be available during compilation. Invoke the utility using
sst-info -i
. The non-interactive utility is still available using sst-info without the interactive flag.
Deprecation and Removal Notices
- Removed previously deprecated functions:
Link::sendInitData()
, Link::recvInitData()
, SimpleNetwork::sendInitData()
, SimpleNetwork::recvInitData()
and BaseComponent::getSimulation()
have been removed. The simulation.h
header file is also removed.
- See the new deprecation history page for suggested alternatives
- The
SST_ELI_REGISTER_SUBCOMPONENT_DERIVED
and SST_ELI_REGISTER_MODULE_DERIVED
macros are removed
- See the new deprecation history page for suggested alternatives
- The
SimpleMem
interface is removed. Use the StandardMem
interface instead.
- The
Event::Handler
and Clock::Handler
handler types are deprecated in favor of Event::Handler2
and Clock::Handler2
. The new types support checkpoint/restart. See checkpoint guide for details. Eventually the Handler names will be reintroduced to match the new Handler2
types.
SST-Core
- Added preliminary checkpoint/restart support. See checkpoint guide for details and check back often for updates.
- Added ability to track pointers to serialization infrastructure
- Added ability to serialize non-pointer variables and also track the address of those variables as a pointer
- Added serialization support for
SST::RNG
, SST::Distrib
, SST::SharedObject
, std::priority_queue
, std::atomic
, std::multiset
,
- Functions in the
UnitAlgebra
class now throw exceptions instead of causing fatal errors. Not handling the exception will result in a fatal error as before but the exceptions can be handled by calling classes to improve error messages and/or handle the error without a failure.
- Fixes to support Python 3.12
- Added
getSimulationOutput()
, getNumRanks
, getRank
, and getCurrentSimCycle
to the StatisticOutput
class to replace global accessors previously available through Simulation::getSimulation()
- SimpleNetwork
- Deprecated functions
recvInitData
and sendInitData
are removed
sendUntimedData
and recvUntimedData
are now pure virtual
- Disabled fused floating-point operations under Clang to preserve determinism across platforms
- Added information about elements python modules to sst-info output
- Added fflush to all TraceFunction output
- Removed unused references to SharedRegion
- Added interactive sst-info utility
- Doxygen documentation updates in several files
- Fixed issue when using
pushNamePrefix()
in python with empty string to eliminate spurious ‘.’ prefixes
- Changed python config output to use link name in python instead of link ID based name
- Fixed performance issue on Mac where building links in parallel was slow due to high cost of delete.
- Added check to main simulation loop to detect time moving backwards or rollover of the 64bit core time counter
- Fixed compile error when calling Statistic::addDataNTimes
- Added interface for accessing CustomReq/Resp data in StandardMem
- Fixed issue where UnitAlgebra objects passed through the python input were rounded
- Added functions for pretty-printing UnitAlgebra in python
- Fixed formatting in StandardMem toString() functions
- Fixed issue where command line options were not overriding options set in the input file
SST-Elements
- New libraries iris and mask-mpi added to support mercury
- Ariel
- Fixed use after free error in Ariel’s pintool
- Added SIMD width and instruction class info to ariel instructions to fix statistics
- Ember
- Firefly
- Fixed mispelled parameter name in pyfirefly
- MemHierarchy
- Added parameter to set noncacheable address ranges - supports multiple coherence domains
- Fixed bug in the directory controller where event was not getting retried
- Bug fixes in MSI protocol
- Fix for prefetch bug that incorrectly counted and dropped prefetches
- Added support for writing out and restoring malloc’d backed memory (supports application checkpointing in Vanadis)
- Note that full application checkpoint support is not yet functional - pending cache flush updates in the cache models
- Merlin
- Fixed network bridge (e.g., for dual-socket configurations)
- Changed merlin python topology builder add network name prefix and enabled building endpoints after network is constructed
- Fixed bug with brodcasts during untimed phases when using a nid map in
LinkControl
- Vanadis
- Add support for
RV64 AMO.OR
, AMO.ADD
, AMO.XOR
, AMO.AND
, AMO.MIN
, AMO.MAX
, MULHSU
, FCSR
, FSQRT.S
, FCVT.S.L
, FCVT.WU.S
, FCVT.L.S
, FMADD.S
, FMSUB.S
, RDCYCLE
(this is not an exhaustive list of newly supported instructions)
- Added VanadisMinInstruction and floating point instruction class (VanadisFPClassInstruction)
- Support for clone syscall in glibc
- Several bug fixes
- Added testing for the riscv-tests suite (https://github.com/riscv/riscv-tests)
- Added support for passing application arguments and environment to Vanadis through environment variables
VANADIS_EXE_ARGS
and VANADIS_EXE_ENV
. Passing as parameters is also supported.
MVAPICH
now works
- Began added application checkpoint support: write/restore of page table and processor state
- Note that full application checkpoint support is not yet functional - pending cache flush updates in the memHierarchy cache models
SST-Macro
- Fixed issues with building under Apple XCode 15
- Note: We continue to encounter occasional bugs when running under various XCode versions.
- Minor updates to address compilation warnings and deprecations in SST-Core
- Fix to addess segv when printing command line options
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