VMSTM is a software implementation of transactional memory.
It has the following features:
- Allows execution of transaction code block without code instrumentation.
- Performs dynamic identification of shared accesses.
- Allows different handling of shared and non-shared accesses.
- Can be based on any commit-time STM algorithm. Currently based on TL2.
- Can be executed on any Windows NT
Dynamic Identification of Shared Transactional Locations. Alexander Matveev, Ori Shalev, and Nir Shavit. Technical Report, Tel Aviv University, November 2007
VMF Detailed Design, v3. Alexander Matveev and Yehuda Afek.
VMSTM Software Package
Current VMSTM software package includes the following STM implementations:
- VM-STM module : implementation of TL2 based on OS paging and exception machanism.
- TL2-STM module : implementation of TL2 with code instrumentation.
- TL2-PAGE-STM module : same as previous but with page-granularity for the TM buffer.
- HSTM (Hybrid STM) module : implementation of TL2 by software simulation of the VMF hardware element (look at DITM article)
In addition to the STM modules the package includes a framework for benchmarking the algorithms.
The source code is available here.