
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
 ConjugateGradients, CG (Hestenes 1952),
 BiConjugateGradients, BICG (Fletcher
1976),
 ConjugateGradients squared, CGS (Sonneveld
89),
 the stabilised version of
BiConjugateGradients, 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 quasiminimal residual, QMR (highly
parallel version due to Bucker and Sauren,
1996),
 transposefree quasiminimal 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 symmetricpreconditioning; 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
kth 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
 Matrixvector (and transposematrixvector)
product;
 Preconditioning step;
 Innerproducts and vector norm.
PIM has already been
used in a variety of applications, for example,
as part of a finiteelement code for designing
gas turbines (Pratt & Whitney, Canada), the
modelling of flux in porous media (ARCO Oil &
Gas) and the modelling of geoelectromagnetic
induction in the Earth (Agarwal 1994).
Supported architectures
and environments
 networks of workstations using
messagepassing systems (PVM 3 and MPI)
 SGI Challenge
 Kendall Square Research KSR1
 Cray YMP2E/232
 Cray C9016E
 Cray T3D
 Intel Paragon XP/S
 Intel iPSC/860
 IBM 9070 SP/1
 TMC CM5
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 DAAL0389C0038 with the
University of Minnesota.
