SST V7.2.0 Release Notes
The changes in v7.2.0 of the Structure Simulation Toolkit (SST) are divided into three areas: general, PDES-core and integrated elements.
General:
- SST v7.2 includes optimizations to enable better performance and scaling for multi-node and multi-threaded simulations
SST-Core:
- SST will now dump output (e.g. statistics and debugging) into a specific directory which
can be set from the command line
- Fixed an issue with Python flags when using sst-config
- Fixed threading hangings on POWER8LE systems
- Fixed an issue with memory pool corruption on POWER8LE
- Fixed an issue with hanging on POWER7BE systems
- Fixed an issue relating to corruption of statistics in heavily threaded runs
- Fixed self-partitioner not found issue
- SST Info now correctly reports partitioner information
- Can now enable all statistics output for SubComponents
- Support for output of statistics in JSON format
- SST Config will now report being built with MPI
SST-Elements:
- Ariel - added a cycle counter to statistics output
- Ember - fixed an issue where reductions may be corrupted when using sub-communicators
- FireFly - fixed an issue where recv entries could fail
- MemHierarchy - fixed an issue with memory flushing on POWER7BE
- MemHierarchy - fixed namespace conflict issues with DRAMSim2 and HBMDramSim2
- MemHierarchy - added support for HBMDramSim2 as a third party library
- Miranda - fixes multiple-issue per cycle bug
- Miranda - fixed issue with address rollover in some loads
- VaultSim - enable runs without backing to reduce memory consumption
SST-Macro:
- Improved auto-skeletonization support
- Improved OTF2 support
- Support for Boost fcontext to reduce context switching overheads
- New parallel algorithms optimized for LogP model
- Various performance improvements, including avoiding shared_ptr atomic reference count overheads
- Various bug fixes, including for call graph and FTQ statistics
- Parameter proofreading to reduce input errors
Known Issues (see open issues for repos):
Known incompatibilities:
- Only PIN 2.14 is supported on SST 7.2 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
- 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
Operating System / Compiler Combinations:
Release V7.2.0 (core and elements) has been built and tested with the following OS/compiler combinations.
- Ubuntu 16.04 LTS (64-bit) with GCC v5.4.0
- Mac OSX 10.11 (El Capitan) with XCode 7.2.1 (LLVM)
- Mac OSX 10.11 (El Capitan) with XCode 8.1 (LLVM)
- Mac OSX 10.12 (Sierra) with XCode 8.1 (LLVM) - Alpha Tested only - No formal testing implemented on SST 7.2
- CentOS 6.8/9 with GCC 4.8.2 (via RedHat Developer Toolkit V2)
- CentOS 7.4.1708 with GCC 4.8.5
- TOSS 3.0-4 on RHEL 7.3 (Maipo) with GCC 4.8.5
- TOSS 3.x with GCC 4.8.5 (via RedHat Developer Toolkit V2)
- SNL RedHat 6.8/9 with GCC 4.8.2 (via RedHat Developer Toolkit V2)
- SNL RedHat 7.4 with GCC 4.8.5
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.6 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
Elements not in release:
Although available from the devel and master branches, the following elements are not provided in this release:
Fixed Issues
- 62 Enhance configure script to check compiler version
- 145 SST “–output-directory” option not working?
- 182 sst-config does not set core prefix when SST_CONFIG_FILE_PATH is set
- 187 python-config –ldflags may not return -L
<directory to library>
on some systems
- 194 The Python from the –output-config option yields different output than the original in 5 cases.
- 200 No test for sst-info
- 226 Order of -I include lines should have sst-core entries first
- 261 Python paths issue
- 263 Namespace issues on ELI macros
- 269 Is the SST core supposed to require mpi to build?
- 270 sst-config broken when installed to default ‘$prefix’
- 273 Would like StatisticsOutputJSON
- 286 SST-Info Error while Compiling on POWER8 w/ GCC 4.8.5/RHEL7.3
- 289 sst-info does not output SubComponent information in XML
- 290 Link::recv() does not check to make sure Link was set as polling link
- 294 sst_big_num Constructor from String is Broken on POWER8
- 297 Params Crash when using Threads on POWER7 but Serial Runs Successful
- 298 mempool corruptions occurs on POWER8
- 308 find_array parameter parsing drops first and last characters
- 310 ELI Notice is Out of Date
- 312 No barrier between component finish() and statistic engine shutdown
- 322 Partitioner “self” not found
- 323 sst-info reports redundant partitioners when SST-Core is built
- 81 clang libTooling better configure check
- 91 performance debugging of regex
- 93 OTF2 added to test suite
- 98 harden OTF2
- 103 Performance optimization of multithreading
- 105 MPI parallel optimization: message aggregation
- 106 MPI parallel optimization: speculative Irecvs
- 107 MPI parallel optimization: get async progress threads to play nice with multithreading
- 116 multithreading and mpi parallel need to be part of regression tests
- 117 need better way of detecting when sstmac_app_name macro is not set for C++
- 120 check licensing compatbility of clang/llvm
- 123 host compute needs to be validated for apis
- 124 get keyword registration to work with ELI component interface
- 126 update port connections to clean up mapping between local and global ports
- 132 simple switch test fails in parallel
- 133 tests depend on number of ranks for parallel runs
- 135 simple switch test segfaulting in parallel
- 143 Fix copyright headers in all the files
- 145 Add clang-devel macports documentation for build
- 146 Find whitepapers on OmniPath and Infiniband
- 160 Segmentation fault for MPI_Alltoallv
- 167 archive of sst.o files loses debug symbols
- 169 Tiled switch on top of sst-core
- 170 ping pong external skeleton to test suite
- 171 Get HPCG running with correct communication pattern
- 175 improve boost installation instructions in manual
- 178 building sst-macro with multithread option
- 181 get rid of sprockit unordered and go straight to std unordered map
- 183 sst.sandia.gov needs to be updated to just point to github
- 185 OTF2 build using OTF2 module on Kahuna leads to undefined references
- 189 clarify app launch in documentation
- 190 otf2 test does not run correctly
- 195 Configure –enable-multithread Build Errors
- 200 add Boost context to improve context switch performance
- 201 make threading interfaces a factory
- 202 update documentation of Boost for fcontext
- 203 mutrino build #1: fcontext
- 204 mutrino #2: build crashes with static build error on dump
- 207 get parsedumpi early termination working with new event queus
- 209 ubuntu tests timing out on Jenkins
- 211 check for valid lookahead
- 212 Fix FTQ, update for matplotlib
- 216 LogP
- 217 tiled not initializing vc correctly
- 218 rename current dragonfly topology to cascade
- 219 implement canonical dragonfly with flexible inter-group connections
- 220 “Implement ““consecutive”” inter-group wiring for dragonfly”
- 226 fix system libs from LLVM
- 227 add parameter for aborting after fixed number of global collectives in MPI trace
- 232 fix array types for clang source-to-source
- 234 multiple static function variables with same name
- 235 merging .o files in deglobalizer
- 236 multi-declarations for deglobalizer
- 238 FTQ documentation
- 468 Pin tool path is not propogated correctly to Ariel code
- 625 Ariel pin with Ubuntu 16.04 LTS (64-bit) with GCC v5.4.0
- 677 VaultSim needs option to turn off backing store
- 682 Miranda (SingleStreamGenerator) Only Issues One Request Per Cycle
- 686 Is there any way for SST to run a Matrix benchmark faster?
- 688 Ariel cores not full utilized
- 689 Is there a way to get Clock cycle count per instruction type for Ariel?
- 698 How is the L1 cache simulated, why it is different from other caches like L2, L3 etc.?
- 701 Ariel core cycle counter
- 704 Misleading error message with mmap failure
- 706 Miranda (SingleStreamGenerator): Address Range Rolls Over
- 711 How to adjust Access Latency for Simple Memory sub system
- 717 DRAMSim2 and HBMDRAMSim2 Paging Logic/Namespace Conflicts
- 721 MemHierarchy sdl8-1.py Crashes on POWER7 using Threads
- 722 MemHierarchy Flush Tests Fail on POWER7
- 723 MemHierarchy Prefetch Params Test Fails on POWER7
- 727 HBMDRAMSim Autoconf Script Caches Erroneous Results
- 738 Help with simple system using ring Interconnect
- 761 FFT3D runs with infinite time
- 763 Assertion ‘m_recvEntry’ failed inside nicMsgStream.h
- 800 SST Core is not finding a symbol
- 807 Allreduce does not work with a subcommunicator
- 814 HBMDramSim2 Build Failure
- 836 sst_config.h not found while building
SST-SQE
- 620 Testing harness inserts duplicate thread count parameters in tests.
- 637 The 2x2 test run on Ubuntu 16.04 is a mess of time-limits
- 667 Deadlock test failed on EmberSweep time limit
- 672 Is the SST core supposed to require MPI to build?
- 673 Why does 2x2 El Capitan Xcode-8 run so slow?
- 688 Pin child will not load on sst-test after June 30th system update.
Other Changes (Closed Pull Requests)
- 267 Add Support for Directory Output in SST
- 268 element.h should include correct path to elibase.h
- 271 Add MPI to SST Configuration Saving
- 272 Fixes #270 where Configuration Prefix is set to NONE and Configuration Cannot be Read
- 275 Add Statistics Output for in JSON Format
- 276 Fix Warning when Compiling JSON Statistics Output
- 277 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 281 sstinfo tweaks
- 282 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 284 Modify Assembly and Hardware Yields to compile on PPC64-LE
- 287 Fix Runtime Error when using getopt_long
- 288 Fix some compile warnings with GCC 4.8.5 on POWER8
- 291 [sstinfo] enable XML output of subcomponent information
- 293 [sstinfo] Output subcomponent interface information
- 295 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 296 Fixes for Power8
- 299 Bjmoor/power8fix
- 300 Added fatal call when Link::recv was called by non-polling link.
- 301 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 303 [sstinfo] SubComponents document their ports
- 304 Top-level stat-enablements should work on subComponents
- 307 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 309 adding better error handling to find_array in params module
- 311 Fix timing of simulation end functions
- 313 Updated deprecation warning for old ELI.
- 314 Change to SharedRegion
- 315 Shared region fix
- 316 Added check for TimeConverters with time intervals that are too small.
- 317 Python Module check
- 318 Adding CustomCmd SimpleMem Request Structure
- 319 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 320 Added an iterative complete() stage following the run() stage.
- 321 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 324 Partition fixes
- 325 Partition fixes
- 326 Fixed issue where partitioners were shown twice in sst-info.
- 327 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 164 Globals
- 165 Tiled switch
- 166 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 168 globals fix, more rigorous compiler tests
- 173 Globals
- 174 Globals
- 176 Globals
- 177 fixed timeout for matmul on ubuntu
- 179 Globals
- 180 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 182 Mpi api
- 184 Devel 7.2
- 186 Devel 7.2
- 187 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 188 OTF2 build flag fix
- 191 Links
- 192 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 193 Docs
- 194 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 196 Modified OTF2 test, and runtest program
- 197 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 198 Otf2 tests
- 199 Ugni
- 205 Validation
- 206 added build instructions for fcontext: Issue #202
- 208 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 210 Fixes issue #209
- 215 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 222 Dragonfly
- 223 fixed array overflow in dragonfly initialization
- 224 Gethostname
- 225 fixed sendrecv test for integrated core
- 228 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 229 Dragonfly
- 231 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 237 Gasnet
- 239 FTQ doc
- 240 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 241 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 242 dist fixes
- 243 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 244 Context
- 678 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 679 Statistic to Histogram Read and Write Request Sizes in Ariel
- 683 Update Miranda to permit Aggressive Request-Queue Refill
- 684 Add Cycle Counter to Ariel Core
- 685 Adding max instructions parameter to Ariel
- 690 Fix Typo in README.md
- 691 Cleanup Firefly message protocol
- 692 Cleanup the message passing protocol code
- 693 restructure message passing code part 2
- 694 restructure message passing code part 3
- 695 expanding memory request support to all basic flavors of HMC requests…
- 697 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 699 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 702 Modifying instruction count
- 703 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 705 New SST-Elements Component to Support GATech HBM Model (using DRAMSim2)
- 707 Fix for issue 706
- 708 memH: Fix mmap error messages
- 709 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 712 Update ariel test scripts for issue 711
- 713 added HBM backend to memHierarchy and associated configurations
- 714 Update ariel test scripts for issue 711
- 716 Fix minor typos
- 718 fixing namespace issues with pageInfo structure and links to HBM-targ…
- 719 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 720 Changed the way the path for PIN is passed.
- 724 Mjleven/shmem 1st
- 725 Adding Static Library to PIN API
- 726 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 728 fixing autoconf caching issue between DRAMSim2 and HBMDRAMSim2
- 729 Update ref Files to match Mikes changes
- 730 Mjleven/shmem 1st
- 731 Fix file name in ember/Makefile.am
- 733 Updated Stride Prefetch Unit
- 734 Don’t mmap unused backing store in VaultSim
- 735 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 737 Mjleven/shmem 2nd
- 739 Mjleven/shmem 2nd
- 740 memH: Fix error with noncacheable messages & memory on a network
- 741 Mjleven/shmem barrier
- 742 Mh scratchpad
- 743 NewRef file for memHA_Flush2 multi thread
- 744 memH: Fix to backend clock() calls
- 745 try again at new Ref for memHA Flushes_2 multi thread
- 746 Mjleven/shmem reduction
- 747 fix the case where a stream is created but it doesn’t have a destinat…
- 748 remove debug code
- 749 add missing header file
- 750 memH: Fix deadlock in directory
- 751 Mjleven/more shmem collectives
- 752 memH: Fix request cleanup/replay in directory
- 753 memH: Fixes set ordering in membackendconvertor
- 754 Native Atomic Operations and Extended Memory Request Types
- 755 Make multi ref. file same as single thread
- 756 Mjleven/shem collectives3
- 757 Update from devel
- 758 Mjleven/shmem tests
- 760 Mjleven/fix leaks
- 762 Mjleven/fix leaks
- 764 Mjleven/shmem multi core
- 765 Mjleven/shmem quiet
- 766 fix compiler warnings
- 767 Add one file to Makefile.am
- 768 fix fcollect seg fault
- 769 converting goblinHMCBackend to utilize ExtMemBackend infrastructure
- 770 Mjleven/shmem nic host queue fix
- 771 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 772 there was a bug where an ACK was getting sent for the wrong case
- 773 Mh updates
- 774 backend logic for mapping existing memory requests to any other request type in goblinHMCbackend
- 775 SST_MasterBranchAutoMerger: Auto Create Pull Request from Devel to Master - All Tests Ran Clean
- 776 Mjleven/nic shmem timing
- 777 Update from Devel
- 778 fixing parsing and library loading issues in the cmd-config options
- 779 adding skeleton for amo custom command handler
- 780 Add a ref file for new EmberSweep tests
- 781 Merlin fix
- 783 fixing memory backend convertor for ExtMemBackends
- 784 Copy REF File newES to ES2 in prep for clean up names on SQE
- 785 Cram sim devel 0.1
- 786 connecting correct request structure to extMemBackendConvertor
- 787 Updates to config files, README, and python configs
- 788 Major update to include functional custom command model
- 790 Fix Samba and Messier compilation with SystemC
- 792 Cram sim devel 0.1
- 793 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 794 Ship memLinkBase.h as a public header
- 795 Fixed the uninitialized variable issue in c_DeviceDriver
- 796 Merlin add complete
- 797 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 798 Bug fixes and tests for cache coherency shootdowns with custom memory commands
- 799 Mh customcmd
- 801 memH: Update ref files for new statistic
- 802 memH: Fix ref files (more)
- 803 memH: Fix problem with getRequestor return type.
- 804 memH: Fix another ref file
- 805 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 808 Cleanup compile warnings for clang and gcc before the latest release.
- 809 Change MemHierarchy to the new ELI
- 810 Fixed compile error for Cramsim when using gcc 5.4 on CentOS 7
- 811 Add simple memory model to firefly
- 812 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 813 Firefly simple memory model
- 815 bug fix to HBMpagedMultiBackend to correct typos
- 816 fix for non bidirectional case
- 817 Fix all to all bugs in Firefly
- 818 My shmem timing
- 819 MemH tests for Goblin HMCSim
- 820 Devel
- 821 Goblin MC Reference files added
- 822 Mjleven/fix multi core ember
- 823 memH: Fix errors flagged by valgrind
- 824 Update Makefile.am
- 825 Update Makefile.am
- 826 Try again clean
- 827 Update Makefile.am
- 828 Devel
- 829 Update Makefile.am
- 830 Use dash not under-score
- 831 One more try
- 832 Mjleven/fix fft3 d
- 833 Fix multithreaded problem due to non-atomic ID counter
- 834 two more files to Makefile.am for Goblin
- 835 fix leak
- 837 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean
- 838 fixing HBMDramSim test fixtures to reflect new subcomponent name
- 839 SST Master Branch Merger: Auto Create Pull Request to Promote from devel to master - All Tests Ran Clean