Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Queue Locks on Cache Coherent Multiprocessors
Proceedings of the 8th International Symposium on Parallel Processing
Experience distributing objects in an SMMP OS
ACM Transactions on Computer Systems (TOCS)
Proceedings of the 44th annual Design Automation Conference
TxLinux: using and managing hardware transactional memory in an operating system
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Performance scalability of a multi-core web server
Proceedings of the 3rd ACM/IEEE Symposium on Architecture for networking and communications systems
Contention-aware scheduler: unlocking execution parallelism in multithreaded java programs
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Factored operating systems (fos): the case for a scalable operating system for multicores
ACM SIGOPS Operating Systems Review
Corey: an operating system for many cores
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
An analysis of Linux scalability to many cores
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
ICPADS '10 Proceedings of the 2010 IEEE 16th International Conference on Parallel and Distributed Systems
A Scheduling Method for Avoiding Kernel Lock Thrashing on Multi-cores
ICPADS '10 Proceedings of the 2010 IEEE 16th International Conference on Parallel and Distributed Systems
Hi-index | 0.00 |
Multicore processors have been ubiquitously used in various computing environments. To achieve the performance potential on multicores, applications are often designed to be multithreaded, therefore threads assigned on different cores can execute in parallel. However, the lock contention in operating systems can degrade the scalability of applications so seriously that the overall throughput decreases with the increasing number of cores (lock thrashing) even if there is no data sharing in applications. Many classical solutions have been widely known as the most effective ways to reduce the lock contention. However, the effectiveness of these methods in reducing lock thrashing on large scale multicores is not well known. Therefore, we choose three popular lock thrashing avoidance methods (mutex lock, adaptive mutex lock and scalable spinlock) to explore the answer and investigate how effective they are. Evaluation results using both micro- and macro-benchmarks on an AMD 32-core platform indicate that although different methods can reduce the lock thrashing to different extents, there is still plenty of room for improvement. Further, we analyze the lock characteristics of four different workloads using a discrete event simulation model. Using our observations, we propose a new, adaptive parallel lock (APlock). APlock has the ability of tuning the number of cores waiting for a lock adaptively, aiming to minimize lock thrashing on multicores.