An open API service indexing awesome lists of open source software.

https://github.com/matteoldani/ca-project

TL2 implementation for the Concurrent Algorithm project of 2022
https://github.com/matteoldani/ca-project

Last synced: 3 months ago
JSON representation

TL2 implementation for the Concurrent Algorithm project of 2022

Awesome Lists containing this project

README

        

# CS-453 - Course project

The repo holds my implementation of the project proposed in CS-453 (Concurrent Algorithm) at EPFL. The aim of the project is the implementation of a transaction memory. My implementation of Transactional Locking II is in `tl2`.

## Description

The [project description](https://dcl.epfl.ch/site/_media/education/ca-project.pdf) is available on [Moodle](https://moodle.epfl.ch/course/view.php?id=14334) and the [website of the course](https://dcl.epfl.ch/site/education/ca_2021).

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 `` instead of ``)
* 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](https://dcl.epfl.ch/site/_media/education/ca-project.pdf))
* a tool to submit your implementation (in `submit.py`)
* you should have received by mail a secret _unique user identifier_ (UUID)
* see the [description](https://dcl.epfl.ch/site/_media/education/ca-project.pdf) for more information