Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
False Sharing and Its Effect on Shared Memory Performance

William J. Bolosky and Michael L. Scott

Abstract

False sharing occurs when processors in a shared-memory parallel system make references to different data objects within the same coherence block (cache line or page), thereby inducing unnecessary coherence operations. False sharing is widely believed to be a serious problem for parallel program performance, but a precise definition and quantification of the problem has proven to be elusive. We explain why. In the process, we present a variety of possible definitions for false sharing, and discuss the merits and drawbacks of each. Our discussion is based on experience gained during a four-year study of multiprocessor memory architecture and its effect on the behavior of applications in a sixteen-program suite. Using trace-based simulation, we present experimental evidence to support the claim that false sharing is a serious problem. Unfortunately, we find that the various computationally tractable approaches to quantifying the problem are either heuristic in nature, or fail to agree with intuition.

Details

Publication typeTechReport
URLhttp://www.usenix.org/
NumberMSR-TR-93-01
Pages16
InstitutionMicrosoft Research
PublisherAdvanced Computing Systems Association
> Publications > False Sharing and Its Effect on Shared Memory Performance