Skip to Main content Skip to Navigation

Outils de débogage et d'optimisation des calculs flottants dans le contexte HPC

Abstract : High Performance Computing (HPC) is a dynamic ecosystem where scientific computing architectures and codes are in permanent co-evolution (parallelism, specialized accelerators, new memories).This dynamism requires developers to adapt their software regularly to exploit all the new technological innovations.For this purpose, co-design approaches consisting of simultaneously developing software and hardware are an interesting approach.Nevertheless, co-design efforts have mainly focused on application performance without necessarily taking into account the numerical quality.However, this is becoming increasingly difficult to maintain from one generation of supercomputer to the next due to the increased complexity of the hardware and the parallel programming models. In addition, there are new floating point computation formats (bfloat16, binary16) that should be harnessed during the modernization process.These findings raise two issues:1) How to check the digital quality of codes during the modernization process? This requires tools that allow both to quickly identify sources of numerical errors and to be user-friendly for non-expert users.2) How can we take advantage of the new possibilities offered by the equipment?The applications possibilities are manifold and therefore lead to a considerable space of possible solutions. The solutions found are the result of a compromise between the performance of the application and the numerical quality of the computations, but also the reproducibility of the results.In this thesis, we contributed to the Verificarlo software that helps to detect numerical errors by injecting various noise models into floating computations. More precisely, we have developed an approach to study the evolution of numerical errors over time. This tool is based on the generation of numerical traces that allow the numerical quality of the variables to be tracked over time. These traces are enriched by context information retrieved during compilation and can then be viewed in an elegant way.We also contributed to VPREC, a computation model simulating formats of varying sizes. This tool has been used to address the problem of format optimization in iterative schemes. The proposed optimization is temporal since it optimizes the computation precision for each time step.Finally, a major constraint in the development of tools for HPC is the scaling up. Indeed, the size of the codes and the number of computations involved drastically increase the complexity of the analyses and limit conventional approaches. We have demonstrated that the techniques developed in this thesis are applicable to industrial codes since they have made it possible, first, to detect and correct a numerical error in the ABINIT code (ab initio code for quantum chemistry developed by the CEA et al.). Secondly, these tools have reduced the computation accuracy of YALES2 (fluid mechanics code developed by CORIA) and improved performance by reducing communication volumes by 28% and accelerating execution up to 1.30 times.
Complete list of metadatas

Cited literature [264 references]  Display  Hide  Download
Contributor : Abes Star :  Contact
Submitted on : Wednesday, May 20, 2020 - 5:57:09 PM
Last modification on : Wednesday, October 14, 2020 - 4:20:34 AM


Version validated by the jury (STAR)


  • HAL Id : tel-02614237, version 1



Yohan Chatelain. Outils de débogage et d'optimisation des calculs flottants dans le contexte HPC. Calcul parallèle, distribué et partagé [cs.DC]. Université Paris-Saclay, 2019. Français. ⟨NNT : 2019SACLV096⟩. ⟨tel-02614237⟩



Record views


Files downloads