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.4.0, a new and improved Fortran 2003 version.
Version 3.4.0 prepares for the upcoming mld2p4 version 2.1; users of mld2p4 2.0 should use version 3.3.4 below, since there are some API incompatibilities.
Version 3.3.4-3 contains fixes for muyltiple bugs exposed by mld2p4-2.0.
Version 3.3.3-1 contains a bug fix necessary for some of the preconditioners of mld2p4-2.0.
Version 3.3.3 contains bug fixes necessary for some of the preconditioners of mld2p4-2.0.
Version 3.3.2 contains some minor improvements to format conversion and usage of COO stuff. And a bug fix in 3.3.2-1.
Version 3.3.1 contains some minor bug fixes
Version 3.3.0 introduces some internal changes to better support GPU plugins. It is essentially transparent to user code, but requires recompilation.
Version 3.2.0 introduces certain changes and optimizations in the internals. It is essentially transparent to user code.
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: Extended formats and NVIDIA GPU support
We provide extended storage formats. In this context we also support computations on GPU cards from NVIDIA; all feedback welcome. 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.
This is release 3.3.4-3, the Fortran 2003 version.
The 2.4.0 version eliminates the dependency on the BLACS. The "-6" update fixes some bugs for certain invocations of collective communications.
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