Étude et optimisation du comportement mémoire dans les méthodes parallèles de factorisation de matrices creuses
Institution:
École normale supérieure (Lyon ; 1987-2009)Disciplines:
Directors:
Abstract EN:
Direct methods for solving sparse linear systems are known for their large memory requirements that can represent the limiting factor to solve large systems. The work done during this thesis concerns the study and the optimization of the memory behaviour of a sparse direct method, the multifrontal method, for both the sequential and the parallel cases. Thus, optimal memory minimization algorithms have been proposed for the sequential case. Concerning the parallel case, we have introduced new scheduling strategies aiming at improving the memory behaviour of the method. After that, we extended these approaches to have a good performance while keeping a good memory behaviour. In addition, in the case where the data to be treated cannot fit into memory, out-of-core factorization schemes have to be designed. To be efficient, such approaches require to overlap I/O operations with computations and to reuse the data sets already in memory to reduce the amount of I/O operations. Therefore, another part of the work presented in this thesis concerns the design and the study of implicit out-of-core techniques well-adapted to the memory access pattern of the multifrontal method. These techniques are based on a modification of the standard paging policies of the operating system using a low-level tool (MMUM&MMUSSEL).
Abstract FR:
Les méthodes directes de résolution de systèmes linéaires creux sont connues pour leurs besoins mémoire importants qui peuvent constituer une barrière au traitement de problèmes de grandes taille. De ce fait, les travaux effectués durant cette thèse ont porté d'une part sur l'étude du comportement mémoire d'un algorithme de factorisation de matrices creuses, en l'occurrence la méthode multifrontale, et d'autre part sur l'optimisation et la minimisation de la mémoire nécessaire au bon déroulement de la factorisation aussi bien dans un cadre séquentiel que parallèle. Ainsi, des algorithmes optimaux pour la minimisation de la mémoire ont été proposés pour le cas séquentiel. Pour le cas parallèle, nous avons introduit dans un premier temps des stratégies d'ordonnancement visant une amélioration du comportement mémoire de la méthode. Puis, nous les avons étendues pour avoir un objectif de performance tout en gardant un bon comportement mémoire. Enfin, dans le cas où l'ensemble des données à traiter a encore une taille plus importante que celle de la mémoire, il est nécessaire de concevoir des approches de factorisation out-of-core. Pour être efficaces, ces méthodes nécessitent d'une part de recouvrir les opérations d'entrées/sorties par des calculs, et d'autre part de réutiliser des données déjà présentes en mémoire pour réduire le volume d'entrées/sorties. Ainsi, une partie des travaux présentés dans cette thèse ont porté sur la conception de techniques out-of-core implicites adaptées au schéma des accès de la méthode multifrontale et reposant sur une modification de la politique de pagination du système d'exploitation à l'aide d'un outil bas-niveau (MMUM&MMUSSEL).