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 (29 Jan 2013):
Support files for STAMP:
TinySTM has a dual license. It is licensed both under the GNU General Public License, version 2, and under the MIT license.
We have set up a mailing list for TinySTM users. You can also contact us at tinystm@tinystm.org for questions or to report bugs.
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]