SST V9.0.0 Release Notes
The changes in v9.0.0 of the Structure Simulation Toolkit (SST) are divided into three areas: general, PDES-core and integrated elements.
General:
- SST v9.0.0 includes one of the largest overhauls of the internal simulation core and model APIs in recent years. Specifically, the release provides support for nesting of sub-components and a replacement of modules that increase the flexibility in model development and allow for better support in Python model definitions in future releases.
- Significant improvements to the internals of the SST core and several models to reduce simulation time and enhance model scalability when run on multiple nodes using MPI
Deprecation Notice:
- Elements SysC and HMC are now deprecated and are removed in this release.
SST-Core:
- SimpleMem subcomponent now uses the
max_requests_per_cycle
parameter correctly.
SST-Elements:
- Added the lightweight Shogun cross-bar model for modeling high-performance cache/core connectivity
- Removed SysC
- Removed HMC
- Bus component will now process an unlimited number of messages per cycle if the
drain_bus
parameter is set.
- memHierarchy component now accepts the
network_link_control
parameter; defaults to merlin.linkcontrol
.
- Added OpenSHMEM support in Ember/Hermes and FireFly models. Ability to model fine-grained memory operations and atomics across a network fabric.
- Improved accuracy of memory models for detailed network communication stack (Ember/Hermes)
SST-Macro:
- Bug fixes and performance improvements
- Improved integration with the SST-Core
- Improved support for OTF2 trace formats
- Enhanced skeletonization support
Known Issues (see open issues for repos):
Known incompatibilities:
- Only PIN 2.14 is supported on SST 9.0 due to newer PIN based tools inability to support non-Intel based libraries.
- PIN 2.14 does not run on newer Linux Kernels (ex. Ubuntu 16.04), OSX 10.12/10.13/10.14
- Ariel Element requires PIN
- Prospero (Pin Feature) requires PIN
- memHierarchy Element (Sieve Feature) requires Ariel
- Scheduler Element is not multi-core compliant (Cannot run across multiple MPI ranks)
- Ariel Element (Ivy Bridge Feature) does not run on OSX
- Ariel Element (Sandy Bridge Feature) does not run on OSX
- Ariel Element (Sandy Bridge Feature) is not multi-core compliant (Cannot run across multiple MPI ranks)
- Miranda Element (SingleStream Feature) is not multi-core compliant (Cannot run across multiple MPI ranks)
- Miranda Element (RandomGen Feature) is not multi-core compliant (Cannot run across multiple MPI ranks)
- Sirius Element (Zodiac 27 Feature) does not support serialization
- Zoltan 3.83 does not properly build on Ubuntu 18.04
Operating System / Compiler Combinations:
Release V9.0.0 (core and elements) has been built and tested with the following OS/compiler combinations.
- CentOS 6.10 with GCC 4.8.2 (via RedHat Developer Toolkit v2)
- CentOS 7.6 with GCC 4.8.5
- SNL RedHat 6.10 with GCC 4.8.2 (via RedHat Developer Toolkit v2)
- SNL RedHat 7.6 with GCC 4.8.5
- RedHat 8.0 with GCC 8.2.1
- TOSS 3.0-4 on RHEL 7.3 (Maipo) with GCC 4.8.5
- Ubuntu 16.04 LTS (64-bit) with GCC v5.4.0
- Ubuntu 18.04 LTS (64-bit) with GCC v7.3.0
- Mac OSX 10.12 (Sierra) with XCode 9.3 (LLVM)
- Mac OSX 10.13 (High Sierra) with XCode 9.3 (LLVM)
- Mac OSX 10.13 (High Sierra) with XCode 10.1 (LLVM)
- Mac OSX 10.14 (Mojave) with XCode 10.2 (LLVM)
External Components:
External components and the compatible version numbers are listed below. Other versions may work, but these have been tested with this release.
- Required
- Python 2.7 or greater (note Python 3.0 or onwards is not compatible)
- Recommended
- Optional
- Boost 1.56.0 or greater
- DRAMSim2 2.2.2
- NVDimmSim 2.0.0
- HybridSim 2.0.1
- QEMU 0.12.3
- GLPK 4.54 (For Scheduler Component)
- METIS 5.1 (For Scheduler Component)
- Intel Pin Tool 2.14-71313
- Zoltan 3.83
- HDF5 1.8 or greater
- Goblin HMC Simulator V3.0.0
- HBM Dramsim2 v1.0
- Ramulator SHA 7d2e723
Elements not in release:
Although available from the devel and master branches, the following elements are not provided in this release:
Fixed Issues and Significant Code Changes (Pull Requests) in this Release:
- 419 Bug Fix
- 416 Subcomp update
- 414 Add python2-config Check for RHEL8
- 412 sstregistertool Update
- 406 Subcomp api update
- 404 Update copyrights to 2019
- 403 GCC 4.8.2 workaround
- 402 Fixed PythonConfigGraphOutput to output latencies in the correct timebase
- 397 Old eli rework
- 396 Python load 395
- 395 Allow python module load overloading
- 393 Cleanup for 9.0 release
- 392 Eli cleanup 389
- 389 Better error messages for new ELI
- 384 Fix missing functional Header to get SST to compile with GCC 8.0
- 382 stats moved to factory system: #381
- 381 Moved stats to ELI system
- 378 Fixed issue with find and moved all calls to stl containers to
- 464 critical MPI fixes
- 462 Llvm quick bug fix
- 461 Initialization bugs in llvm
- 460 documentation updates, class name cleanup
- 458 sanitize 452
- 457 fixes to work with subcomponent updates
- 456 skeletons no longer require sstmac_app_name macro: Issue #419
- 452 leak sanitizer build without custom new
- 450 Stats 422
- 449 better error messages from sstmacro.py
- 448 clean up use of –enable and –with
- 446 add an xmit bytes statistic,recv bytes statistic for ports
- 445 Otf2 trace 433
- 441 Autotools testing (tests2-439)
- 440 LLVM updates
- 439 Test src2src compiler in common build environments
- 438 more dist fixes
- 437 make dist fixes
- 436 make dist fixes
- 435 app fix for eli updates
- 433 Get OTF2 trace output working with new stats
- 432 stats updates/docs updates
- 431 remove all references to element.h/elementinfo.h
- 430 Sst merge
- 429 The great SST refactor for macro
- 428 move raw pointers in static lookup maps to unique_ptr to clean up memory leaks
- 425 get rid of type aliases for old ELI problem
- 424 Skeletonization compiler workflow is fragile and complicated
- 423 Add congestion statistic to Sculpin that emulates XmitWait from OPA
- 422 Get basic statistics working with interface matching sst-core
- 416 Sumi update
- 411 Add topology specified from file
- 407 Memoize
- 405 Clang versions
- 402 runtraffic skeleton update
- 401 Clang needs to build libc++
- 400 Added minimal router and fixed bug in star topology, addresses issue #399.
- 399 star topology is missing a router
- 397 dist fixes
- 396 Docs
- 395 Added json nlohmann library.
- 394 Added configure support for json parser
- 392 Add BSD/MIT JSON parser
- 391 Adding router that uses routing tables
- 390 Added CLI tool for tracing routes in Omni-path network
- 389 Added CLI tool for tracing routes in Omni-path network
- 387 Add command line parser for opareport output
- 386 multithreading fixes: Issue #384
- 384 Build error with –enable-multithreaded on develop branch
- 383 Updated sst-dumpi to incorporate OTF2 header fixes
- 382 Memoization pragmas and associated user-space thread improvements
- 380 getenv/setenv interception
- 378 Fix override warnings on BeginSourceFileAction
- 376 Add SSTMAC_NO_REPLACEMENTS macro
- 373 Move DUMPI head to incorporate pull requests
- 371 Ibv
- 370 Skeletons
- 369 Build fixes that effect Ubuntu 18.04 / Centos 7
- 368 OpenMP 361 362 363
- 367 Otf2 output merge
- 366 Omp 361 362 363
- 365 Check comm ids in OTF2 writer
- 364 Mem leaks
- 363 finish out OpenMP functions interface
- 362 delete pragmas in source-to-source
- 360 Make it so dirty dumpi doesn’t shows as modified on git status
- 359 argc/argv is hardcoded in clang src to src
- 357 HPCG skeleton - getting “0” time for WAXPBY
- 356 turn OTF2 trace collector into a stats object capable of emitting OTF2 and (eventually) DUMPI
- 355 decouple OTF2writer from communicator construction
- 351 #349 Used a juypter-notebook script and severl different mpich commit…
- 350 Change lib ordering to get linking working in Ubuntu 18.04 with GCC 7.1
- 349 Fix mpich copyright header issue.
- 346 Fixed an lib ordering issue that causes linking failure
- 345 Fix libsprockit linking order
- 343 Added OTF2 writer for sim replay
- 342 Otf2 output merge
- 341 Simulator support for outputting OTF2 traces
- 340 Mem leaks
- 338 Added data to the skeleton vector
- 337 Extend the skeleton types provided by sst-macro
- 334 Compiler fixes
- 1294 Fixed bug in linkcontrol
- 1293 Chenged macros to use the new SubComponent registration
- 1291 Made linkcontrol loadable using the new subcomponent API
- 1288 Fix for Minimum Cuda Version
- 1287 Api fixes for core
- 1286 How to change Ember Motif parameters using emberLoad.py
- 1285 shogun: Fix compile warnings
- 1284 Ariel: Remove warnings from test ref files
- 1283 Update GNU artifacts
- 1282 Mjleven/ember move gen tolib
- 1281 Added examples/tests for the new SubComponent API.
- 1280 Deprecation warning cleanup
- 1278 HMC/SysC Additional cleanup.
- 1277 memH: Update elibase path to new location
- 1276 Archive SysC and HMC
- 1275 Prospero/Ariel: Add fixes for operands > cache line size
- 1274 Merging Updates of Samba and Opal
- 1273 Added configure test for CUDA and added CUDA compilation flags to ari…
- 1271 memH: Fix event read after delete in directorycontroller
- 1270 Fix copyrights
- 1269 Shogun Crashes With Multiple Threads
- 1268 Bug Fix For 1252 and Other Things
- 1267 C int Type Support
- 1266 Bug Fix for Issue 1253
- 1265 Prospero: Enable use of ifeellucky flag with Pin trace tool
- 1264 Reference File Update 2
- 1263 Bug Fix for Issue 253
- 1261 Lucky
- 1260 Devel
- 1259 Reference file updates for testing
- 1258 4 ember md
- 1257 Eli cleanup
- 1256 Devel
- 1254 add new message passing calls to firefly
- 1253 Shogun Option input_message_slots
- 1252 Shogun Stat cycles_zero_events
- 1251 Merlin fix idle time statistic
- 1250 Mjleven/fam atomics
- 1249 Removed unneded #includes for element.h (old ELI).
- 1248 4mk file am
- 1247 Shogun
- 1246 multiple jobs running motifs in a simulated network
- 1244 HyperX with merlin router
- 1242 Merlin fix idle time statistic
- 1241 Allow SimpleMem to use the max_requests_per_cycle parameter from MemBackend
- 1240 Shogun Crashes on Exit
- 1239 Hughes/shogun
- 1238 shmem cleanup quiet and fence
- 1237 Cleanup FAM blocking/non-blocking get/put/scatter/gather
- 1235 change Host->NIC queue
- 1233 reorg hades shmem
- 1231 Should I use STT-Macro or STT-Merlin?
- 1230 add JSON topo support
- 1228 Update main LICENSE files and Information
- 1227 Additional Print Outs of Params in simpleParamComponent
- 1226 Add a Params Processing Simple Example to test Core Parameter Handling
- 1223 memH: Load empty cache listener as a subcomponent
- 1221 Allow memH to Select Link Control to Load
- 1219 Mjleven/ember detailed stuff
- 1216 support a range of memory from min_address to max_address
- 1215 New AtomicInc that uses Detailed Memory Model
- 1213 Mjleven/detailed nic
- 1211 Devel
- 1210 Devel
- 1208 Fix Detailed compute model
- 1206 Devel
- 1205 Mjleven/cleanup fam motifs
- 1204 Some FAM improvements
- 1203 Fixes Installation of Hermes Headers
- 1202 John4 make am
- 1201 Mjleven/fam 2
- 1200 More FAM work
- 1197 add a stat that records the address of accesses
- 1196 fix fam atomic inc
- 1194 Hughes/hex
- 1192 Installation of Hermes and other headers
- 1191 Hughes/bus
- 1190 Enhance load files
- 1189 add statistics module support to emberLoad
- 1187 Mjleven/improve performance
- 1186 Mjleven/improve performance
- 1185 Mjleven/fix compiler warnings
- 1184 add statistics to MemUnit
- 1183 fix typo
- 1182 Remove std::cout in dragonfly-machine allocators
- 1181 support complete topology configuration from param files
- 1180 add new nid list generator
- 1179 FIX SHMEM global network addressing
- 1178 Firefly and Ember SHMEM/FAM fixes and additions
- 1177 Cramcim.c_HBM2AddrMap. is not found
- 1176 memH: Allow arbitrary interleaving for distributed caches.
- 1175 fix
- 1174 fix loadfile load
- 1173 Makefile.am typo
- 1172 support variables in ember load files
- 1171 Python 2.6 compatibility
- 1170 New try
- 1168 Mjleven/support rand node placement
- 1167 add a random get FAM motif
- 1166 fix bug where src stream number is not big enough
- 1164 memH: Allow caches to have only a up link on the network
- 1163 fix Makefile for dist
- 1162 Mjleven/fix cache unit
- 1161 GPU-like Memory Hierarchy using Merlin
- 1160 start FAM devel
- 1159 fix embernightly
- 1158 Add new allocation policies for dragonfly topology system
- 1157 Merlin singlerouter
- 1156 Mjleven/reorg ember load
- 1154 initialize the MemOp vectors
- 1152 build a customized element with libconfig support
- 1151 mlm_malloc() much faster than equivalent malloc() call in Ariel
- 1150 fix findNid() for case with empty string
- 1148 Mjleven/optimization cleanup
- 1147 Change NIC send algorithm
- 1145 a little optimization of memUnit
- 1144 fix FAM_Get
- 1142 Mjleven/optimize nic memory model
- 1141 optimize NIC memory model
- 1138 have each compute node start at a different block
- 1136 Generic Neural Architecture, Initial merge
- 1135 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 1134 make the default action for a fat tree to cut the partition between t…
- 1133 Ariel: Update gettimeofday/clock_gettime overrides
- 1132 add stats to the memory model
- 1130 fix compiler warnings
- 1129 memH: Add debug to list undelivered requests on emergency shutdown
- 1128 fix warnings
- 1127 Cleanup scheduler warnings
- 1126 MemH: Fix compile warnings, send crash output to STDERR not STDOUT
- 1125 Cleanup PyProto Warnings
- 1124 Cleanup warnings on simpleElementExample
- 1123 add statistics for the depth of the requested memory operation queue
- 1122 Allevin/clean opal warnings
- 1121 access_time parameter in the Memory Controller component of memHeirarchy
- 1120 Removing element savannah
- 1119 Changes to convert PyProto to new ELI
- 1118 Fix cramsim eli
- 1117 fix how outbound network stalls are calculated
- 1116 split up BUS MTUs to cache line size when there is no bus
- 1115 Changes to Scheduler to convert to new ELI
- 1114 Changes to Messier to convert to new ELI format
- 1113 Prospero with ramulator
- 1112 Changes to Samba to convert to new ELI format
- 1111 memH: Update tests to remove old parameters and set ‘verbose’ in some
- 1110 add stats for network packet, network bytes and blocked network
- 1109 support N FAM nodes, N compute nodes, repeat
- 1108 fix nonblocking SHMEM get
- 1106 FAM stuff
- 1105 More Type Corrections in memH
- 1104 Adding Ember LQCD Motif
- 1103 Adding a Lattice QCD Motif to Ember.
- 1102 Target get fix for uniform distribution
- 1101 Fixing Types
- 1099 halo should get node FLOPS from arguments
- 1098 change NIC SHMEM event handling
- 1097 Afrodri/cache track
- 1096 Help needed for simulating HMC system
- 1095 Unable to open configuration file sstsimulator.conf
- 1094 cycle count for Ariel
- 1093 MemH: Fix for coherent shootdowns
- 1091 How to understand Hit_Arrival and Miss_Arrival?
- 1090 rank 1 now reports time
- 1089 support external motifs
- 1087 memH: Fix race between data and coherence init messages
- 1086 Multi-node simulation
- 1085 SHMEM unordered
- 1084 Initial Support for OTF2-based Traces as an Ember Motif
- 1082 added option to trace virtual or physical addresses in addrHistogramm…
- 1081 Add virtual destructors for custom command info classes
- 1080 added (back?) the ability to attach a CachListener to MemSieve
- 1079 Fix documentation for default memController backing type
- 1078 Tweak Makefile.am files for Make Dist
- 1076 Ariel: Add statistics for tracking memory pool allocations
- 1075 Cassini – Cleaning up Source Tree
- 1074 memH: Fix spelling
- 1073 fixing warnings in printing Stake configuration options
- 1072 updating stake initialization to match upstream riscv-isa-sim
- 1071 Add statistics to track prefetch usefulness
- 1070 Ariel: some fixes
- 1069 new shmem motif
- 1068 Support multiple streams from same src
- 1067 MemH: Fix memnic autodetection for noc-attached caches
- 1065 Fix valgrind error
- 1064 How to run CPU2006 benchmarks on SST?
- 1062 Writing all2all topology in Merlin; getting traceback from null ptr during link initialization
- 1061 New feature
- 1060 Merge pull request #1 from sstsimulator/devel
- 1059 Fix code typo
- 1058 Language Update
- 1057 Fix for fence stalls when the pending queue is empty
- 1056 [8.0] Ariel Hang on fence()
- 1055 Creating limited traces for Prospero
- 1054 [SST 7.2] Ariel Hang
- 1053 add HyperX support to ember load scripts
- 1052 Accessing statistics during simulation
- 1051 Reverting 1045
- 1050 Reverting 1045
- 1049 workingApr23
- 1047 Capture Data Values for Writing Back to Memory Model when using Ariel
- 1046 MemH LLSC fixes to enforce atomicity and reduce false negatives
- 1045 Fix bug in API
- 1044 fixing the autoconf script for SST Stake