Skip to main content
QUICK REVIEW

[论文解读] On the Implementation of a Scalable Simulator for Multiscale Hybrid-Mixed Methods

Antônio Tadeu A. Gomes, Weslley da Silva Pereira|arXiv (Cornell University)|Mar 30, 2017
Advanced Mathematical Modeling in Engineering参考文献 8被引用 5
一句话总结

本文提出了两种用于多尺度混合-混合(MHM)有限元方法的可扩展模拟器原型,分别采用MPI(C++/MPI)或Erlang(C++/Erlang)进行并行进程分发。基于Erlang的版本在768个核心下实现了合理的加速比,并具备强大的容错支持,尽管原始性能低于MPI,但仍证明其在云环境和百亿亿次HPC系统中的可行性。

ABSTRACT

The family of Multiscale Hybrid-Mixed (MHM) finite element methods has received considerable attention from the mathematics and engineering community in the last few years. The MHM methods allow solving highly heterogeneous problems on coarse meshes while providing solutions with high-order precision. It embeds independent local problems which are responsible for upscaling unresolved scales into the numerical solution. These local contributions are brought together through a global problem defined on the skeleton of the coarse partition. Since the local problems are completely independent, they can be easily computed in parallel. In this paper, we present two simulator prototypes specifically crafted for the MHM methods, which adopt two different implementation strategies: (i) a multi-programming language approach, each language tackling different simulation issues; and (ii) a classical, single-programming language approach. Specifically, we use C++ for numerical computation of the global and local problems in a modular way; for process distribution in the simulator, we adopt the Erlang concurrent language in the first approach, and the MPI standard in the second approach. The aim of exploring these different approaches is twofold: (i) allow for the deployment of the simulator both in high-performance computing (with MPI) and in cloud computing environments (with Erlang); and (ii) pave the way for further exploration of quality attributes related to software productivity and fault-tolerance, which are key to Exascale systems. We present a performance evaluation of the two simulator prototypes taking into account their efficiency.

研究动机与目标

  • 开发针对多尺度混合-混合(MHM)有限元方法的可扩展、高性能模拟器。
  • 评估两种不同的实现策略:一种是使用Erlang的多语言方法,用于实现容错的云部署;另一种是使用单语言MPI的方法,用于传统HPC环境。
  • 评估两种方法在性能、开发效率和容错能力之间的权衡。
  • 实现在粗网格上高效模拟高度异质的多尺度问题,并保持高阶精度。

提出的方法

  • MHM方法在粗网格骨架上求解全局问题,同时在每个单元上独立并行求解局部问题,以捕捉细尺度特征。
  • 全局和局部问题的数值计算在两个原型中均通过模块化的C++代码实现。
  • 进程分发通过第一个原型中的MPI(HPC优化)和第二个原型中的Erlang基于角色的并发模型(云优化)进行管理。
  • Erlang版本包含完整的节点和链路故障转移机制,以增强容错能力。
  • 通过三种问题规模(四面体单元数从724,992增至74,293,248)评估强可扩展性和弱可扩展性。
  • 性能指标包括执行时间、加速比和效率,基线比较基于24个核心的纯多线程执行。

实验结果

研究问题

  • RQ1能否有效结合MPI和Erlang实现混合MHM模拟器,以适配不同的HPC和云部署环境?
  • RQ2基于Erlang的MHM模拟器在可扩展性和效率方面与传统的MPI实现相比如何?
  • RQ3基于Erlang的方法在不牺牲性能的前提下,能在多大程度上支持容错能力和软件开发效率?
  • RQ4在问题规模持续增加、每核负载保持一致的情况下,MHM模拟器的弱可扩展性效率如何?

主要发现

  • 基于MPI的模拟器实现了更高的原始性能,在最大问题规模下,768个核心的强可扩展性效率达到92.60%。
  • 基于Erlang的模拟器在768个核心下实现了61.89%的强可扩展性效率,尽管通信开销较高,但仍表现出可接受的性能。
  • 当问题规模从12,288×59个四面体扩展到12,288×6,046个四面体时,Erlang的弱可扩展性效率为54.34%,MPI为58.95%,表明负载分布良好。
  • Erlang版本在问题规模增加102.47倍的同时,执行时间仅增加1.84倍,表明实现了有效的弱可扩展性。
  • 尽管存在更高的开销,Erlang实现仍展现出良好的开发效率,仅由一名开发者在4个月内完成完整的容错系统。
  • 结果表明,Erlang是构建容错HPC应用的可行协调语言,尤其适用于云环境和百亿亿次计算场景。

更好的研究,从现在开始

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

无需绑定信用卡

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