Numerical codes rely on floating-point arithmetic to represent real numbers and the operations applied to them. However, in general, real numbers cannot be exactly represented by floating-point numbers. The finite precision of the floating-point arithmetic may lead to round-off errors that may accumulate. With the increasing computational power, the algorithm complexification and the coupling of numerical codes, it is crucial to quantify the numerical robustness of an application or an algorithm.
CADNA [1], Verificarlo [2] and Verrou [3] are dedicated tools that allow estimating the round-off errors propagation and measuring the numerical accuracy of the obtained results. The objective of this work is to use these three tools on GYSELA [4, 5], a simulation code used to characterize the plasma dynamics in Tokamak, and PATMOS [6], a mini-app representative of a Monte Carlo neutron transport code. This analysis will be aimed at assessing the numerical robustness of these two applications or some of their algorithms. In addition to the analysis of the numerical quality, these tools will also be used to see whether it is possible to lower the precision (simple or even half precision instead of double) of some algorithms, thus improving the memory footprint and/or performances (vectorization, communications). Beyond the lessons learnt on the two analyzed codes, a second objective will be the elaboration of a methodology that could be more generic and be applied more broadly to other codes.