Compiler Reorganization of Shared Data.

Abstract

False sharing in shared memory multiprocessors is caused by a mismatch between the layout of write shared data in memory and the cross-processor memory reference pattern to it. This mismatch can be eliminated by restructuring the data to match the pattern. We have developed compiler algorithms that do this: they analyze per-process shared data accesses in coarse-grained, explicitly parallel programs, pinpoint the data structures that are susceptible to false sharing, and choose an appropriate transformation to reduce it. The restructured programs execute up to three times faster on a KsR-2 multiprocessor, and have considerably better scalability (better performance with increasing numbers of processors). When compared to programmer efforts to restructure shared data (including the extensively hand-tuned SPLASH and SPLASH2 benchmarks), the compiler-directed approach never did worse, and for most programs did considerably better.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1996
Accession Number
ADA321888

Entities

People

  • Susan J. Eggers

Organizations

  • University of Washington

Tags

DTIC Thesaurus Topics

  • Algorithms
  • Bandwidth
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Digital Information
  • Engineering
  • Instructions
  • Multiprocessors
  • Multithreading
  • Operating Systems
  • Side Effects
  • Simulations
  • Simulators
  • Workload

Fields of Study

  • Computer science
  • Engineering

Readers

  • Parallel and Distributed Computing.