In the context of solving Maxwell's equations on 3D surface meshes, it is necessary to use algebraic solvers that are costly in time and memory. To reduce these costs, an improvement has been to compress the manipulated matrices, using hierarchical matrices. The use of this type of matrix allows to drastically reduce the necessary resources, but induces an important imbalance in the load of the different processes involved in the calculation. This imbalance can limit the scaling of simulation codes using a large number of computational nodes. In this thesis, we are interested in reducing this imbalance, using static and dynamic rebalancing methods. The static rebalancing methods allowed us to change the distribution of the different blocks of the matrix among the processes involved in the calculation. For this we used the notion of virtual processes, which allowed us to redistribute the hierarchical matrices among the different processes. We have also developed models that can predict the execution time of the different parts of the computation, as well as its total execution time.
We then studied the feasibility of different dynamic rebalancing methods, again in the context of hierarchical matrices. We have analyzed several different techniques, allowing us to highlight the limits of several of them in the context of general-purpose task systems. We have also highlighted several implementation difficulties of these methods, and we have proposed several possibilities to solve them.
The first main contribution of this thesis is a method of static redistribution of the blocks of a hierarchical matrix allowing a gain of 15% in the duration of the factorization of this type of matrices. The second main contribution of this thesis is a suite of algorithms allowing to perform task stealing in distributed memory on the assembly step of hierarchical matrices, which allows a rebalancing of this part, allowing to save up to 50% of execution time in the most extreme cases. These algorithms also allow to perform a task stealing on a general-purpose runtime, respecting the dependencies between the different parts of the calculations.

Français
Salle Ada Lovelace (Inria)