2007 · 29 citations · 20 references
ComputingComputer EngineeringComputer ScienceComputer ArchitectureData StructuresDesign OptimizationLayout OptimizationMemory Hierarchy DesignMemory Hierarchy OptimizationParallel Data StructuresPerformance OptimizationPerformance TuningCache LocalityFalse SharingKernel OptimizationKernel Performance OptimizationLocality ConstraintsMicroarchitectural OptimizationRuntime PerformanceSpatial Locality
Structure layout optimizations seek to improve runtime performance by improving data locality and reuse. The structure layout heuristics for single-threaded benchmarks differ from those for multi-threaded applications running on multiprocessor machines, where the effects of false sharing need to be taken into account. In this paper we propose a technique for structure layout transformations for multithreaded applications that optimizes both for improved spatial locality and reduced false sharing, simultaneously. We develop a semi-automatic tool that produces actual structure layouts for multi-threaded programs and outputs the key factors contributing to the layout decisions. We apply this tool on the HP-UX kernel and demonstrate the effects of these transformations for a variety of already highly hand-tuned key structures with different set of properties. We show that naive heuristics can result in massive performance degradations on such a highly tuned application, while our technique generally avoids those pitfalls. The improved structures produced by our tool improve performance by up to 3.2% over a highly tuned baseline
20
Cache-conscious structure layout
Trishul Chilimbi, James R. Larus · 1999 · 337 citations · Full text
A survey of cache coherence schemes for multiprocessors
Per Stenström · Computer · 1990 · 336 citations
Cache-conscious data placement
Brad Calder, Chandra Krintz, Simmi John et al. · 1998 · 268 citations · Full text
Cache-conscious structure definition
Trishul Chilimbi, Bob Davidson, James R. Larus · 1999 · 236 citations · Full text