ACM SIGPLAN Notices · 1995 · 22 citations · 23 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureParallel ComputingData ParallelismMultiprocessor SystemsParallel Computing SystemsParallel Data StructuresShared-memory MultiprocessingShared-memory ParallelismCompile-time OptimizationCompiler DesignData Dependence AnalysisFalse SharingParallel Program DesignShared Memory MultiprocessorsShared-memory AlgorithmsShared-memory Data Structures
We have developed compiler algorithms that analyze explicitly parallel programs and restructure their shared data to reduce the number of false sharing misses. The algorithms analyze per-process shared data accesses, pinpoint the data structures that are susceptible to false sharing and choose an appropriate transformation to reduce it. The transformations either group data that is accessed by the same processor or separate individual data items that are shared. This paper evaluates that technique. We show through simulation that our analysis successfully identifies the data structures that are responsible for most false sharing misses, and then transforms them without unduly decreasing spatial locality. The reduction in false sharing positively impacts both execution time and program scalability when executed on a KSR2. Both factors combine to increase the maximum achievable speedup for all programs, more than doubling it for several. Despite being able to only approximate actual inter-processor memory accesses, the compiler-directed transformations always outperform programmer efforts to eliminate false sharing.
23
A data locality optimizing algorithm
Michael E. Wolf, Monica S. Lam · 1991 · 1.3K citations · Full text
The Stanford Dash multiprocessor
Daniel Lenoski, James Laudon, Kourosh Gharachorloo et al. · Computer · 1992 · 972 citations
The Stanford FLASH multiprocessor
Jeffrey S. Kuskin, David Ofelt, Mark Heinrich et al. · International Symposium on Computer Architecture · 1994 · 670 citations