False sharing and its effect on shared memory performance

  • Authors:
  • William J. Bolosky;Michael L. Scott

  • Affiliations:
  • Microsoft Research Laboratory, Redmond, WA;Computer Science Department, University of Rochester, Rochester, NY

  • Venue:
  • Sedms'93 USENIX Systems on USENIX Experiences with Distributed and Multiprocessor Systems - Volume 4
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

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.