Tomatosoup97 / transactional-memory

Software transactional memory, with snapshot isolation, atomicity, and consistency guarantees

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CS-453 - Course project

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:

  • 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

Software transactional memory, with snapshot isolation, atomicity, and consistency guarantees


Languages

Language:C++ 46.0%Language:C 45.7%Language:Python 5.1%Language:Makefile 3.1%Language:Shell 0.1%