Abstract
Synchronization is undoubtedly the critical and yet annoying part of parallel programming [3{5,13], especially in the performance aspect. As programmers and parallel compilers cannot statically determine whether a code block is race-free or not, synchronization primitives, such as mutex locks, barriers, and conditional variables, are applied onservatively to guarantee the correctness of parallel programs. The performance drop is then incurred because of unnecessary serialization of threads. In addition, a coarse-grained lock is often used in a shared data structure to protect all members in it. Although this kind of programming style is intuitive and easy to follow, threads are serialized unnecessarily when they updates di®erent members. In this paper, we propose SyncFree, an e±cient kernel framework or practical lock-optimized synchronization. SyncFree allows the speculative execution on conventional processors with a revised OS kernel and slightly modi‾ed user libraries.