![]() ![]() ![]() This limits the scalability of a multi-core processor due to the large amount of low- and variable-cost data sharing between cores. A NUMA-aware algorithm, which only considers the transmission delay between processors, may not fully utilize the connection network of a multi-core processor. The evaluation shows that TCLocks provide up to 5.2x performance improvement compared with recent locking algorithms.Īs the number of processor cores increases, the efficiency of accessing shared variables through the lock-unlock method decreases. Using transparent delegation, we design a family of locking protocols, called TCLocks, that requires zero modification to applications' logic. The combiner executes the shipped critical section on the waiter's behalf using a lightweight context switch. We propose transparent delegation, in which a waiter automatically encodes its critical section information on its stack and notifies the combiner (lock holder). However, such locks require modifying applications to explicitly package the critical section, which makes it virtually infeasible for complicated applications with large code bases, such as the Linux kernel. Meanwhile, some locks avoid this shared data movement by localizing the access to shared data on one core, and shipping the critical section to that specific core. This design adds unavoidable critical path latency leading to performance scalability issues. Locks, as used in practice, move the lock-guarded shared data to the core holding it, which leads to shared data transfer among cores. While locks ensure mutual exclusion of shared data, their design impacts application scalability. Today's high-performance applications heavily rely on various synchronization mechanisms, such as locks. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |