You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Salvatore Filippone 9f3f145928 Renaming: moved PSB_DESCPRT into PSB_CDPRT. 19 years ago
docs Insertion routines no longer take a sparse matrix block. 19 years ago
src Renaming: moved PSB_DESCPRT into PSB_CDPRT. 19 years ago
test *** empty log message *** 19 years ago
Changelog Initial revision 19 years ago
LICENSE Updated references to other software packacges. 19 years ago
Make.inc Take out internal development notes. 19 years ago
Make.inc.g95 Initial revision 19 years ago
Make.inc.gfortran *** empty log message *** 19 years ago
Make.inc.ifc8 Added ifdefs for 64-bit addresses. 19 years ago
Make.inc.ifc71 Added ifdefs for 64-bit addresses. 19 years ago
Make.inc.lahey Initial revision 19 years ago
Make.inc.nagf95 Initial revision 19 years ago
Make.inc.pgf90 Initial revision 19 years ago
Make.inc.rs6k Initial revision 19 years ago
Make.inc.vast Initial revision 19 years ago
Makefile *** empty log message *** 19 years ago
README Updated references to other software packacges. 19 years ago
todo Initial revision 19 years ago

README

This directory contains  the PSBLAS library, version 2.0.
The version 1.0 of the library is 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: 

For the F77 compiler, we assume it supports DOUBLE COMPLEX and DO WHILE/ENDDO.
Practically all compilers do nowadays.  
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. 

IBM SP2.
The library has been tested on an IBM SP2 with XLC and XLF
compilers, and a version of the BLACS based on MPI.
The rather baroque setting 
 F90=xlf90 -qsuffix=f=f90
in Make.inc.rs6k takes care of the f90 extension. 
WARNING: xlf 8.1 introduced a performance bug, whereas a Fortan 90
code calling a  Fortan 77 code would incur spurious array copies;
please make sure your system has the PTF xlf 8102 installed. 


LINUX:

There finally exist a GNU Fortran 95 implementation: we are using the
development snapshots from GCC 3.5.0, later 4.1 and 4.2  since July
2004, and it appears  to work. The 4.2 version of GNU compilers is now
our reference platform. 


Vast F90/Linux is  now obsolete, in that we have a NULL()
initialization for pointers that is outside strict F90. 
For the PGI compilers, we used them in conjunction with gcc, NOT
pgcc. Note that with pgi 3.6 we have horrible performance, due to
spurious array copies when calling Fortran 77 codes from Fortran 90;
this is fixed in version 4 and later. 

The Lahey version we got access to (6.0 and 6.1) seems to suffer from
the same extra copies problem; this is most apparent in the matrix
build process.  

For the Intel compilers, we used ifc versions  7, 8 and 9; with version 6.0 
you need to change the way modules are handled, but we recommend to migrate
to the new version anyway. Moreover, with versions prior to 7.1, there
is a strange error in pargen/ppde90: the compiler did not like the
INTERFACE for the dummy argument subroutine PARTS, it wanted an
EXTERNAL specification. Again, please move to 7.1.


Testing of  NAG f95 versions is still incomplete.  



DOCUMENTATION

See userguidef90.ps. 
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 

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 our 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 



The PSBLAS team. 


Contact: Salvatore Filippone     salvatore.filippone@uniroma2.it

Credits for version 2.0:
Salvatore  Filippone
Alfredo    Buttari

The MPcube preconditioners were developed with the contribution of:
Pasqua     D'Ambra
Daniela    Di Serafino

Credits for version 1.0:
Salvatore  Filippone
Michele    Colajanni
Fabio      Cerioni
Stefano    Maiolatesi
Dario      Pascucci