Are there any tools that detect and report False Sharing for applications written in C or C++?
Tools to detect False Sharing in a C/C++ application
Asked Answered
while not showing false sharing directly, intel vtunes can at least on certain CPUs detect sharing, but it costs money and is hard to interpret the result. –
Mccarthyism
Intel products have a personal use license. –
Obedient
Try Sheriff and Predator. Sheriff is at https://github.com/plasma-umass/sheriff, while Predator is at https://github.com/plasma-umass/Predator. Predator is a compiler-based approach that you have to recompile your program using a new LLVM compiler. It is the most exhaustive detection tool up to now. Sheriff is library but it can only detect false sharing if you are using pthreads library.
Try the DRD (data race detection) module of valgrind.
From the manual it looks like it can be used to detect False sharing.
Unfortunately, DRD does not detect anything, even in the simplest cases of false sharing such the one described on en.wikipedia.org/wiki/False_sharing –
Barde
Actually, in the manual there is no claim that DRD is able to detect false sharing –
Gambill
Perf("Performance Counters for Linux")
Commands:
sudo perf record -e cache-misses,anything_else_you_want ./your_program
sudo perf report
© 2022 - 2024 — McMap. All rights reserved.