72 alignment

pull/2/head
Soren Rasmussen 7 years ago
parent bd045d96c5
commit 01079895b3

102
README

@ -1,25 +1,20 @@
This directory contains the PSBLAS library, version 3.5. This directory contains the PSBLAS library, version 3.5.
The architecture of the Fortran 2003 sparse BLAS is described in:
The architecture of the Fortran 2003 sparse BLAS is described in S. Filippone, A. Buttari
S. Filippone, A. Buttari:
Object-Oriented Techniques for Sparse Matrix Computations in Fortran Object-Oriented Techniques for Sparse Matrix Computations in Fortran
2003, 2003, ACM Trans. on Math. Software, vol. 38, No. 4, 2012.
ACM Trans. on Math. Software, vol. 38, No. 4, 2012.
The ideas are explored further with the paper: The ideas are explored further with the paper:
V. Cardellini, S. Filippone and D. Rouson V. Cardellini, S. Filippone and D. Rouson
Design Patterns for sparse-matrix computations on Design Patterns for sparse-matrix computations on hybrid CPU/GPU
hybrid CPU/GPU platforms, platforms, Scientific Programming, 22(2014), pp.1-19.
Scientific Programming, 22(2014), pp.1-19.
Version 1.0 of the library is described in:
Version 1.0 of the library was described in:
S. Filippone, M. Colajanni S. Filippone, M. Colajanni
PSBLAS: A library for parallel linear algebra computation on sparse matrices PSBLAS: A library for parallel linear algebra computation on sparse
ACM Trans. on Math. Software, 26(4), Dec. 2000, pp. 527-550. matrices, ACM Trans. on Math. Software, 26(4), Dec. 2000, pp. 527-550.
UTILITIES UTILITIES
@ -30,23 +25,20 @@ Harwell-Boeing and MatrixMarket file formats.
DOCUMENTATION DOCUMENTATION
See docs/psblas-3.5.pdf; an HTML version of the same document is See docs/psblas-3.5.pdf; an HTML version of the same document is
available in docs/html. available in docs/html. Please consult the sample programs, especially
Please consult the sample programs, especially
test/pargen/psb_[sd]_pde[23]d.f90 test/pargen/psb_[sd]_pde[23]d.f90
OTHER SOFTWARE CREDITS OTHER SOFTWARE CREDITS
We originally included a modified implementation of some of the We originally included a modified implementation of some of the Sparker
Sparker (serial sparse BLAS) material; this has been completely (serial sparse BLAS) material; this has been completely rewritten, way
rewritten, way beyond the intention(s) and responsibilities of the beyond the intention(s) and responsibilities of the original developers.
original developers.
The main reference for the serial sparse BLAS is: The main reference for the serial sparse BLAS is:
Duff, I., Marrone, M., Radicati, G., and Vittoli, C. Duff, I., Marrone, M., Radicati, G., and Vittoli, C.
Level 3 basic linear algebra subprograms for sparse matrices: a user Level 3 basic linear algebra subprograms for sparse matrices: a user
level interface level interface, ACM Trans. Math. Softw., 23(3), 379-401, 1997.
ACM Trans. Math. Softw., 23(3), 379-401, 1997.
INSTALLING INSTALLING
@ -56,8 +48,8 @@ prerequisites (see also SERIAL below):
1. A working version of MPI 1. A working version of MPI
2. A version of the BLAS; if you don't have a specific version for 2. A version of the BLAS; if you don't have a specific version for your
your platform you may try ATLAS available from platform you may try ATLAS available from
http://math-atlas.sourceforge.net/ http://math-atlas.sourceforge.net/
3. We have had good results with the METIS library, from 3. We have had good results with the METIS library, from
@ -68,49 +60,49 @@ prerequisites (see also SERIAL below):
4. If you have the AMD package of Davis, Duff and Amestoy, you can 4. If you have the AMD package of Davis, Duff and Amestoy, you can
specify --with-amd (see ./configure --help for more details). specify --with-amd (see ./configure --help for more details).
The configure script will generate a Make.inc file suitable for The configure script will generate a Make.inc file suitable for building
building the library. the library. The script is capable of recognizing the needed libraries
The script is capable of recognizing the needed libraries with their with their default names; if they are in unusual places consider adding
default names; if they are in unusual places consider adding the paths the paths with --with-libs, or explicitly specifying the names in
with --with-libs, or explicitly specifying the names in --with-blas, etc. --with-blas, etc. Please note that a common way for the configure script
Please note that a common way for the configure script to fail is to to fail is to specify inconsistent MPI vs. plain compilers, either
specify inconsistent MPI vs. plain compilers, either directly or directly or indirectly via environment variables; e.g. specifying the
indirectly via environment variables; e.g. specifying the Intel Intel compiler with FC=ifort while at the same time having an
compiler with FC=ifort while at the same time having an MPIFC=mpif90 MPIFC=mpif90 which points to GNU Fortran. The best way to avoid this
which points to GNU Fortran. situation is (in our opinion) to use the environment modules package
The best way to avoid this situation is (in our opinion) to use the (see http://modules.sourceforge.net/), and load the relevant
environment modules package (see http://modules.sourceforge.net/), and variables with (e.g.)
load the relevant variables with (e.g.)
module load gnu46 openmpi module load gnu46 openmpi
This will delegate to the modules setup to make sure that the version
of openmpi in use is the one compiled with the gnu46 compilers. This will delegate to the modules setup to make sure that the version of
After the configure script has completed you can always tweak the openmpi in use is the one compiled with the gnu46 compilers. After the
Make.inc file yourself. configure script has completed you can always tweak the Make.inc file
yourself.
After you have Make.inc fixed, run After you have Make.inc fixed, run
make make
to compile the library; go to the test directory and its
subdirectories to get test programs done. to compile the library; go to the test directory and its subdirectories
If you specify --prefix=/path you can do make install and the to get test programs done. If you specify --prefix=/path you can do make
libraries will be installed under /path/lib, while the module files install and the libraries will be installed under /path/lib, while the
will be installed under /path/include. module files will be installed under /path/include.
SERIAL SERIAL
Configuring with --enable-serial will provide a fake MPI stub library Configuring with --enable-serial will provide a fake MPI stub library
that enables running in pure serial mode; no MPI installation is that enables running in pure serial mode; no MPI installation is needed
needed in this case (but note that the fake MPI stubs are only in this case (but note that the fake MPI stubs are only guaranteed to
guaranteed to cover what we use internally, it's not a complete cover what we use internally, it's not a complete replacement).
replacement).
LONG INTEGERS LONG INTEGERS
We have an experimental flag --enable-long-integers that will enable having We have an experimental flag --enable-long-integers that will enable
8-byte integer data, allowing an index space larger than 2G; some having 8-byte integer data, allowing an index space larger than 2G; some
small cases have been tested but we do not offer full guarantee (yet). small cases have been tested but we do not offer full guarantee (yet).
TODO: TODO:
Fix all reamining bugs. Bugs? We dont' have any ! ;-) Fix all reamining bugs. Bugs? We dont' have any ! ;-)
@ -119,9 +111,9 @@ The PSBLAS team.
RELATED SOFTWARE RELATED SOFTWARE
If you are looking for more sophisticated preconditioners, you may be If you are looking for more sophisticated preconditioners, you may be
interested in the package MLD2P4 from http://github.com/sfilippone/mld2p4-2 interested in the package MLD2P4 from
http://github.com/sfilippone/mld2p4-2
Contact: https://github.com/sfilippone/psblas3 Contact: https://github.com/sfilippone/psblas3

Loading…
Cancel
Save