This manual describes the main features of PSBLAS, a library for parallel sparse computations that has been developed over a number of years.
Our work has been mainly devoted to providing a foundational toolkit on which many algorithms can be implemented; the toolkit has proven its effectiveness and flexibility in many ways. The PSBLAS component deals mostly with the computational kernels and environment handling; it supports computations on normal CPUs, including the usage of OpenMP for parallellizing across multiple cores.
This foundational package provides linear solvers and some very simple preconditioners; the companion package AMG4PSBLAS explores how to use the base toolkit to build much more sophisticated preconditioners which can be plugged seamlessly into the base solvers.
The software architecture allows us to offer support for many alternatives in the implementation, including usage of heterogeneous platforms, and computations performed on GPUs throuh CUDA. There is also support for GPU computations through OpenACC, but it is at this time a highly experimental version; we plan to also look at using accelerators through OpenMP as support from compilers improves.
The project is lead by Salvatore Filippone; a number of people have been
contributing to this package over the years; contributors in roughly reverse
chronological order:
Luca Pepè Sciarria
Theophane Loloum
Dimitri Walther
Andea Di Iorio
Stefano Petrilli
Soren Rasmussen
Zaak Beekman
Ambra Abdullahi Hassan
Pasqua D’Ambra
Daniela di Serafino
Michele Martone
Michele Colajanni
Fabio Cerioni
Stefano Maiolatesi
Dario Pascucci
Salvatore Filippone
Alfredo Buttari
Fabio Durastante