Description
Date depot: 1 janvier 1900
Titre: Etude de la propagation des erreurs d'arrondi induit par resolution haute performance de systemes lineaires creux
Directeur de thèse:
Jean-Marie CHESNEAUX (LIP6)
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Non defini
Resumé:
Le résultat d’un code de simulation numérique subit plusieurs approximations effectuées lors de la modélisation mathématique du problème physique, de la discrétisation du modèle mathématique et de la résolution numérique en arithmétique flottante. Les deux premières approximations sont bien connues et maîtrisées par l’ingénieur numéricien. Malheureusement, on ne peut pas effectuer de calcul numérique flottant sans risque de produire des résultats erronés. La fiabilité d’un code (c’est-à-dire sa capacité à produire des résultats justes malgré les erreurs d’arrondi) est primordiale pour des codes industriels tels que ceux développés à EDF R&D. Ceci est encore plus important sur des architectures massivement parallèles où des trillons d’opérations arithmétiques flottantes sont exécutées chaque seconde. La fiabilité numérique est généralement validée empiriquement par comparaison avec des valeurs de référence (solution analytique, benchmarks, comparaison avec un autre code, etc.). Toutefois, l’analyse et la compréhension des effets de la propagation des erreurs d’arrondi permet d’estimer plus précisément la qualité numérique des résultats d’un calcul à arithmétique flottante. Plusieurs méthodes et outils de validation ont été développés ces dernières années pour étudier la propagation d’erreurs d’arrondi. Citons à titre d’exemple l’analyse directe, l’analyse inverse, les méthodes basées sur la différentiation automatique, l’arithmétique d’intervalle et des outils tels que PRECISE (Precision Estimation and Control In Scientific and Engineering computing) et l’approche probabiliste implémentée dans la bibliothèque CADNA.
Un travail précédent sur un code de physique atomique a permis de montrer que la bibliothèque CADNA semble la plus adaptée pour permettre l’étude de la propagation dans un code industriel. En effet, cette bibliothèque est capable de diagnostiquer la localisation des pertes de précision, d’étudier la précision des résultats intermédiaires et finaux. La bibliothèque CADNA est assez simple à implémenter sur un code séquentiel écrit dans un seul langage (F90, C et C++). Plus récemment, une étude préliminaire à été effectuée sur le schéma de communication de TELEMAC3D. La version parallèle de TELEMAC3D est basée sur une méthode de décomposition de domaine. Il est donc nécessaire après chaque phase indépendante de calcul de regrouper les valeurs des variables situées à l’interface des sous-domaines. Malheureusement, la somme des contributions des sous-domaines sur les variables interfaces est entachée d’erreurs d’arrondi qui peut amener à des valeurs différentes pour une même variable interface partagée par plusieurs sous-domaines. L’intérêt de CADNA est de quantifier l’impact des erreurs d’arrondi pour ensuite proposer des améliorations algorithmiques. Notons aussi qu’un outil de validation numérique peut être utile pour déterminer si certaines parties d’un code numérique peuvent être traitées en simple précision sans compromettre la qualité numérique des résultats finaux. On peut ainsi réduire sensiblement la mémoire requise par un code sans altérer ses résultats numériques.
La bibliothèque actuelle CADNA est séquentielle et n’a pas été jusqu’à présent implémentée efficacement sur les bibliothèques standards de calcul (BLAS, LAPACK) et de communication (BLACS, MPI). Cette limitation ne permet pas d’utiliser efficacement CADNA dans des codes industriels utilisant ces bibliothèques tel que le code de mécanique des structures Code_Aster développé par EDF R&D. A titre d’exemple, l’implémentation directe de CADNA dans les BLAS ruine les performances en raison du problème de perte de localisation des données. Le but de la thèse est donc de lever ce verrou technologique et scientifique en écrivant des routines des bibliothèques BLAS, MPI, BLACS et LAPACK utilisant CADNA.
Le travail générique d’écriture des bibliothèques peut être utilisé dans un nombre important de codes. Dans le cadre de la thèse, ces bibliothèques développées seront validées et testées dans certaines fonctionnalités de Code_Aster nécessitant la résolution de systèmes linéaires creux. En effet, dans un souci de performance, Code_Aster utilise des logiciels externes de résolution de systèmes linéaires creux utilisant BLAS, MPI, BLACS et LAPACK. Ensuite, des expérimentations permettront de comparer différentes approches de pivotage (par exemple par l’intermédiaire de MUMPS ou de PASTIX) pour réduire les erreurs numériques lors de la résolution directe. Des nouvelles stratégies seront testées pour améliorer les résultats obtenus.
Les travaux menés durant cette thèse devront répondre à deux exigences : la qualité du développement logiciel et un apport scientifique dans le domaine de la validation numérique. A ce titre, les différentes étapes de la thèse seront jalonnées par des phases de restitution industrielle des développements informatiques et par la diffusion des résultats scientifiques (groupe
Doctorant.e: Montan Sethy