Atomic sections guarantee atomic and isolated execution of a block of code. Transactional Memory can be used to implement them but suffers from the inability to support system calls and has high overhead. Lock inference is a pessimistic alternative that infers the locks necessary to prevent thread interference. Our research looks at lock inference techniques for Java programs. An important aspect of the performance of a lock inference approach is the efficiency of its runtime locks. In this paper, we describe an implementation of the multi-level locks of Gray et al  using Java’s Synchronizer framework  and present some preliminary performance results for a number of workloads that perform a varying proportion of fine-grained and coarse-grained operations. We compare our lock implementation against Java’s ReentrantReadWriteLock and the STM algorithms TL2  and LSA . For fine-grained workloads, we show that multi-level locks perform similarly to ReentrantReadWriteLock but in workloads that mix fine-grained and coarse-grained data operations, they achieve better performance (upto 11x against ReentrantRead-WriteLock and 3x against STM). 1
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.