Write 80% of your source code with yourself and your fellow programmers in mind, that is, to make your life easier, not your computer's life easier. The CPU will never read your source code without an interpreter or compiler anyway. D. Rouson, J. Xia, X. Xu - Scientific Software Design |
Sparse linear algebra is essential for a wide variety of scientific applications.
The availability of massively parallel sparse solvers and preconditioners lies at
the core of pretty much all multi-physics and multi-scale simulations.
Technology is nowadays expanding to target exascale platforms. With this work,
we then try to face these challenges by developing both algorithmic and theoretical
strategies to make Exascale Computing possible.
I am a collaborator on the PSCTOOLKIT, and I work on the development of the two
main packages PSBLAS and AMG4PSBLAS. These are Fortran 2003 libraries capable of
running sparse linear algebra, Krylov methods, and several type of preconditioners
on machines with tens of thousand of cores. All information is available on psctoolkit.github.io. |
Most of my works contain numerical tests of some kind. For some of them, for which the code / implementation is not completely transparent, I made the code available on my GitHub repository.
This is probably the biggest new programming project I'm working on. The aim of this library is the computation of matrix-function vector products $$ \mathbf{y} = f(A)\mathbf{x}, \qquad A \in \mathbb{R}^{N \times N}, \; \mathbf{x},\mathbf{y} \in \mathbb{R}^{N}, $$ for large and sparse matrix in a distributed setting. The library is based on PSBLAS and AMG4PSBLAS and exploits their architecture to manage the use of sparse linear algebra in a distributed environment and the solution of auxiliary linear systems necessary for the calculation of the matrix function.
Collaborators on this project are more than welcome!