Featherlight on-the-fly false-sharing detection

Featherlight on-the-fly false-sharing detection
复制标题

Featherlight 即时错误共享检测

DOI:
--
复制
发表时间:
2018
期刊:
ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming
影响因子:
--
通讯作者:
Xu Liu
Xu Liu
中科院分区:
--
文献类型:
--
作者:
Milind Chabbi;Shasha Wen;Xu Liu

文献摘要

被引文献

相似文献

共享内存并行程序经常遭受错误共享-由于不同线程访问驻留在同一CPU缓存行上的不同变量并且至少一个变量被修改而导致的性能下降。最先进的工具通过记录内存访问并将随后的访问跟踪馈送到离线缓存模拟器的重量级进程来检测错误共享。我们已经开发了Feather,一个轻量级的、即时的错误共享检测工具。Feather通过利用在商用CPU中普遍存在的两个硬件特性来实现低开销:性能监视单元(PMU)和调试寄存器。此外,Feather是第一个在使用共享内存的多进程应用程序中检测错误共享的工具。Feather让我们可以将错误共享检测扩展到无数代码。Feather在重要的多核和多进程代码中检测到了几个错误共享案例,包括以前的PPoPP工件。消除错误共享导致了戏剧性的(高达16倍)加速。
Shared-memory parallel programs routinely suffer from false sharing---a performance degradation caused by different threads accessing different variables that reside on the same CPU cacheline and at least one variable is modified. State-of-the-art tools detect false sharing via a heavyweight process of logging memory accesses and feeding the ensuing access traces to an offline cache simulator. We have developed Feather, a lightweight, on-the-fly false-sharing detection tool. Feather achieves low overhead by exploiting two hardware features ubiquitous in commodity CPUs: the performance monitoring units (PMU) and debug registers. Additionally, Feather is a first-of-its-kind tool to detect false sharing in multi-process applications that use shared memory. Feather allowed us to scale false-sharing detection to myriad codes. Feather detected several false-sharing cases in important multi-core and multi-process codes including previous PPoPP artifacts. Eliminating false sharing resulted in dramatic (up to 16x) speedups.