The Multilevel Monte Carlo (MLMC) method has proven to be an effective variance-reduction statistical method for Uncertainty Quantification (UQ) in Partial Differential Equation (PDE) models, combining model computations at different levels to create an accurate estimate. Still, the computational complexity of the resulting method is extremely high, particularly for 3D models, which requires advanced algorithms for the efficient exploitation of High Performance Computing (HPC). In this article we present a new implementation of the MLMC in massively parallel computer architectures, exploiting parallelism within and between each level of the hierarchy. The numerical approximation of the PDE is performed using the finite element method but the algorithm is quite general and could be applied to other discretization methods as well, although the focus is on parallel sampling. The two key ingredients of an efficient parallel implementation are a good processor partition scheme together with a good scheduling algorithm to assign work to different processors. We introduce a multiple partition of the set of processors that permits the simultaneous execution of different levels and we develop a dynamic scheduling algorithm to exploit it. The problem of finding the optimal scheduling of distributed tasks in a parallel computer is an NP-complete problem. We propose and analyze a new greedy scheduling algorithm to assign samples and we show that it is a 2-approximation, which is the best that may be expected under general assumptions. On top of this result we design a distributed memory implementation using the Message Passing Interface (MPI) standard. Finally we present a set of numerical experiments illustrating its scalability properties.
翻译:多层蒙特卡罗(Multilevel Monte Carlo,MLMC)方法已被证明是一种有效的方差缩减统计方法,用于偏微分方程(PDE)模型中的不确定性量化(UQ),它通过结合不同层次的模型计算来形成精确估计。然而,该方法的计算复杂度极高,尤其是对于三维模型,这需要先进的算法来高效利用高性能计算(HPC)。本文提出了一种在大规模并行计算机架构上实现MLMC的新方法,在层次结构的每一层内部和层之间均利用并行性。PDE的数值近似采用有限元方法进行,但该算法具有相当的通用性,也可应用于其他离散化方法,尽管本文重点在于并行采样。高效并行实现的两个关键要素是良好的处理器划分方案以及用于将工作分配给不同处理器的良好调度算法。我们引入了对处理器集合的多重划分,允许同时执行不同层次,并开发了一种动态调度算法来利用这一特性。在并行计算机上寻找分布式任务最优调度的问题是一个NP完全问题。我们提出并分析了一种新的贪心调度算法来分配样本,并证明该算法是2-近似的,这是在一般假设下所能期待的最佳结果。在此结果基础上,我们使用消息传递接口(MPI)标准设计了一种分布式内存实现。最后,我们展示了一组数值实验,说明了其可扩展性特性。