4.1.3.1 : Arithmétique stochastique

Pour aller au-delà de ces approches d'autodéfense et de validation par stabilité, on peut recourir à des environnements plus récents d'évaluation de la précision numérique. Ces environnements d'exécution induisent de petites perturbations à chaque étape de calcul et permettent ainsi de mesurer la fluctuation du résultat. On parle d'arithmétique stochastique. Cette technique s'apparente à du Monte-Carlo. La perturbation induite dans le calcul peut se présenter sous la forme d'un changement aléatoire de mode d'arrondi des résultats. Ces environnements sont CADNAnotehttp://cadna.lip6.fr/, Verificarlonotehttps://github.com/verificarlo/verificarlo et verrounotehttp://edf-hpc.github.io/verrou/vr-manual.html qui peut être utilisé avec valgrind [60]Valgrind

verrou permet, outre son mode stochastique, de forcer tous les arrondis du calcul dans une direction non conventionnelle au lieu de l'arrondi au plus proche : vers $-\infty$ , vers $+\infty$ , vers $0$ , et même de tester l'arrondi au plus loin, un bon moyen de se faire une idée de la résilience de son code numérique. Ces programmes permettent une instrumentation du code qui révèle des fragilités numériques à l'exécution. Leur mise en œuvre a un impact sur les performances du code, et doit être prise en compte dans le budget temps des tests et de l'optimisation.