Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Speculative Locks for Concurrent Execution of Critical Sections in Shared-Memory MultiprocessorsFebruary 2001
2001 Technical Report
Publisher:
  • University of Illinois at Urbana-Champaign
  • Champaign, IL
  • United States
Published:01 February 2001
Bibliometrics
Skip Abstract Section
Abstract

Multi-threaded applications typically use coarse- or fine-grain locks to enforce synchronization when needed. While fine-grain synchronization enables higher concurrency, it often involves significantly more programming effort than coarse-grain synchronization. To address this trade-off, this paper proposes Speculative Locks. Speculative Locks are based on the concepts and mechanisms of speculative thread-level parallelisation. Threads access a critical section without synchronizing, while the underlying hardware monitors for conflicting accesses. If a conflict is detected, threads are rolled back and restarted on the fly. Overall, Speculative Locks allow the programmability of coarse-grain synchronization while enabling the concurrency of fine-grain synchronization. The presence of a lock owner at all times guarantees forward progress, and all in-order conflicts between owner and speculative thread are tolerated. Under the right conditions, the resulting system performs about as well or better than a conventional one with finer-grain synchronization. In addition, it never performs worse than a conventional system with the same synchronization granularity.

Contributors
  • Cornell University
  • University of Illinois Urbana-Champaign

Recommendations