Navigation: Home | Downloads | Getting SST | Documentation | Support
SST v16.1.0 is now available and can be downloaded here
Highlights of the feature enhancements in SST-Core, SST-Elements, and the new SST-HGCC are:
registerClock() and configureLink() functions.print and list commands have more output options, and the console is more robust to malformed commands.hgcc/hg++) that builds C/C++ applications into libraries that the Mercury element can run. It requires LLVM 22 with libTooling.anytopo topology that can build any network topology from a NetworkX graph and supports source routing.StatisticBase must override getStatTypeName(). setStatisticTypeName() is now marked [[deprecated]] and will be removed in SST 17.0, because type names will become a property of the statistic type class rather than a per-statistic property.merlin_anytopo_slimfly test is skipped because it does not return consistent results.New Features and Enhancements
BaseComponent:
registerClock() creates the clock handler and returns it. The returned handler can be stopped and started with the new Clock::HandlerBase::activate() and deactivate() functions, which can be used in place of unregisterClock() and reregisterClock(). This will become the main clock API. It ensures that a clock handler is only ever registered with one clock.registerOrderedClock() registers clock handlers that are called in a fixed order relative to other handlers on the same frequency. The order is set with an explicit order parameter, holds across the whole component tree, and is kept when clocks are activated and deactivated.configureLink() and configureSelfLink() overloads build the event handler for you. Callers pass the object pointer, with the handler function as a template argument and optional metadata, instead of building an Event::Handler first. The existing overloads are still available.BasicEvent<dataT> class for creating simple events with a using statement.SubComponent objects now have addPortModule(), so PortModules can be installed on a user SubComponent’s ports.print supports recursion depth (-r), verbosity (-v), number format (-f hex|oct|dec), and indexing into containers.list supports -l and -ll for more detail.show command prints one user-defined command or all of them.Notable Bug Fixes
--checkpoint-sim-period was set in a simulation with no cross-rank links.std::filesystem::copy_file().Params::getKeys() reported a key named after each subscribed shared set, and after a restart every subscribed Params had a local parameter named after the set.PortModule.enableAllStatistics() in Python ignoring its parameters. For example, a requested sst.HistogramStatistic silently became an sst.AccumulatorStatistic.ConfigComponent::addPortModule() returning the wrong index. With more than one PortModule on a component, the Python handle for one module could change another, or read past the end of the list.--output-json and loaded again.print commands and invalid arguments. Fixed setting a variable from a trace action.PerfReporter.General updates, changes, and cleanup
setStatisticTypeName() is marked [[deprecated]] (see Deprecation and Removal Notices).sst-info. sstinfo.h is no longer installed by the CMake build.setThreadCount() and sst.rt.interactive.autogen.sh now finds the shell in a platform-independent way.Testing Framework updates
run_sst() accepts an environment to pass to SST. A key whose value is None unsets that variable. Tests should use this instead of changing os.environ, so they can run concurrently.check_param_type() from the testing framework.filters) in the test support functions.select_build.py, a script that chooses which element libraries to build. It writes .ignore files, including the libraries each one depends on, and reruns autogen.sh.#!/usr/bin/env python3.run_sst().frontend slot to the ELI documentation. Fixed calls to Output::fatal in the Pin 3 frontend.ember.networkIOLib) and a test motif for network storage I/O.EmberContextSwitchingMessagePassingGenerator and the --enable-ember-contexts configure option.Output object in a destructor that could cause segfaults on shutdown.firefly.hadesNetworkIO and the firefly.SimpleSSD storage device model, which has configurable bandwidth, latency, and a multi-queue bus.collective.* namespace, for example collective.allreduce. The old allgather and alltoall parameters now give an error that names their replacements. Unknown collective.* parameters are also reported as errors.fi_av_straddr.TimeConverter pointers.snapshot (save or load) and snapshotDir parameters on memHierarchy.Cache and directory controllers to write cache line addresses, coherence states, and data at the end of a simulation, and load them at setup. Loading is not yet supported for the MESI shared non-inclusive coherence protocol.common/connection files.anytopo topology, which builds any network topology from a NetworkX graph. It comes with the endpointNIC and sourceRoutingPlugin subcomponents for source routing, where the endpoint NIC chooses the routed paths. Python utilities for common HPC topologies are in topology/anytopo_utility.--verbose.tlb slot to the TLB wrapper’s ELI documentation.traceEnabled for all trace types. The text reader now detects malformed lines.checkpointDir and checkpoint are renamed to snapshotDir and snapshot, to avoid confusion with SST checkpointing. The example and test configurations now set up the memHierarchy snapshot parameters too.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