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.
Document Details
- Document Type
- Technical Report
- Publication Date
- Dec 01, 1996
- Accession Number
- ADA321888
Entities
People
- Susan J. Eggers
Organizations
- University of Washington