Gestion du compromis entre la performance et la précision de code de calcul

par Nestor Demeure

Projet de thèse en Mathématiques appliquées

Sous la direction de Christophe Denis.

Thèses en préparation à Paris Saclay , dans le cadre de École doctorale de mathématiques Hadamard (Orsay, Essonne ; 2015-....) , en partenariat avec CMLA - Centre de Mathématiques et de Leurs Applications (laboratoire) , LRC MESO - Laboratoire de Recherche Conventionné Modélisation Mésoscopique (equipe de recherche) et de Ecole normale supérieure Paris-Saclay (établissement de préparation de la thèse) depuis le 08-01-2018 .


  • Résumé

    Aujourd'hui, de nombreux phénomènes physiques complexes sont simulés informatiquement. Pour ces codes de simulation, deux propriétés sont particulièrement recherchées : la précision numérique et les performances. Ces deux objectifs sont impactés par l'utilisation de l'arithmétique 64 bits à virgule flottante. En effet, cette arithmétique est coûteuse en temps de calcul, et de plus, elle peut détériorer la qualité numérique du résultat car elle n'a pas toutes les propriétés mathématiques classiques des nombres réels (les flottants sont de précision finie, leur somme n'est pas associative, ...). Le but de cette thèse est de proposer une méthodologie pour optimiser les calculs flottants tout en assurant la reproductibilité numérique du code (c'est-à-dire que plusieurs exécutions du même calcul doivent conduire aux mêmes conclusions). En particulier, cette méthodologie sera appliquée à des codes de résolution de l'équation de Hartree-Fock-Bogoliubov, écrits en Fortran95 ou C++. Pour cela, il faudra d'abord caractériser le comportement numérique des codes, en étudiant la propagation des imprécisions dans les calculs à l'aide d'outils comme Verificarlo, qui utilise une arithmétique Monte-Carlo (MCA) pour déterminer des intervalles de confiance de chaque noyau de calculs. Ensuite, il faudra identifier les noyaux les plus propices aux optimisations sur les calculs numériques, comme ceux qui sont les plus tolérants numériquement. Pour ces derniers, il pourrait par exemple possible d'améliorer leur performance en utilisant les techniques de précision mixte (utilisation partielle de flottants 32 bits), pour accroître l'efficacité du code en augmentant son intensité arithmétique.

  • Titre traduit

    Managing the compromise between performance and accuracy in simulation codes


  • Résumé

    Nowadays, complex physical phenomena are studied with numerical simulations. For such software, two qualities are particularly relevant: accuracy and performance. Both of these properties are impacted by the use of computations in 64-bit floating point arithmetic. Indeed, it is expensive in computation time, and, moreover, it significantly affects numerical precision, as some of the classic mathematical properties of real numbers are lost (the floating are finite precision, their sum is not associative ...). The purpose of this thesis is to propose a methodology to optimize floating calculations while ensuring the reproducibility of digital code (that is, multiple runs of the same calculation must lead to the same conclusions). In particular, this methodology will be applied to the equation of Hartree-Fock-Bogoliubov resolution codes, written in C++ or Fortran95. Therefore, the first step is to characterize the numerical behavior of codes, by studying the spread of inaccuracies in the calculations, using tools such as Verificarlo, which uses a Monte-Carlo Arithmetic (MCA) to determine the confidence intervals of each computational kernel. Then, we can identify the least numerically constraint kernels, on which we can perform optimizations the most easily. For example, we might use mixed precision techniques (partial use of floating 32 bits) in order to improve code efficiency by increasing its arithmetic intensity.