This repository contains an implementation of a Software Transactional Memory according to the description of Transactional Locking 2 (TL2) algorithm (Dice et. al) using C11 atomics.
It was developed by Manos Chatzakis (emmanouil.chatzakis@epfl.ch) at EPFL in December 2023.
The implementation of TL2 manages to outperform the corresponding coarse-grained pthread lock implementation of transactional programming, achieving approximately 2.5x speedup.
This library can be included in any C/C++ project. The binary of the library can be generated with the makefile provided
make build # Will create the tm.c.o file to be included in subsequent compilations.
The above command compile the library. To clean the produced files, use
make clean
This project was developed for the Concurrent Computing course of EPFL.