Skip to content
This repository has been archived by the owner on Dec 25, 2022. It is now read-only.

My implementation of a Software Transactional Memory based on TL2, with the addition of revalidation during reads in read-only transactions, to try and reduce the number of aborts in read-only transactions.

Notifications You must be signed in to change notification settings

friedbyalice/CS453-Concurrent-Algorithms-Project

Repository files navigation

CS-453 EPFL - Concurrent Algorithms course project

My implementation of a Software Transactional Memory based on TL2, with the addition of revalidation during reads in read-only transactions, to try and reduce the number of aborts in read-only transactions. My code is here.

Assigment

The project description is available on Moodle and the website of the course.

The description includes:

  • an introduction to (software) transactional memory
  • an introduction to concurrent programming in C11/C++11, with pointers to more resources
  • the specifications of the transactional memory you have to implement, i.e. both:
    • sufficient properties for a transactional memory to be deemed correct
    • a thorough description of the transactional memory interface
  • practical informations, including:
    • how to test your implementation on your local machine and on the evaluation server
    • how your submission will be graded
    • rules for (optionally) using 3rd-party libraries and collaboration (although the project is individual)

This repository provides:

  • examples of how to use synchronization primitives (in sync-examples/)
  • a reference implementation (in reference/)
  • a "skeleton" implementation (in template/)
    • this template is written in C11
    • feel free to overwrite it completely if you prefer to use C++ (in this case include <tm.hpp> instead of <tm.h>)
  • the program that will test your implementation (in grading/)
    • the same program will be used on the evaluation server (although possibly with a different seed)
    • you can use it to test/debug your implementation on your local machine (see the description)
  • a tool to submit your implementation (in submit.py)
    • you should have received by mail a secret unique user identifier (UUID)
    • see the description for more information

About

My implementation of a Software Transactional Memory based on TL2, with the addition of revalidation during reads in read-only transactions, to try and reduce the number of aborts in read-only transactions.

Topics

Resources

Stars

Watchers

Forks