Résoudre des systèmes linéaires denses sur des architectures composées de processeurs multicœurs et d’accélerateurs
Auteur / Autrice : | Adrien Rémy |
Direction : | Marc Baboulin |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 08/07/2015 |
Etablissement(s) : | Paris 11 |
Ecole(s) doctorale(s) : | Ecole doctorale Informatique de Paris-Sud |
Partenaire(s) de recherche : | Laboratoire : Laboratoire de recherche en informatique (Orsay, Essonne ; 1998-2020) |
Jury : | Président / Présidente : Nicolas Thiéry |
Examinateurs / Examinatrices : Marc Baboulin, Nicolas Thiéry, Paulo Beleza de Vasconcelos, Stef Graillat, Philippe Langlois | |
Rapporteurs / Rapporteuses : Paulo Beleza de Vasconcelos, Stef Graillat |
Mots clés
Mots clés contrôlés
Résumé
Dans cette thèse de doctorat, nous étudions des algorithmes et des implémentations pour accélérer la résolution de systèmes linéaires denses en utilisant des architectures composées de processeurs multicœurs et d'accélérateurs. Nous nous concentrons sur des méthodes basées sur la factorisation LU. Le développement de notre code s'est fait dans le contexte de la bibliothèque MAGMA. Tout d'abord nous étudions différents solveurs CPU/GPU hybrides basés sur la factorisation LU. Ceux-ci visent à réduire le surcoût de communication dû au pivotage. Le premier est basé sur une stratégie de pivotage dite "communication avoiding" (CALU) alors que le deuxième utilise un préconditionnement aléatoire du système original pour éviter de pivoter (RBT). Nous montrons que ces deux méthodes surpassent le solveur utilisant la factorisation LU avec pivotage partiel quand elles sont utilisées sur des architectures hybrides multicœurs/GPUs. Ensuite nous développons des solveurs utilisant des techniques de randomisation appliquées sur des architectures hybrides utilisant des GPU Nvidia ou des coprocesseurs Intel Xeon Phi. Avec cette méthode, nous pouvons éviter l'important surcoût du pivotage tout en restant stable numériquement dans la plupart des cas. L'architecture hautement parallèle de ces accélérateurs nous permet d'effectuer la randomisation de notre système linéaire à un coût de calcul très faible par rapport à la durée de la factorisation. Finalement, nous étudions l'impact d'accès mémoire non uniformes (NUMA) sur la résolution de systèmes linéaires denses en utilisant un algorithme de factorisation LU. En particulier, nous illustrons comment un placement approprié des processus légers et des données sur une architecture NUMA peut améliorer les performances pour la factorisation du panel et accélérer de manière conséquente la factorisation LU globale. Nous montrons comment ces placements peuvent améliorer les performances quand ils sont appliqués à des solveurs hybrides multicœurs/GPU.