The goal of the internship will be to implement and validate new functionalities in the parallel sparse direct solver PaStiX.
Significant progress has been made in developing parallel sparse direct solvers over the past few years. These solvers can now efficiently solve real-life, three-dimensional problems involving several million equations. The ongoing evolution of hardware involves an increasing number and heterogeneity of computing resources.
PaStiX is a parallel sparse direct solver based on a dynamic scheduler designed for modern hierarchical architectures. It was developed by the Inria TOPAL team. The library was completely rewritten to better integrate support for runtime systems, modern heterogeneous architectures, and low-rank compression formats.
The goal of the internship is to investigate two major improvements to the solver.
Thanks to the StarPU runtime system, PaStiX can now relax the synchronizations between its factorization and solve steps. It can also handle some scenarios using multiple instances of the solver more efficiently, especially when the matrices’ patterns are identical. Second, thanks to new functionalities within Scotch, the default graph partitioning tool used in PaStiX, it is possible to handle a Schur complement more efficiently by carrying specific unknowns that must be reordered separately in the sparse matrix. This improves numerical stability by isolating zeros on the diagonal entries.
The results may be validated with a publication in a conference.
sparse direct solver, graph partitioning