In this paper we analyze the MPI-only version of the CloverLeaf code from the SPEChpc 2021 benchmark suite on recent Intel Xeon "Ice Lake" and "Sapphire Rapids" server CPUs. We observe peculiar breakdowns in performance when the number of processes is prime. Investigating this effect, we create first-principles data traffic models for each of the stencil-like hotspot loops. With application measurements and microbenchmarks to study memory data traffic behavior, we can connect the breakdowns to SpecI2M, a new write-allocate evasion feature in current Intel CPUs. For serial and full-node cases we are able to predict the memory data volume analytically with an error of a few percent. We find that if the number of processes is prime, SpecI2M fails to work properly, which we can attribute to short inner loops emerging from the one-dimensional domain decomposition in this case. We can also rule out other possible causes of the prime number effect, such as breaking layer conditions, MPI communication overhead, and load imbalance.
翻译:本文针对SPEChpc 2021基准测试套件中的CloverLeaf代码,在最新英特尔至强“Ice Lake”和“Sapphire Rapids”服务器CPU上分析了其仅MPI版本的性能。我们发现当进程数为质数时会出现异常性能下降。通过探究这一现象,我们为每个类模板热点循环创建了基于第一性原理的数据流量模型。结合应用测量与微基准测试对内存数据流量行为的研究,我们将性能下降归因于SpecI2M——当前英特尔CPU新增的写分配规避特性。在串行和全节点场景下,我们能够以百分之几的误差分析预测内存数据量。研究发现当进程数为质数时,SpecI2M无法正常运行,这归因于该情况下由一维域分解产生的短内层循环。同时,我们排除了其他可能导致质数效应的因素,例如破坏层条件、MPI通信开销和负载不均衡等。