|
|
Parallel Iterative Methods
Rudnei Dias da Cunha (Instituto de
Matemática, UFRGS, Brazil)
Tim Hopkins (Computing Laboratory,
University of Kent at Canterbury, UK)
The Parallel Iterative
Methods (PIM) is a collection of Fortran 77
routines designed to solve systems of linear
equations (SLEs) on parallel computers using a
variety of iterative methods.
PIM offers a number of
iterative methods, including
- Conjugate-Gradients, CG (Hestenes 1952),
- Bi-Conjugate-Gradients, BICG (Fletcher
1976),
- Conjugate-Gradients squared, CGS (Sonneveld
89),
- the stabilised version of
Bi-Conjugate-Gradients, BICGSTAB (van der Vorst
1991),
- the restarted version of BICGSTAB,
RBICGSTAB (Sleijpen and Fokkema 1992),
- the restarted generalised minimal residual,
RGMRES (Saad 1986),
- the restarted generalised conjugate
residual, RGCR (Eisenstat 1983),
- the normal equation solvers, CGNR (Hestenes
1952 and CGNE (Craig 1955),
- the quasi-minimal residual, QMR (highly
parallel version due to Bucker and Sauren,
1996),
- transpose-free quasi-minimal residual,
TFQMR (Freund 1992),
- the Chebyshev acceleration, CHEBYSHEV
(Young 1981).
The coefficient matrix
may be either real or complex; we provide a set
of the PIM routines for each, in both single
and double precision.
The user may want to use
preconditioners to accelerate or obtain
convergence. The routines allow the use of
left-, right- or symmetric-preconditioning; the
system can also be solved without
preconditioning.
Seven different stopping
criteria are available, these include the usual
scaled residual of the iteration vector at the
k-th iteration and the absolute
difference between two successive iteration
vectors. The progress of the iterations can be
monitored.
PIM was developed with
two main goals
- To allow the user complete freedom with
respect to the matrix storage, access and
partitioning;
- To achieve portability across a variety of
parallel architectures and programming
environments.
These goals are achieved by hiding from the
PIM routines the specific details concerning the
computation of the following three linear algebra
operations
- Matrix-vector (and transpose-matrix-vector)
product;
- Preconditioning step;
- Inner-products and vector norm.
PIM has already been
used in a variety of applications, for example,
as part of a finite-element code for designing
gas turbines (Pratt & Whitney, Canada), the
modelling of flux in porous media (ARCO Oil &
Gas) and the modelling of geo-electromagnetic
induction in the Earth (Agarwal 1994).
Supported architectures
and environments
- networks of workstations using
message-passing systems (PVM 3 and MPI)
- SGI Challenge
- Kendall Square Research KSR1
- Cray Y-MP2E/232
- Cray C9016E
- Cray T3D
- Intel Paragon XP/S
- Intel iPSC/860
- IBM 9070 SP/1
- TMC CM-5
Downloading the
package...
Current version is 2.3.
To obtain a copy of the package or its User's
Guide, please click one of the links below:
Acknowledgements
We would like to thank the following
institutions for kindly making their facilities
available for our tests
-
National Supercomputing Centre (CESUP),
Brazil
- National Laboratory for Scientific
Computing (LNCC/CNPq), Brazil
- Parallel Laboratory, University in
Bergen, Norway
- Army High Performance Computing Research
Center, Minnesota, USA
- Digital Equipment Corporation (via the
Internet Alpha Program)
Thanks are also due to our collaborators,
Matthias G. Imhof (MIT), Paulo Tibério
M. Bulhões (Cray Research), Steve
Thomas (CERCA/Montréal), Andrzej
Pindor (University of Toronto, Canada),
William H. Purvis (DRAL/UK) and Ramiro B.
Willmersdorf (LNCC/Brazil).
This work was supported in part by the Army
High Performance Computing Research Center,
under the auspices of Army Research Office
contract number DAAL03-89-C-0038 with the
University of Minnesota.
|