@inproceedings{a45cd5261d1246aebae414ff551eb9df,
title = "Detecting false sharing in OpenMP applications using the DARWIN framework",
abstract = "Writing a parallel shared memory application that achieves good performance and scales well as the number of threads increases can be challenging. One of the reasons is that as threads proliferate, the contention among shared resources increases and this may cause performance degradation. In particular, multi-threaded applications can suffer from the false sharing problem, which can degrade the performance of an application significantly. The work in this paper focuses on detecting performance bottlenecks caused by false sharing in OpenMP applications. We introduce a dynamic framework to help application developers detect instances of false sharing as well as identify the data objects in an OpenMP code that cause the problem. The framework that we have developed leverages features of the OpenMP collector API to interact with the OpenMP compiler's runtime library and utilizes the information from hardware counters. We demonstrate the usefulness of this framework on actual applications that exhibit poor scaling because of false sharing. To show the benefit of our technique, we manually modify the identified problem code by adjusting the alignment of the data that are causing false sharing; we then compare the performance with the original version.",
keywords = "Cache coherence, DARWIN, false sharing, hardware counter, OpenMP, OpenMP collector API",
author = "Besar Wicaksono and Munara Tolubaeva and Barbara Chapman",
year = "2013",
doi = "10.1007/978-3-642-36036-7\_19",
language = "English",
isbn = "9783642360350",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
pages = "283--297",
booktitle = "Languages and Compilers for Parallel Computing - 24th International Workshop, LCPC 2011, Revised Selected Papers",
note = "24th International Workshop on Languages and Compilers for Parallel Computing, LCPC 2011 ; Conference date: 08-09-2011 Through 10-09-2011",
}