Navigation: Home | Downloads | Getting SST | Documentation | Support
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.1592 Random segfault running test_MessageMesh_restart_smaller_ckpt_restart
1613 macOS 26 test fail following PR 1604
1622 Don’t create PR comment when clang-format passes
1624 Fix issue with set variable action in trace command
1626 Transition from object map to object tree and UI improvements
1627 address sanitizer fix in PerfReporter
1628 Remove check_param_type()
1629 Additions to the element Clock API and other small fixes
1632 Added registerOrderedClock() to BaseComponent API
1635 Update GitHub Actions versions
1636 Core: subtle bug in testing_compare_filtered_diiff()
1637 Fix default mutable argument: filters
1641 Add floating point tolerance for floating point statistics in tests
1644 Change the copy of previous config graph file on restart to use a manual data copy instead of using filesystem::copy_file because it fails on some container configurations
1645 Test framework: force logging statements to appear immediately
1646 Templated registerClock() and configureLink()
1647 Update signal window for SIGTERM test
1648 Add Linux containers to GitHub Actions testing
1649 Don’t treat a shared param set’s name as a parameter
1650 Preserve all-statistics parameters in JSON models
1651 Use the parameters passed to PortModule.enableAllStatistics()
1652 Silence erroneous unused warning for volatile counters
1653 Fix componentinfo stat maps
1654 Add addPortModule() to Python SubComponent objects
1655 Assorted small fixes
1656 sst_unittest.py: allow passing environment to run_sst
1657 Added an explicit order parameter to registerOrderedClock()
1658 Fix environment variable race in testsuite_default_Output.py
2598 Add Anytopo to merlin
2643 Network Storage (NetworkIO) Implementation for SST Firefly NIC
2682 zodiac: fix compilation with OTF
2683 memHierarchy backend updates
2684 ember: remove EmberContextSwitchingMessagePassingGenerator
2686 Firefly: intra-node LoopReq drops all but the first send segment, causing copyIoVec copied == len abort on multi-rank-per-node collectives
2687 firefly: preserve all IoVec segments in intra-node LoopReq
2688 fixing errors loading checkpoint files due to mismatched field names
2689 Fix sumi straddr buffer
2691 merlin: write polarfly/polarstar topology files to a writable temp dir
2692 Add script that can be used to easily modify which elements build
2697 mercury/nic: key message reassembly by (source, flowId)
2698 use traceEnabled on all trace types
2702 Apply pre-commit fixes
2703 Ember: heap corruption during teardown from EmberMessagePassingGenerator destructor calling verbose()
2705 Prefer python3 vs. unversioned python
2706 Change all #!/usr/bin/env python to python3
2712 Some cleanup of ember stack elements
2714 iris/mask-mpi collective registry
2715 Skip merlin_anytopo_slimfly test
2716 Remove dead variable
2722 Mercury: Preserve ARM64 FP state across Mercury contexts
2726 Remove common/connection*
2728 Mercury/MaSk-MPI: small bug fixes
2729 Fix BackingMMAP checkpointing
2730 select_build.py fixes
2731 Miscellaneous elements fixes
2732 Add Linux containers to GitHub Actions testing
2733 Test concurrency fixes
4 Hgcc mv2-netmod-ofi compatibility update
5 Expanding the set of tests mv2/lit tests
6 Llvm22 main merge
8 Added detailed readme to describe how to build/run sst-hgcc, and added examples
9 fix infinite loop in addTransitiveNullInformation
751 Release 16.1.0
