Abstract
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. © 1995, ACM. All rights reserved.
Cite
CITATION STYLE
Jeremiassen, T. E., & Eggers, S. J. (1995). Reducing False Sharing on Shared Memory Multiprocessors through Compile Time Data Transformations. ACM SIGPLAN Notices, 30(8), 179–188. https://doi.org/10.1145/209937.209955
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.