Current projects

MUMPS. These days I am working at the MUltifrontal Massively Parallel sparse direct Solver (MUMPS) project. The MUMPS package implements a multifrontal (direct) solver for sparse linear systems. It is an SPMD parallel code based on MPI. Although they are very robust and reliable, direct solvers for sparse systems pose challenging problems in terms of both performance and memory consumption which is almost like saying "there's a lot we can still do to improve"...

PSBLAS. I am still somewhat collaborating to the Parallel Sparse BLAS (PSBLAS) project. The PSBLAS software implements basic kernels for sparse computations as well as a bunch of iterative methods (CG, GMRES, BiCG,...) and preconditioners (Block-Jacobi, Additive-Schwarz, Multilevel,...) for the solution of sparse linear systems. It is an SPMD parallel code based on MPI and it is written in Fortran95 (and Fortran77 for the lower level, sequential computations).



Past projects

PLASMA. The main motivation for the Parallel Linear Algebra for Scalable Multicore Architectures project is to create a new generation of dense linear algebra libraries that achieve the fastest possible time to an accurate solution on multicore systems. Specifically, PLASMA aims at outperforming the LAPACK and ScaLAPACK libraries on distributed and shared memory platforms based on the top of the line multicore processors. Based on this objective, prototypes have been developed for common linear algebra operations such as the LU, Cholesky and QR factorizations. These prototypes present innovative features from the algorithmic point of view since they are based on the implementation of fine granularity "tiled" algorithms where the whole operation is decomposed in a sequence of tasks that operate on small portions of data. Because the fine granularity allows to achieve a high degree of parallelism, a very flexible execution model must be used; this flexibility is achieved by using a fully dynamic, graph-driven scheduling of the tasks which is implemented by means of the POSIX threads API. The resulting approach has proved to be extremely efficient and to deliver higher performance even than several commercial implementations of the same operations.

LAPACK/ScaLAPACK The Linear Algebra PACKage (LAPACK) and Scalable Linear Algebra PACKage (ScaLAPACK) software libraries represent the standard for dense linear algebra computations on sequential and computing environments respectively. Despite being "aged", they are both continuously updated with novel numerical methods, performance improvements, features and bug fixes.