J.-M. Chesneaux
L'arithmétique Stochastique et le Logiciel CADNA
Habilitation à diriger des recherches, Université Pierre et Marie Curie, Paris, Novembre 1995.
L'arithmétique virgule flottante des ordinateurs est une approximation de l'arithmétique exacte. Cette approximation se traduit par l'existence à chaque affectation ou opération arithmétique élémentaire d'une erreur d'arrondi. En général, la propagation de ces erreurs d'arrondi entâche irrémédiablement tout résultat obtenu sur ordinateur. La validation de ces résultats est un des grands problèmes du calcul scientifique. Trop longtemps ignoré des utilisateurs, ceci est redevenu une préoccupation essentielle. Ce changement d'attitude est du en grande partie à la diversité actuelle des machines (exécuté sur plusieurs machines, un même programme fournit des résultats différents) et à l'augmentation considérable de la puissance de calcul.
Ainsi, "what every computer scientist should know about floating-point arithmetic" ne concerne plus seulement quelques spécialistes mais, fort heureusement, se répand largement dans la communauté des utilisateurs de calcul scientifique.
Il existe quatre grandes approches du problèmes des erreurs d'arrondi sur ordinateur :
Les deux premières approches sont basées sur une analyse a priori des erreurs d'arrondi alors que les deux dernières sont, plus ``informatiques'', utilisent directement l'arithmétique à précision finie de la machine pour faire une estimation ou majoration a posteriori des erreurs d'arrondi.
L'analyse régressive considère la solution informatique comme le résultat exact du même algorithme appliqué à des données perturbées. L'avantage de cette approche est de rester dans le cadre (agréable) de l'arithmétique des nombres réels. De plus cette approche permet de différencier l'erreur due au conditionnement du problème à celle due à l'instabilité de l'algorithme utilisé pour resoudre le problème en question. Cette approche a donné d'excellents résultats en algèbre linéaire. Commencée par J.H. Wilkinson, cette démarche est toujours utilisée notamment en France. Son principal inconvénient est de dépendre entièrement de l'algorithme utilisé. Il est nécessaire de faire une étude spécifique pour chaque algorithme car cette approche fait intervenir les dérivées partielles du résultat par rapport aux données et par rapport aux résultats intermédiaires. De plus, par principe, cette approche fournit un majorant de l'erreur globale et non une estimation.
L'analyse directe est moins répandue que l'analyse regressive. Cette approche consiste à décrire ``pas à pas'' la propagation des erreurs d'arrondi. A chaque étape, cette erreur est majorée. Dans certains problèmes, cette approche, parce qu'elle suit fidèlement l'algorithme de résolution, aboutit à des majorations plus fines que l'analyse regressive. Elle peut être également plus facile à mettre en oeuvre. Elle a donné de très bon résultats et fournit parfois des informations importantes concernant le lien entre le conditionnement de certaines valeurs intermédiaires et la précision des résultats définitifs. Stummel a montré, grâce à cette approche, le rapport très étroit entre la précision des pivots dans l'algorithme de Gauss et la précision de la solution.
L'approche déterministe est, comme l'approche probabiliste, une approche globale directe et conduit à une analyse dynamique des arrondis de calcul, i.e., elle ne dépend pas de l'algorithme et majore l'erreur en cours d'exécution du programme. A chaque étape, l'erreur est majorée en valeur absolue. Cette approche conduit à l'arithmétique d'intervalles de R. Moore surtout développée sur ordinateur par U. Kulisch et qui est la base du logiciel ACRITH, du PASCAL-XSC et du FORTRAN-XSC. Cette suite de majorations ponctuelles conduit à la majoration finale de l'erreur. L'intérêt principal de cette approche est de fournir un cadre mathématique algébrique solide pour l'analyse des erreurs d'arrondi. Quel que soit l'intervalle résultat d'une suite de calculs effectué en arithmétique d'intervalle, le résultat mathématique exact est toujours, par définition, dans cet intervalle. Par contre, l'étude des propriétés de l'arithmétique d'intervalle est difficile. Pour diminuer cette difficulté, la notion d'arithmétique d'intervalle dirigée a été développée par S. Markov.
Le principal inconvénient de l'arithmétique d'intervalle est de ne pas pouvoir estimer l'erreur de l'arithmétique virgule flottante. Utilisée dans ce but, l'approche déterministe conduit systématiquement à une surestimation de cette erreur parfois dans des proportions importantes. L'arithmétique d'intervalles doit être considérée comme un nouvel environnement pour le calcul scientifique indépendant de l'arithmétique virgule flottante.
Si l'arithmétique d'intervalle a permis de fournir un cadre fiable pour le calcul scientifique sur ordinateur, elle ne répond pas au problème suivant :
Un utilisateur exécute un programme quelconque sur une machine utilisant l'arithmétique virgule flottante. Quelle est l'erreur d'arrondi engendrée lors de l'exécution de son programme ?
Actuellement, seule l'approche probabiliste permet d'y répondre.
L'approche probabiliste considère chaque erreur d'arrondi comme une variable aléatoire. Cela lui permet de prendre en compte le phénomène de compensation des erreurs d'arrondi. C'est la raison fondamentale qui lui permet d'estimer l'erreur de l'arithmétique virgule flottante. Son inconvénient est de ne pouvoir donner une estimation fiable à 100% mais seulement avec une certaine probabilité. De plus, elle est très difficile à étudier du point de vue mathématique.
Tous les travaux que nous présentons reposent sur l'approche probabiliste des erreurs d'arrondi.
Dans le premier chapitre, nous rappelons les principes de la méthode CESTAC qui permet l'estimation de l'erreur d'arrondi sur tout résultat informatique. Nous exposons les conditions de validité de la méthode et nous étudions l'influence du non-respect de ces hypothèses sur le bon fonctionnement de la méthode CESTAC. Ceci nous a permis de déterminer complètement les conditions indispensables d'une bonne utilisation de la méthode.
Possédant un nouvel outil en calcul scientifique, il fallait un cadre théorique pour pouvoir étudier cet outil. C'est le but de l'arithmétique stochastique que nous présentons dans le deuxième chapitre. L'arithmétique stochastique est une modélisation de l'implémentation synchrône de la méthode CESTAC. Nous en exposons les premières définitions et propriétés. Cette étude a permis de distinguer clairement les différences de structure entre l'arithmétique exacte et l'arithmétique sur ordinateur. Nous montrons comment l'application des concepts de l'arithmétique stochastique permet d'améliorer la fiabilité de l'algorithme de Gauss ainsi que la validité des résultats.
Les travaux précédents ont permis, dès lors, de créer le premier logiciel fiable basé sur l'implémentation synchrône de la méthode CESTAC. Ce logiciel, appelé CADNA, permet en cours d'exécution d'un programme d'estimer l'erreur d'arrondi, de contrôler les débranchements, de détecter les instabilités numériques et d'effectuer ainsi un véritable débogage numérique dynamique des programmes de calculs scientifiques sur ordinateur. Nous le présentons dans le troisième chapitre. Cette présentation est accompagnée de nombreux exemples. L'utilisation de CADNA et des concepts de l'arithmétique stochastique à deux problèmes de tailles réelles, l'un mathématique (les algorithmes de type Lanczos), l'autre physique (réflection d'ondes planes sur une surfaces rugueuse) est présentée à la fin de ce chapitre .