With the introduction of advanced heterogeneous computing architectures based on GPU accelerators, large-scale production codes have had to rethink their numerical algorithms and incorporate new programming models and memory management strategies in order to run efficiently on the latest supercomputers. In this work we discuss our co-design strategy to address these challenges and achieve performance and portability with MARBL, a next-generation multi-physics code in development at Lawrence Livermore National Laboratory. We present a two-fold approach, wherein new hardware is used to motivate both new algorithms and new abstraction layers, resulting in a single source application code suitable for a variety of platforms. Focusing on MARBL's ALE hydrodynamics package, we demonstrate scalability on different platforms and highlight that many of our innovations have been contributed back to open-source software libraries, such as MFEM (finite element algorithms) and RAJA (kernel abstractions).
翻译:随着基于GPU加速器的先进多式计算结构的引入,大型生产代码不得不重新思考其数字算法,并纳入新的编程模型和记忆管理战略,以便有效地运行最新的超级计算机。在这项工作中,我们讨论了共同设计战略,以应对这些挑战,并与MARBL(Lawrence Livelmore国家实验室开发的下一代多物理代码,即MARBL(MARBL)一起实现性能和可移动性。我们提出了一个双管齐下的方法,即使用新的硬件来激励新的算法和新的抽象层,从而形成适合各种平台的单一源应用代码。我们侧重于MARBL的ALE水力动力学软件包,展示了不同平台的可扩展性,并着重指出我们的许多创新都为开放源软件图书馆(如MFEM(确定要素算法)和RAJA(核心抽象)等)提供了反馈。