Grand challenges and most of the actual applications that do require a parallel solution are characterized by an irregular and sparse domain of computation. The complexity of their implementation on parallel machines is one of the main reasons of the still limited diffusion of these architectures. Parallel Sparse BLAS (PSBLAS) is a library of Basic Linear Algebra Subroutines for parallel sparse applications that facilitates the porting of complex computations on multicomputers. The project has been prompted by the appearance of a proposal for serial sparse BLAS that are flexible and powerful enough to be used as the building blocks of more complex applications, especially on parallel machines. The PSBLAS library includes routines for multiplying sparse matrices by dense matrices, solving sparse triangular systems, preprocessing sparse matrices and additional routines for dense matrix operations. The PSBLAS interface aims at the maximal flexibility with respect to the data distribution strategy. PSBLAS supports totally arbitrary data distributions under the control of the user. Moreover, it has also some predefined distributions that are popular choices for ScaLAPACK and HPF users. The current version of the PSBLAS library is implemented in Fortran 2003. The object-oriented features of the language enable a very convenient level of abstraction for the target applications of PSBLAS. The library can take care of runtime memory requirements that can be quite difficult or even impossible to predict at implementation or compilation time. Sparse iterative solvers are employed in many software systems covering a broad area of applications, such as the simulation of internal combustion engines, oil reservoirs, semiconductor devices, structural analysis, electromagnetic scattering. Users interested in complex simulations requiring a very large number of degrees of freedom should find PSBLAS quite attractive. Our own experience has been mainly in applying the PSBLAS solvers to computational fluid dynamics applications. As a typical case, a complete simulation of an automobile engine can easily scale up to a few millions of variables.
One of the main design and implementation goals was to provide a flexible framework and library that could easily sustain further developments.
This is release 3.1.2-1, the Fortran 2003 version.
Version 3.1.2 contains some changes to the installation procedures, but nothing that should require rewriting user code.
Version 3.1.1 contains some performance improvements, and (again, sorry) some method changes that do not require rewriting user code, but do require recompilation.
With version 3.1 we have made a few internal changes that are transparent to the end user, but require recompilation of any application program.
The PSBLAS library has been tested on many Linux clusters with a variety of compilers, and on the IBM SP with XLC and XLF compilers; see the README file for further details. Our reference compiler is currently GNU Fortran compiler 4.7.
The sister package MLD2P4 is also moving towards its 2.0 release; experimental versions at the MLD2P4 web site.
Users of MLD2P4 1.2.1 can use either version 2.4.0 or 2.3.4; when upgrading from 2.3 to 2.4 they should do a make clean in the main MLD directory and rerun the configure script.
Users of MLD2P4 1.2 will need to apply the following patch: mld2p4-1.2-p1.tgz; do a make clean in the main MLD source directory, unpack there this file, reconfigure to point to the new version of PSBLAS, and recompile. No changes are needed in application source code.
The tar files do not include the BLAS and METIS libraries, which can be obtained from their respective URLs. For the BLAS, if you do not have a vendor version, consider using ATLAS
New: NVIDIA GPU support
We now support computations on GPU cards from NVIDIA. This is the first beta release; please send us feedback. Prerequisites include SPGPU. Contributors include Davide Barbieri and Valeria Cardellini.
Support for the development of the GPU-enabled version has been provided by CASPUR, now CINECA.
New: Approximate Inverse preconditioners
This is a highly experimental plugin for the MLD2P4-2 software, providing support for approximate inverse preconditioners; please send us feedback. See inside for prerequisites.
The 2.4.0 version eliminates the dependency on the BLACS. The "-4" update fixes some minor bugs (build problems and a bug only surfacing with certain runtime check options).
The 2.3.4 version and subsequent contains the support routines for MLD2P4 1.1.
The 2.3 version contains the support routines for MLD2P4 1.0.
PSBLAS 3.0 Team
PSBLAS 2.0 Team
PSBLAS 1.0 Team