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.
翻译:在高性能计算(HPC)领域,对于同步和通信密集型并行计算应用而言,性能变异是一个重大的可扩展性问题。本文针对OpenMP基准测试程序执行时间的波动情况进行了实验性性能分析,并确定了导致性能变异的潜在因素。我们的工作为理解性能分布提供了依据,并为未来如何缓解基于OpenMP应用程序的性能变异指明了方向。我们选取了EPCC OpenMP微基准测试套件和BabelStream中的两个代表性OpenMP基准测试程序,在两个支持多达256线程的x86多核平台上运行。根据所得结果,我们以线程绑定、同步多线程(SMT)和核心频率变化为函数,对执行时间变异进行了表征与解释。