Les codes de calcul reposent sur l’arithmétique à virgule flottante pour représenter des nombres réels et les opérations qui leur sont appliquées. Or les réels ne peuvent en général pas être représentés de manière exacte par des nombres flottants. La précision finie de l’arithmétique à virgule flottante conduit à des erreurs d’arrondi qui peuvent s’accumuler. Avec l’augmentation de la puissance de calcul, la complexification des algorithmes et le couplage d’applications, il est crucial de pouvoir quantifier la robustesse d’une application ou d’un algorithme.
Les outils CADNA [1], Verificarlo [2] et Verrou [3] permettent d’estimer la propagation d’erreurs d’arrondi et de mesurer la qualité numérique des résultats. L’objectif de ce travail est d’utiliser ces trois outils dans les applications GYSELA [4,5] (utilisée dans le domaine de la fusion pour caractériser la dynamique des turbulences dans le plasma des Tokamaks) et PATMOS [6] (mini-application représentative d’un code de transport neutronique Monte Carlo) afin d’analyser la robustesse numérique de ces applications ou de certains de leurs algorithmes. Outre l’analyse de la qualité numérique des résultats, ces outils seront aussi utilisés afin d’évaluer s’il est possible de dégrader la précision (simple ou demi-précision au lieu de double) pour certains algorithmes permettant des gains sur l’empreinte mémoire et/ou les performances (vectorisation, taille des communications). Au-delà des enseignements sur les deux codes analysés, un second objectif est la mise en place d’une méthodologie qui pourrait s’appliquer à d’autres codes de calcul tirant parti des complémentarités de ces trois outils.