* * Parallel Sparse BLAS v2.0 * (C) Copyright 2006 Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions, and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the PSBLAS group or the names of its contributors may * not be used to endorse or promote products derived from this * software without specific written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * 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. We have had good results with the METIS library, which can be obtained from http://www-users.cs.umn.edu/~karypis/metis/metis/main.html We include interfaces to: -- SuperLU 3.0 http://crd.lbl.gov/~xiaoye/SuperLU/ -- UMFPACK 4.4 http://www.cise.ufl.edu/research/sparse/umfpack/ The PSBLAS team. Credits for version 2.0: Salvatore Filippone Alfredo Buttari Pasqua D'Ambra Daniela Di Serafino Credits for version 1.0: Salvatore Filippone Michele Colajanni Fabio Cerioni Stefano Maiolatesi Dario Pascucci