Set of exercises from CSC5101 course at Institut Polytechnique de Paris to perfect my C parallel programming skills and delve deeper into the following research topics :
- Threads and synchronization: producer/consumer design pattern implementation
- Lock algorithms: lock implementations and benchmarking for POSIX, spinlock, ticket and MCS locks
- Non-blocking algorithms: implementing a lock-free queue while resolving the ABA problem when freeing nodes
- Transactional memory: implementing a software transactional memory and hazard pattern to free memory
- Non-uniform memory (NUMA) architecture: benchmarking memory reads in a NUMA architecture for different workloads
- Non-volatile memory: simulating a NVMM mapping a persistent file into memory and implementing a write-cache
The CF folders are previous exams trainings.