TinySTM
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.
You can download the latest release 0.9.9 (29 Jan 2009) of TinySTM (previous versions: 0.9.5, 0.9.0b1, 0.7.4, 0.7.3, 0.7.2, 0.7.1). API documentation is included in the archive.
Support files for STAMP are available for selected combinations of STAMP/TinySTM releases: 0.9.9/0.9.5, 0.9.10/0.9.9. They might (or might not) work with other versions of STAMP/TinySTM.
TinySTM is licensed under the GNU General Public License, version 2.
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 paper:
- Pascal Felber and 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]
