salle A. Turing CE4
7 juin 2012 - 14h00
Remote Core Locking: Migrating Critical-Section Execution to Improve the Performance of Multithreaded Applications
par Gilles Muller de LIP6
Abstract: The scalability of multithreaded applications on current
multicore systems is hampered by the performance of
lock algorithms, due to the costs of access contention
and cache misses. In this paper, we propose a new lock
algorithm, Remote Core Locking (RCL) that aims to im-
prove the performance of critical sections in legacy ap-
plications on multicore architectures. The idea of RCL is
to replace lock acquisitions by optimized remote proce-
dure calls to a dedicated server core. RCL limits the per-
formance collapse observed with other lock algorithms
when many threads try to acquire a lock concurrently
and removes the need to transfer lock-protected shared
data to the core acquiring the lock because such data can
typically remain in the server core’s cache.
We have developed a profiler that identifies the locks
that are the bottlenecks in multithreaded applications,
and that can thus benefit from RCL, and a reengineer-
ing tool that transforms POSIX locks into RCL locks.
We have evaluated our approach on 17 applications, in-
cluding Memcached, Berkeley DB, the 9 applications of
the SPLASH-2 benchmark suite and the 7 applications
of the Phoenix2 benchmark suite. 10 of these applica-
tions, including Memcached and Berkeley DB, are un-
able to scale because of locks, and benefit from RCL.
Using RCL locks, we get performance improvements of
up to 2.6 times with respect to POSIX locks on Mem-
cached, and up to 14 times with respect to Berkeley DB.