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集群上进行的大规模基准测试凸显了本方法的优势——通过对比参考实现,充分体现了该方法及代码生成技术的整体优越性。