An Introduction to Transactional Memory
Jonathan Parri · 2010
Parallel programming has become a complex task as systems enabling such parallelization increase in popularity and scale. Parallel programming can be simplified by presenting an abstraction that allows groups of load and store operations to execute in an atomic fashion. Grouping these load store operations together at an abstracted level forms the basis of transactional memory encompassing concurrency control for memory accesses. Transactional memory is analogous to common database transactions that have been in use for decades for client-server systems. Hardware transactional memory (HTM) and software transactional memory (STM) are the most common types of implementations for transactional memory and have evolved over time to current processor integrated ISA extensions and packaged libraries for many software languages and models.