  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.
