TinySTM is a lightweight and efficient word-based STM implementation. Its time-based algorithm is derived from LSA and its lock-based design borrows several key elements from other word-based STMs, such as TL2.
TinySTM compiles and runs on 32 or 64-bit architectures. It was tested on various flavors of Unix, on Mac OS X, and on Windows using cygwin. It uses the atomic_ops library to implement atomic operations.
Download latest release (20 Feb 2014):
Support files for STAMP:
- STAMP 0.9.10 / TinySTM 1.0.4 (compatible with 1.0.5)
TinySTM has a dual license. It is licensed both under the GNU General Public License, version 2, and under the MIT license.
If you use TinySTM, please cite the following papers:
- Pascal Felber, Christof Fetzer, Patrick Marlier, and Torvald Riegel, Time-based Software Transactional Memory, IEEE Transactions on Parallel and Distributed Systems, Volume 21, Issue 12, pp. 1793-1807, December 2010.
- Pascal Felber, Christof Fetzer, and Torvald Riegel, Dynamic Performance Tuning of Word-Based Software Transactional Memory, Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), 2008, [PDF]