SST v14.1.0 Released
SST v14.1.0 is now available and can be downloaded here
The SST 14.1.0 release contains several major SST-Core enhancements and features as well as performance and functionality improvements in the SST-Elements libraries. A selection of the improvement highlights are:
General
- This release has several major improvements to checkpoint/restart support. See the guide here.
- Statistics can be checkpointed
- Checkpoint/restart is supported for parallel execution
- Checkpoint can be triggered on real (wall) time intervals in addition to simulation time
- 14.1 also introduces new experimental SST-Core features. These are prototypes that will be improved in future releases. See SST-Core release notes for details.
- Interactive debugging. The simulation can be dropped into an interactive mode where the state of components/subcomponents/etc. can be observed and changed. Only serializable (checkpointable) components can be introspected in this way. See
sst --help
for more information.
- User-defined signal actions. SST’s default signal handling has been extended to allow element libraries to define their own signal actions for SIGUSR1, SIGUSR2, and SIGALRM. A number of optional handlers are also provided with SST-Core. See
sst --help
for more information.
- The ariel, mercury, mask-mpi, and simpleElementExample element libraries have new capabilities; bug fixes and minor improvements were made to other libraries.
Deprecation and Removal Notices
- The test framework (
sst-test-core
and sst-test-elements
) has some newly deprecated functions. The framework is moving towards using Python functions in favor of custom functions where Python has equivalent capability. The following are deprecated.
testing_is_PIN2_used()
. Pin2 is no longer supported in SST.
host_os_get_system_node_name()
. Use platform.node()
instead.
host_os_get_kernel_type()
. Use platform.system()
instead.
host_os_get_kernel_release()
. Use platform.release()
instead.
host_os_get_kernel_arch()
. Use platform.machine()
instead.
host_os_is_osx()
, host_os_is_linux()
, host_os_is_centos()
, host_os_is_rhel()
, host_os_is_toss()
, host_os_is_ubuntu()
, host_os_is_rocky()
. Use host_os_get_distribution_type()
or host_os_get_distribution_version()
instead.
host_os_get_num_cores_on_system()
. Use multiprocessing.cpu_count()
instead.
sst_core_config_include_file_get_value_int
, sst_core_config_include_file_get_value_str()
. Use sst_core_config_include_file_get_value()
instead.
sst_elements_config_include_file_get_value_int
, sst_elements_config_include_file_get_value_str()
. Use sst_elements_config_include_file_get_value()
instead.
sstsimulator_conf_get_value_str()
, sstsimulator_conf_get_value_int()
, sstsimulator_conf_get_value_float()
, sstsimulator_conf_get_value_bool()
. Use sstsimulator_conf_get_value()
instead.
initializeClass()
is deprecated in favor of UnitTest’s setUpClass()
.
These notices were provided in SST 14.0:
- 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.
- 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.
Known Issues
- The OpenMPI 4.1.1 available through Rocky Linux and other OS distributions masks SST’s error return codes which causes some SST tests to fail. A workaround is to use OpenMPI 4.1.6.
SST-Core
- Added capability to generate checkpoints of parallel simulation. This changes the output format of checkpoints for all simulations to a multi-file format as opposed to the initial single file checkpoint in SST 14.0.
- Added checkpoint support to Statistic and StatisticOutput types
- Added an experimental interactive mode where the simulation can be dropped into an interactive console. Interactive mode can be trigger by setting a time on the command line, or through API calls in BaseComponent and RealTimeAction. The console used for the interactions can be specified on the command line and are user creatable by inheriting from the InteractiveConsole class. Interactive mode has only been tested in serial runs and may not yet function as anticipated in parallel. The interactive API will continue to involve.
- Added a debugging capability prototype using interactive mode. This works in serial simulations only and has a rudimentary console debugger. In interactive mode, Component state can be queried and changed and the simulation can be stepped forward in simulation time units. Expect improvements in future releases.
- Added default verification policy to SharedSet verification policy
- Fixed issues with
mutex_read
and mutex_find
in all SharedRegion classes
- Added RealTimeAction class for element-library defined signal actions and made signal actions configurable on the command line.
- Added real-time heartbeat option in addition to existing simulation-time heartbeat.
- Added real-time checkpoint option in addition to existing simulation-time checkpoint.
- Test framework improvements and clean up
- Type annotations added
- Duplicate functions deprecated in favor of Python or more generic ones
- Added ability to provide a timeout other than default in
os_cmd()
calls
- Fixed bug in
sstsimulator_conf_get_value_bool
and sstsimulator_conf_get_value
when parsing boolean values
- Updated parsing functions to accomodate OpenMPI 5.0.3 output format.
- Fixed bug in ncurses detection
- Made function
testing_check_is_scenario_filtering_enabled
internal as it should not be used by test suites
- Fixed bug when running with
--run-mode=init
- Fixed issue where params where serialized but the keyset was not saved for checkpoint
- Modified TraceFunction to respect the environment variable
SST_TRACEFUNCTION_ACTIVATE
for controlling whether output is enabled and sst_TRACEFUNCTION_INDENT_MARKER
to control output indent format.
- Added
quit
command to sst-info
- Fixed issue with correctly parsing options passed to profile points on the command line
SST-Elements
- Ariel
- Added support for running MPI applications on Ariel CPUs
- Added ariel_disable in the Ariel API to allow for tracing to be turned off
- Updated the internal Ariel API to include all functionality from the API found in sst-tools
- Ember
- Fixed support for OTF2 including bcast, scatter, allgather, and alltoall collective operations. Also added
addCompute
parameter to add ember compute time between MPI calls.
- Kingsley
- Fix to correctly delete credit events
- Mask-MPI
- MemHierarchy
- Fix to correctly delete dropped prefetch events
- Fix to correctly delete init events in the MemNIC
- Fixed coherence protocol bug in noninclusive shared cache
- Added ability to skip a potentially expensive memory address overlap check in MemNIC during init
- Mercury
- Proper rank mapping via Merlin
- Fix to event serialization
- Merlin
- Added ability to put a user subcomponent on the merlin bridge’s linkcontrol
- Fix to correctly delete init events
- SimpleElementExample
- Made example elements checkpointable and added checkpoint example
- Vanadis
SST-Macro
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