Skip to main content
QUICK REVIEW

[论文解读] Neko: A Modern, Portable, and Scalable Framework for High-Fidelity Computational Fluid Dynamics

Niclas Jansson, Martin Karp|arXiv (Cornell University)|Jul 2, 2021
Parallel Computing and Optimization Techniques参考文献 42被引用 10
一句话总结

Neko 是一个现代的、面向对象的高保真计算流体动力学(CFD)框架,可在从 CPU 到 FPGA 的多种硬件上实现可移植性、可扩展性和高性能模拟。它在现代 CPU 上实现了与 NekRS 和 Nek5000 相当的性能和精度,同时支持多层抽象和面向新兴架构的统一性能模型。

ABSTRACT

Recent trends and advancement in including more diverse and heterogeneous hardware in High-Performance Computing is challenging software developers in their pursuit for good performance and numerical stability. The well-known maxim "software outlives hardware" may no longer necessarily hold true, and developers are today forced to re-factor their codebases to leverage these powerful new systems. CFD is one of the many application domains affected. In this paper, we present Neko, a portable framework for high-order spectral element flow simulations. Unlike prior works, Neko adopts a modern object-oriented approach, allowing multi-tier abstractions of the solver stack and facilitating hardware backends ranging from general-purpose processors down to exotic vector processors and FPGAs. We show that Neko's performance and accuracy are comparable to NekRS, and thus on-par with Nek5000's successor on modern CPU machines. Furthermore, we develop a performance model, which we use to discuss challenges and opportunities for high-order solvers on emerging hardware.

研究动机与目标

  • 为应对高保真 CFD 在高性能计算中日益增长的硬件异构性挑战,实现可移植且可扩展的模拟。
  • 克服传统 CFD 代码与特定硬件紧密耦合且难以扩展的局限性。
  • 设计一个现代的、面向对象的框架,支持多层抽象,并实现跨 CPU、向量处理器和 FPGA 等多样化后端的无缝移植。
  • 确保在现代硬件上实现与 NekRS 和 Nek5000 等生产级求解器相当的数值精度和性能。
  • 开发一个性能模型,以指导优化,并识别在新兴架构上高阶求解器的优化机会。

提出的方法

  • 采用现代面向对象设计,实现求解器栈中的多层抽象,将算法逻辑与硬件特定实现解耦。
  • 通过抽象层构建统一的软件栈,支持异构后端,包括通用处理器、向量单元和 FPGA。
  • 利用高阶谱元方法实现高保真流动模拟,具备高阶精度和几何灵活性。
  • 基于内存带宽、算术强度和数据局部性的性能模型,指导跨硬件平台的优化。
  • 通过代码生成和领域特定抽象,高效表达弱耦合和强耦合的偏微分方程系统。
  • 通过条件良好的弱形式和谱元框架中的保守离散化,确保数值稳定性和精度。

实验结果

研究问题

  • RQ1如何设计一个现代的、可移植的 CFD 框架,以在不牺牲性能或精度的前提下支持多样且异构的硬件?
  • RQ2在 CFD 框架中,面向对象的抽象在多大程度上能够实现跨 CPU、向量处理器和 FPGA 的可移植性?
  • RQ3哪种性能模型最能准确捕捉高阶谱元求解器在新兴硬件平台上的行为?
  • RQ4Neko 在现代 CPU 架构上的性能和精度与 NekRS 和 Nek5000 等成熟求解器相比如何?
  • RQ5在异构和加速系统上,高阶 CFD 求解器的关键性能瓶颈和优化机会是什么?

主要发现

  • Neko 在现代 CPU 硬件上实现了与 NekRS 和 Nek5000 相当的性能和精度,证明了其作为生产级替代方案的可行性。
  • 该框架通过可移植的、基于抽象的设计,成功支持了多种硬件后端,包括 CPU、向量处理器和 FPGA。
  • 所开发的性能模型有效识别出内存带宽和算术强度等关键瓶颈,为未来优化提供了指导。
  • 面向对象的抽象层在保持低级性能的同时,实现了可维护、可扩展的代码,得益于高效的代码生成和内核特化。
  • Neko 的设计实现了高阶精度和几何灵活性,这对于高保真 CFD 模拟至关重要。
  • 该框架表明,现代软件工程实践可以与高性能数值方法有效结合,以支持不断演进的 HPC 工作负载。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。