Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SST 14.0.0 has been released #18

Open
gvoskuilen opened this issue May 28, 2024 · 0 comments
Open

SST 14.0.0 has been released #18

gvoskuilen opened this issue May 28, 2024 · 0 comments

Comments

@gvoskuilen
Copy link

SST 14.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
    • Added HotSpots motif
  • 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant