The goal of the internship will be to evaluate the usage of the hierarchical tasks programing model from the StarPU runtime system within the 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. A main issue when using task-based runtime systems and sparse direct solvers is managing task granularity. The varying sizes of sparse solvers induce heterogeneity in computations and potentially large task submission overhead.
Over the last three years, a new paradigm model has been developed in the StarPU runtime system. This model proposes submitting tasks hierarchically, which allows developers and/or runtime systems to split tasks into smaller ones or keep them as large tasks. This model also enables finer management of the number of tasks submitted to the system by delaying subgraph submission when necessary.
The goal of the internship is to investigate how hierarchical task submission can be used in the PaStiX solver to reduce task submission overhead and improve task granularity dynamically based on problem size and targeted architecture.
As a first step, the optimization parameters for GPU acceleration must be updated. This could involve creating benchmarks on the Plafrim platform.
The intern will need to collaborate with two teams: TOPAL, which develops PaStiX, and STORM, which develops StarPU, in order to reach the internship objectives. The results may be validated with a publication in a conference.
sparse direct solver, task-based runtime system