TO-Lock: Removing Lock Overhead Using the Owners' Temporal Locality

  • Authors:
  • Takeshi Ogasawara;Hideaki Komatsu;Toshio Nakatani

  • Affiliations:
  • Tokyo Research Laboratory, IBM Japan;Tokyo Research Laboratory, IBM Japan;Tokyo Research Laboratory, IBM Japan

  • Venue:
  • Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The performance of locking is critical, as programming languages with built-in thread support are coming into wide use. Many techniques for optimizing Java monitors have been proposed, based on the observation that the locks are rarely contended for in many applications. However, the problem of the performance degradation in SMP environments caused by necessary serializations of the processors' execution has not been addressed for shared objects. We propose a new algorithm for this problem. It uses simple instructions to acquire the lock by exploiting the owner locality for objects even if the ownership has migrated among the threads. Our algorithm is particularly effective for SMP environments because we can remove the overhead of the serialization caused by complex atomic operations for uncontended locks by allowing the lock operation and the code protected by the lock to be executed in parallel. We verified the safety of the algorithm by using a software tool, Spin. The experimental results of our bench-marking on an SMP machine using Intel Xeon processors showed that our algorithm can significantly improve the performance by 83% on average compared to the case using a complex atomic instruction.