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.1.0 has been released #19

Open
gvoskuilen opened this issue Oct 17, 2024 · 0 comments
Open

SST 14.1.0 has been released #19

gvoskuilen opened this issue Oct 17, 2024 · 0 comments

Comments

@gvoskuilen
Copy link

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
    • Full collective support
  • 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
    • Minor test updates

SST-Macro

  • None

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