This directory contains the PSBLAS library, version 2.1.0 Version 1.0 of the library was described in: S. Filippone, M. Colajanni PSBLAS: A library for parallel linear algebra computation on sparse matrices ACM Trans. on Math. Software, 26(4), Dec. 2000, pp. 527-550. PLATFORMS: The compilation process relies on the choice of an appropriate Make.inc file; we have tested with AIX XLF, Intel ifc/Linux, Lahey F95/Linux, Nag f95/Linux, GNU Fortran/Linux. If you succeed in compiling with other compiler/operating systems please let us know. LINUX: On Linux we work with the GCC compiler; note that we require version 4.2.0 (or later) as it contains support for ALLOCATABLEs (as specified in TR15581). The Lahey version we got access to (6.0 and 6.1) seems to suffer from spurious extra copies problem; this is most apparent in the matrix build process. For the Intel compilers, we recommend version 9.1; previous versions of the library have been compiled with version 7 and 8 of ifort. IBM SP. The library has been tested on an IBM SP2, SP4 and SP5, with XLC and XLF compilers, and a version of the BLACS based on MPI. The setting F90=xlf90 -qsuffix=f=f90 in Make.inc.sp5 takes care of the f90 extension. UTILITIES The test/util directory contains some utilities to convert to/from Harwell-Boeing and MatrixMarket file formats. DOCUMENTATION See userguide.pdf Please consult the sample programs, especially test/pargen/ppde90.f90. OTHER SOFTWARE CREDITS We include our modified implementation of some of the Sparker (serial sparse BLAS) material, e.g. Jagged diagonal, plus a number of extensions of our own design. The original file spblas.f can be downloaded from matisa.cc.rl.ac.uk; of course any bugs in our implementation are our own to fix. The main reference for the serial sparse BLAS is: Duff, I., Marrone, M., Radicati, G., and Vittoli, C. Level 3 basic linear algebra subprograms for sparse matrices: a user level interface ACM Trans. Math. Softw., 23(3), 379-401, 1997. In the multilevel preconditioners we use SMMP by Randolph E. Bank and Craig C. Douglas na.bank@na-net.ornl.gov and na.cdouglas@na-net.ornl.gov; we wrapped it in a Fortran 95 interface with dynamic memory allocation. To compile and run our software you will need the following prerequisites (see also SERIAL below): 1. A working version of MPI 2. The MPI version of the BLACS from http://www.netlib.org/blacs/index.html 3. A version of the BLAS; if you don't have a specific version for your platform you may try ATLAS available from http://math-atlas.sourceforge.net/ 4. We have had good results with the METIS library, from http://www-users.cs.umn.edu/~karypis/metis/metis/main.html This is not necessary to compile our library, but the test program in test/Fileread assumes you have it installed. 5. For the multilevel preconditioners we include interfaces to the following software packages: -- SuperLU 3.0 http://crd.lbl.gov/~xiaoye/SuperLU/ -- UMFPACK 4.4 http://www.cise.ufl.edu/research/sparse/umfpack/ These are optional, you only need to install them if you actually want to use them. To install, choose a Make.inc.XXX file for your compilers, modify the paths to libraries to match your installation and copy it to Make.inc. Then a make will compile the library; go to the test directory and its subdirectories to get test programs done. SERIAL: We now provide an (experimental) option to run in serial mode. This has only been tested with GCC but it should work with the others as well. In serial mode you don't need the prereqs 1 and 2 above, and you need to use the -serialmpi Make.inc. BEWARE: we only provide a VERY minimal set of fake mpi routines that is known to work with our codes; specifically, we do not handle a process doing send/receives to itself, neither do we handle user defined data types. TODO: Fix all reamining bugs. Bugs? We dont' have any ! ;-) The PSBLAS team. Contact: Salvatore Filippone salvatore.filippone@uniroma2.it Credits for version 2.0: Salvatore Filippone Alfredo Buttari The MD2P4 multilevel parallel preconditioners contained in directory src/prec were developed with the contribution of: Pasqua D'Ambra Daniela di Serafino They are still in an early experimental stage, use at your own risk! Credits for version 1.0: Salvatore Filippone Michele Colajanni Fabio Cerioni Stefano Maiolatesi Dario Pascucci