  In the high performance computing (HPC) domain, performance variability is a
major scalability issue for parallel computing applications with heavy
synchronization and communication. In this paper, we present an experimental
performance analysis of OpenMP benchmarks regarding the variation of execution
time, and determine the potential factors causing performance variability. Our
work offers some understanding of performance distributions and directions for
future work on how to mitigate variability for OpenMP-based applications. Two
representative OpenMP benchmarks from the EPCC OpenMP micro-benchmark suite and
BabelStream are run across two x86 multicore platforms featuring up to 256
threads. From the obtained results, we characterize and explain the execution
time variability as a function of thread-pinning, simultaneous multithreading
(SMT) and core frequency variation.
