Optimisation de la précision numérique des codes parallèles
Auteur / Autrice : | Farah Benmouhoub |
Direction : | Matthieu Martel, Pierre-Loïc Garoche |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 17/06/2022 |
Etablissement(s) : | Perpignan |
Ecole(s) doctorale(s) : | École doctorale Énergie environnement (Perpignan ; 1999-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire de Modélisation pluridisciplinaire et simulations (Perpignan) |
Jury : | Président / Présidente : Philippe Langlois |
Examinateurs / Examinatrices : Philippe Langlois, Fabienne Jézéquel, Yassamine Seladji, Nicolas Louvet | |
Rapporteurs / Rapporteuses : Fabienne Jézéquel, Yassamine Seladji |
Résumé
Les nombres flottants sont utilisés à la place des nombres réels pour les calculs sur ordinateurs. L'utilisation de ces nombres introduit des erreurs d'arrondi qui sont en général acceptables dans la mesure où le résultat produit par la machine est proche de celui que l'on aurait obtenu en utilisant des nombres réels. Cependant, elles peuvent aussi être amplifiées par propagation, dénuant de sens le résultat d'un calcul, ce qui peut avoir des conséquences catastrophiques dans de nombreux domaines d'application comme par exemple l'aéronautique ou la finance. La précision des calculs en nombres flottants dépend de nombreux facteurs: types d'opérations effectuées, valeurs et types de données employés, ordinateurs utilisés. En outre, la précision des calculs dépend fortement de l'ordre dans lequel sont effectuées les opérations et le parallélisme démultiplie les ordonnancements possibles. Le sujet de thèse proposé concerne ce dernier point : améliorer la précision de codes de calcul scientifique massivement parallèles tels que ce que l'on trouve dans le domaine du HPC (High Performance Computing) Ces dernières années, des techniques automatiques ont été mises au point afin de valider et réécrire les codes de calcul scientifique afin de les rendre plus précis. Ces techniques rencontrent un vif intérêt tant scientifique qu'industriel. Cependant les techniques existantes acceptent uniquement des programmes séquentiels ce qui exclut les nombreux codes de calcul intensif développés dans le domaine du HPC. Or ces codes parallèles, utilisés pour réaliser des simulations numériques complexes dans de nombreux domaines scientifiques et techniques, sont particulièrement sujets aux erreurs introduites par les nombres flottants car le parallélisme modifie l'ordre dans lequel sont effectués les calculs, voire rend cet ordre aléatoire. Les résultats obtenus peuvent alors être altérés ou non reproductibles (plusieurs si mulations identiques donnant des résultats différents).