Name:
TCLocks
Description:
Scalable transparent delegation locking protocols without application modification
Professor — Lab:
Sanidhya KashyapRobust Scalable Systems Software Lab

Layman description:
In multi-core systems, locks are used to coordinate access to shared data, but traditional lock designs can hurt performance by moving data between cores. TCLocks is a new way to implement locks that avoids this data movement. When a core needs to execute a critical section of code guarded by a lock, it sends that code segment to the core holding the lock. That core then runs the code locally without transferring data. This transparent delegation approach improves performance significantly without changing application code.
Technical description:
TCLocks is a family of locking protocols that use transparent delegation to improve scalability of synchronization in multi-core systems. The waiter encodes its critical section on its stack and notifies the lock holder (combiner), which executes the critical section on the waiter's behalf via a light-weight context switch. This avoids transferring shared data between cores. TCLocks require no modifications to application logic and provide up to 5.2x better performance than recent locking algorithms.
Papers:
Project status:
inactive — entered showcase: 2024-04-12 — entry updated: 2024-04-12

Source code:
Lab Github - last commit: 2023-05-20
Code quality:
This project has not yet been evaluated by the C4DT Factory team. We will be happy to evaluate it upon request.
Project type:
Library
Programming language:
C
License:
GPL-2.0