Benchmarking Weak Memory Models

被引:0
作者
Ritson, Carl G. [1 ]
Owens, Scott [1 ]
机构
[1] Univ Kent, Canterbury CT2 7NZ, Kent, England
基金
英国工程与自然科学研究理事会;
关键词
memory models; concurrency; benchmarking; performance;
D O I
10.1145/2851141.2851150
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
To achieve good multi-core performance, modern microprocessors have weak memory models, rather than enforce sequential consistency. This gives the programmer a wide scope for choosing exactly how to implement various aspects of inter-thread communication through the system's shared memory. However, these choices come with both semantic and performance consequences, often in tension with each other. In this paper, we focus on the performance side, and define techniques for evaluating the impact of various choices in using weak memory models, such as where to put fences, and which fences to use. We make no attempt to judge certain strategies as best or most efficient, and instead provide the techniques that will allow the programmer to understand the performance implications when identifying and resolving any semantic/performance trade-offs. In particular, our technique supports the reasoned selection of macrobenchmarks to use in investigating trade-offs in using weak memory models. We demonstrate our technique on both synthetic benchmarks and real-world applications for the Linux Kernel and OpenJDK Hotspot Virtual Machine on the ARMv8 and POWERv7 architectures.
引用
收藏
页码:289 / 299
页数:11
相关论文
共 27 条
[1]   Herding Cats: Modelling, Simulation, Testing, and Data Mining for Weak Memory [J].
Alglave, Jade ;
Maranget, Luc ;
Tautschnig, Michael .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (02)
[2]  
Apache Software Foundation, 2014, AP SPARK LIGHTN FAST
[3]  
ARM Limited, 2015, ARM ARCH REF MAN ARM
[4]   The Problem of Programming Language Concurrency Semantics [J].
Batty, Mark ;
Memarian, Kayvan ;
Nienhuis, Kyndylan ;
Pichon-Pharabod, Jean ;
Sewell, Peter .
PROGRAMMING LANGUAGES AND SYSTEMS, 2015, 9032 :283-307
[5]   Mathematizing C plus plus Concurrency [J].
Batty, Mark ;
Owens, Scott ;
Sarkar, Susmit ;
Sewell, Peter ;
Weber, Tjark .
POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, :55-66
[6]   The DaCapo benchmarks: Java']Java benchmarking development and analysis [J].
Blackburn, Stephen M. ;
Garner, Robin ;
Hoffmann, Chris ;
Khan, Asjad M. ;
McKinley, Kathryn S. ;
Bentzur, Rotem ;
Diwan, Amer ;
Feinberg, Daniel ;
Frampton, Daniel ;
Guyer, Samuel Z. ;
Hirzel, Martin ;
Hosking, Antony ;
Jump, Maria ;
Lee, Han ;
Moss, J. Eliot B. ;
Phansalkar, Aashish ;
Stefanovic, Darko ;
VanDrunen, Thomas ;
von Dincklage, Daniel ;
Wiedermann, Ben .
ACM SIGPLAN NOTICES, 2006, 41 (10) :169-190
[7]  
Boehm H.-J., 2014, MSPC, p7:1
[8]   Foundations of the C++ concurrency memory model [J].
Boehm, Hans-J. ;
Adve, Sarita V. .
ACM SIGPLAN NOTICES, 2008, 43 (06) :68-78
[9]  
Branco R. R., 2008, EBIZZY BENCHMARK
[10]   COZ: Finding Code that Counts with Causal Profiling [J].
Curtsinger, Charlie ;
Berger, Emery D. .
SOSP'15: PROCEEDINGS OF THE TWENTY-FIFTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES, 2015, :184-197