Next: 5.3 -Jacobi iteration
Up: 5.2 GMRES solver
Previous: 5.2.1 Sequential algorithm
  Contents
5.2.2 Parallel GMRES
We have to distinguish in algorithm 5.3
not only between functionals
,
and state variables
,
but also with
vectors
,
,
and matrix
which do not fit in that scheme.
Therefore, we will handle them just as scalar values in the
parallelization.
Our strategy for parallelization of the GMRES without
preconditioning (
) is the following.
- $&bull#bullet;$
-
,
,
are
distributed stored.
- $&bull#bullet;$
-
,
,
are
accumulated stored.
- $&bull#bullet;$
- Store the scalar values
,
,
and
redundantly on each processor.
-

- Inner products require only a minimum of
communication (4.7), matrix-times-vector operation
requires no communication at all (4.8).
- !!
- The setting
includes one
change of the vector type via accumulation (4.5).
Here we need communication between all the processes
sharing the proper data.
- $&bull#bullet;$
- All operations on scalar values
,
,
and
will be performed locally on each processor.
These operations are redundant.
- !!
- Nearly all DAXPY-operations use the same vector types
(and scalar values) excluding the operation
combining different vector types.
Changing an accumulated vector
into a distributed one
can be done without any communication (4.6) !
-

- No DAXPY-operation requires communication.
The
iteration of algorithm 5.4
includes
ALL/SMALL>_REDUCE-operations with one real number
and one vector accumulation.
Due to changing the type of vector
we have to perform
additional multiplications (
- length of vector
).
Parallelization of GMRES(m) with a restart after
iterations
can be done in the same way as above.
Next: 5.3 -Jacobi iteration
Up: 5.2 GMRES solver
Previous: 5.2.1 Sequential algorithm
  Contents
Gundolf Haase
2000-03-20