This paper presents a novel method designed to generate multigrid solvers optimized for octree-based software frameworks. Our approach focuses on accurately capturing local features within a domain while leveraging the efficiency inherent in multigrid techniques. We outline the essential steps involved in generating specialized kernels for local refinement and communication routines, integrating on-the-fly interpolations to seamlessly transfer information between refinement levels. For this purpose, we established a software coupling via an automatic fusion of generated multigrid solvers and communication kernels with manual implementations of complex octree data structures and algorithms often found in established software frameworks. We demonstrate the effectiveness of our method through numerical experiments with different interpolation orders. Large-scale benchmarks conducted on the SuperMUC-NG CPU cluster underscore the advantages of our approach, offering a comparison against a reference implementation to highlight the benefits of our method and code generation in general.
翻译:本文提出了一种新颖方法,旨在为基于八叉树的软件框架生成优化的多重网格求解器。我们的方法专注于精确捕获域内的局部特征,同时充分利用多重网格技术固有的高效性。我们概述了生成局部细化和通信例程专用内核的关键步骤,并集成了实时插值以在细化层级之间无缝传递信息。为此,我们通过将生成的多重网格求解器和通信内核与现有软件框架中常见的复杂八叉树数据结构及算法的手动实现自动融合,建立了软件耦合机制。通过不同插值阶数的数值实验,我们验证了该方法的有效性。在SuperMUC-NG CPU集群上进行的大规模基准测试凸显了我们方法的优势,通过与参考实现的对比,进一步展示了本方法及代码生成的整体优越性。