3.1 Prerequisites
The following base libraries are needed:

BLAS
 [17, 18, 25] Many vendors provide optimized versions of BLAS; if no
vendor version is available for a given platform, the ATLAS software
(mathatlas.sourceforge .net) may be employed. The reference BLAS from
Netlib (www.netlib.org/blas) are meant to define the standard behaviour of
the BLAS interface, so they are not optimized for any particular platform,
and should only be used as a last resort. Note that BLAS computations form
a relatively small part of the AMG4PSBLAS/PSBLAS; however they are
critical when using preconditioners based on the MUMPS, UMFPACK or
SuperLU third party libraries. UMFPACK requires a full LAPACK library;
our experience is that configuring ATLAS for building full LAPACK does
not always work in the expected way. Our advice is first to download the
LAPACK tarfile from www.netlib.org/lapack and install it independently of
ATLAS. In this case, you need to modify the OPTS and NOOPT definitions
for including fPIC compilation option in the make.inc file of the LAPACK
library.

MPI
 [24, 30] A version of MPI is available on most highperformance computing
systems.

PSBLAS
 [20, 22] Parallel Sparse BLAS (PSBLAS) is available from
psctoolkit.github.io/ products/psblas/; version 3.7.0 (or later) is required.
Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.
Please note that the four previous libraries must have Fortran interfaces compatible with
AMG4PSBLAS; usually this means that they should all be built with the same
compiler being used for AMG4PSBLAS.
If you want to use the PSBLAS support for NVIDIA GPUs, you will also
need:

PSBLASEXT
 Parallel Sparse BLAS (PSBLAS) Extensions, available from
psctoolkit.github.io/products/psblasext/; version 1.3.0 (or later).

SPGPU
 Sparse CUDA kernels for NVIDIA GPUs; available from GitHub, see
also psctoolkit.github.io/products/psblasext/.
See also Sec 4.2.