Outils de débogage et d’optimisation des calculs flottants dans un contexte HPC

Yohan Chatelain · theses.fr (ABES) · 2019

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-designefforts have mainly focused on application performance at the cost of numerical quality. However, this is becoming increasingly difficult to maintain from one generation of supercomputer to the next. In addition, there are new computation formats (bfloat16, binary16) performance factors thathave to be used 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 calculation 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 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.

Read the paper · More papers on PaperTik