Contention-Aware Scheduler: Unlocking Execution Parallelism in Multithreaded Java Programs |
Feng Xian, Witawas Srisa-an, and Hong Jiang |
International Conference of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Nashville, Tennessee, October 19-23, 2008. |
Abstract |
|
In multithreaded programming, locks are frequently used as a mechanism
for synchronization. Because today's operating systems do not consider
lock usage as a scheduling criterion, scheduling decisions can be
unfavorable to multithreaded applications, leading to performance
issues such as convoying and heavy lock contention in systems with
multiple processors. Previous efforts to address these issues (e.g.,
transactional memory, lock-free data structure) often treat scheduling
decisions as ``a fact of life,'' and therefore these solutions try to
cope with the consequences of undesirable scheduling instead of
dealing with the problem directly.
In this paper, we introduce Contention-Aware Scheduler (CA-Scheduler), which is designed to support efficient execution of large multithreaded Java applications in multiprocessor systems. Our proposed scheduler employs a scheduling policy that reduces lock contention. As will be shown in this paper, our prototype implementation of the CA-Scheduler in Linux and Sun HotSpot virtual machine only incurs 3.5% runtime overhead, while the overall performance differences, when compared with a system with no contention awareness, range from a degradation of 3% in a small multithreaded benchmark to an improvement of 15% in a large Java application server benchmark. |
|
|
| ACM DL |
| 1916 visitors since August 1, 2008. |