TMI
Autor: | Gilles Pokam, Ariel Eizenberg, Joseph Devietti, Christian DeLozier, Shiliang Hu |
---|---|
Rok vydání: | 2017 |
Předmět: |
Multi-core processor
Speedup Source code Computer science CPU cache media_common.quotation_subject False sharing Strong consistency Consistency model 020207 software engineering 02 engineering and technology Thread (computing) computer.software_genre 020204 information systems 0202 electrical engineering electronic engineering information engineering Operating system Cache computer media_common |
Zdroj: | MICRO |
DOI: | 10.1145/3123939.3123947 |
Popis: | Cache contention in the form of false sharing and true sharing arises when threads overshare cache lines at high frequency. Such oversharing can reduce or negate the performance benefits of parallel execution. Prior systems for detecting and repairing cache contention lack efficiency in detection or repair, contain subtle memory consistency flaws, or require invasive changes to the program environment. In this paper, we introduce a new way to combat cache line oversharing via the Thread Memory Isolation (TMI) system. TMI operates completely in userspace, leveraging performance counters and the Linux ptrace mechanism to tread lightly on monitored applications, intervening only when necessary. TMI’s compatible-by-default design allows it to scale to real-world workloads, unlike previous proposals. TMI introduces a novel code-centric consistency model to handle cross-language memory consistency issues. TMI exploits the flexibility of code-centric consistency to efficiently repair false sharing while preserving strong consistency model semantics when necessary. TMI has minimal impact on programs without oversharing, slowing their execution by just 2% on average. We also evaluate TMI on benchmarks with known false sharing, and manually inject a false sharing bug into the leveldb key-value store from Google. For these programs, TMI provides an average speedup of 5.2x and achieves 88% of the speedup possible with manual source code fixes. CCS CONCEPTS • Computer systems organization $\rightarrow$ Multicore architectures; • Software and its engineering $\rightarrow$ Runtime environments |
Databáze: | OpenAIRE |
Externí odkaz: |