Parareal is a
parallel algorithm
In computer science, a parallel algorithm, as opposed to a traditional serial algorithm, is an algorithm which can do multiple operations in a given time. It has been a tradition of computer science to describe serial algorithms in abstract machine ...
from
numerical analysis
Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of numerical methods th ...
and used for the solution of
initial value problem
In multivariable calculus, an initial value problem (IVP) is an ordinary differential equation together with an initial condition which specifies the value of the unknown function at a given point in the domain. Modeling a system in physics or o ...
s.
It was introduced in 2001 by
Lions
The lion (''Panthera leo'') is a large Felidae, cat of the genus ''Panthera'' native to Africa and India. It has a muscular, broad-chested body; short, rounded head; round ears; and a hairy tuft at the end of its tail. It is sexually dimorphi ...
, Maday and Turinici. Since then, it has become one of the most widely studied parallel-in-time integration methods.
Parallel-in-time integration methods
In contrast to e.g.
Runge-Kutta or
multi-step methods, some of the computations in Parareal can be performed
in parallel
Two-terminal components and electrical networks can be connected in series or parallel. The resulting electrical network will have two terminals, and itself can participate in a series or parallel topology. Whether a two-terminal "object" is an ...
and Parareal is therefore one example of a
parallel-in-time integration method. While historically most efforts to parallelize the
numerical solution
Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of numerical methods th ...
of
partial differential equation
In mathematics, a partial differential equation (PDE) is an equation which imposes relations between the various partial derivatives of a multivariable function.
The function is often thought of as an "unknown" to be solved for, similarly to ...
s focussed on the spatial discretization, in view of the challenges from
exascale computing
Exascale computing refers to computing systems capable of calculating at least "1018 IEEE 754 Double Precision (64-bit) operations (multiplications and/or additions) per second ( exa FLOPS)"; it is a measure of supercomputer performance.
Exasca ...
, parallel methods for
temporal discretization
Temporal discretization is a mathematical technique applied to transient problems that occur in the fields of applied physics and engineering.
Transient problems are often solved by conducting simulations using computer-aided engineering (CAE) pa ...
have been identified as a possible way to increase concurrency in
numerical software.
Because Parareal computes the numerical solution for multiple time steps in parallel, it is categorized as a ''parallel across the steps'' method.
This is in contrast to approaches using ''parallelism across the method'' like parallel Runge-Kutta or extrapolation methods, where independent stages can be computed in parallel or ''parallel across the system'' methods like waveform relaxation.
History
Parareal can be derived as both a
multigrid method In numerical analysis, a multigrid method (MG method) is an algorithm for solving differential equations using a hierarchy of discretizations. They are an example of a class of techniques called multiresolution methods, very useful in problems exhi ...
in time method or as
multiple shooting along the time axis.
Both ideas, multigrid in time as well as adopting multiple shooting for time integration, go back to the 1980s and 1990s.
Parareal is a widely studied method and has been used and modified for a range of different applications.
Ideas to parallelize the solution of initial value problems go back even further: the first paper proposing a parallel-in-time integration method appeared in 1964.
Algorithm
The Problem
The goal is to solve an initial value problem of the form
The right hand side
is assumed to be a smooth (possibly nonlinear) function. It can also correspond to the spatial discretization of a partial differential equation in a
method of lines
The method of lines (MOL, NMOL, NUMOL) is a technique for solving partial differential equations (PDEs) in which all but one dimension is discretized. By reducing a PDE to a single continuous dimension, the method of lines allows solutions to be c ...
approach. We wish to solve this problem on a temporal mesh of
equally spaced points
, where
and
. Carrying out this discretisation we obtain a partitioned time interval consisting of time slices
for
.
The objective is to calculate numerical approximations
to the exact solution
using a serial time-stepping method (e.g. Runge-Kutta) that has high numerical accuracy (and therefore high computational cost). We refer to this method as the fine solver
, which propagates an initial value
at time
to a terminal value
at time
. The goal is to calculate the solution (with high numerical accuracy) using
such that we obtain
The problem with this (and the reason for attempting to solve in parallel in the first place) solution is that it is computationally infeasible to calculate in real-time.
How it works
Instead of using a single processor to solve the initial value problem (as is done with classical time-stepping methods), Parareal makes use of
processors. The aim to is to use
processors to solve
smaller initial value problems (one on each time slice) in parallel. For example, in a
MPI based code,
would be the number of processes, while in an
OpenMP
OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating sy ...
based code,
would be equal to the number of
threads
Thread may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
.
Parareal makes use of a second time-stepping method to solve this initial value problem in parallel, referred to as the coarse solver
.
The coarse solver works the same way as the fine solver, propagating an initial value over a time interval of length
, however it does so at much lower numerical accuracy than
(and therefore at much lower computational cost).
Having a coarse solver that is much less computationally expensive than the fine solver is the key to achieving parallel speed-up with Parareal.
Henceforth, we will denote the Parareal solution at time
and iteration
by
.
Zeroth Iteration
Firstly, run the coarse solver serially over the entire time interval
to calculate an approximate initial guess to the solution:
Subsequent Iterations
Next, run the fine solver on each of the time slices, in parallel, from the most up-to-date solution values:
Now update the parareal solution values sequentially using the predictor-corrector:
At this stage, one can use a stopping criterion to determine whether the solution values are no longer changing each iteration. For example, one may test this by checking if
and some tolerance
. If this critertion is not satisfied, subsequent iterations can then be run by applying the fine solver in parallel and then the predictor-corrector. Once the criterion is satisfied, however, the algorithm is said to have converged in
iterations. Note that other stopping criterion do exist and have been successfully tested in Parareal.
Remarks
Parareal should reproduce the solution that is obtained by the serial application of the fine solver and will converge in a maximum of
iterations.
For Parareal to provide speedup, however, it has to converge in a number of iterations significantly smaller than the number of time slices, i.e.
.
In the Parareal iteration, the computationally expensive evaluation of
can be performed in parallel on
processing units.
By contrast, the dependency of
on
means that the coarse correction has to be computed in serial order.
Typically, some form of Runge-Kutta method is chosen for both coarse and fine integrator, where
might be of lower order and use a larger time step than
.
If the initial value problem stems from the discretization of a PDE,
can also use a coarser spatial discretization, but this can negatively impact convergence unless high order interpolation is used.
Speedup
Under some assumptions, a simple theoretical model for the
speedup
In computer architecture, speedup is a number that measures the relative performance of two systems processing the same problem. More technically, it is the improvement in speed of execution of a task executed on two similar architectures with d ...
of Parareal can be derived.
Although in applications these assumptions can be too restrictive, the model still is useful to illustrate the trade offs that are involved in obtaining speedup with Parareal.
First, assume that every time slice