We improve the performance of multigrid solvers on many-core architectures with cache hierarchies by reorganizing operations in the smoothing step to minimize memory transfers. We focus on patch smoothers, which offer robust convergence rates with respect to the finite element degree for various equations, in the setting of multiplicative subspace correction for numerical efficiency. By combining the computation of local residuals with local solvers, we increase the locality of the problem and thus reduce data transfers. The thread-parallel implementation of this algorithm is based on coloring, which contradicts cache efficiency. We improve data locality by rearranging the loop into batches so that more data can be reused. The organization of consecutive batches prioritizes data locality.
翻译:我们通过重组光滑步骤中的操作以最小化内存传输,提升了多重网格求解器在具有缓存层次结构的众核架构上的性能。我们重点关注块光滑子,其在数值效率的多重子空间校正框架下,针对各类方程在有限元阶数方面提供了稳健的收敛速率。通过将局部残差的计算与局部求解器相结合,我们增强了问题的局部性,从而减少了数据传输。该算法的线程并行实现基于着色策略,但这与缓存效率存在矛盾。我们通过将循环重排为批次以提升数据局部性,使得更多数据能够被重用。连续批次的组织方式优先考虑了数据局部性。