thesis

Sur la validation numérique des codes de calcul industriels

Defense date:

Jan. 1, 2013

Edit

Institution:

Paris 6

Disciplines:

Abstract EN:

L'étude de la qualité numérique est cruciale pour les codes industriels tels que ceux développés à EDF R&D. C'est d'autant plus important dans le contexte actuel où les simulations numériques sont faites sur des architectures pouvant exécuter des milliards d’opérations flottantes par seconde. Des études ont montré que la bibliothèque CADNA est un outil adapté à la validation numérique des codes industriels. Toutefois, CADNA ne peut être utilisée simplement sur des grands codes industriels, ces derniers faisant appel à des bibliothèques externes (MPI, BLACS, BLAS, LAPACK). Il est donc nécessaire de développer des extensions compatibles avec l’outil CADNA. L'implémentation de ces diverses extensions pose un problème de performance, la complexité algorithmique et la taille des logiciels de calcul numérique impliquant d'importants temps d'exécution. A titre d'exemple, l'implémentation directe de CADNA dans la routine de produit matriciel DGEMM des BLAS, introduit un surcoût supérieur à 1000 pour une matrice carrée de taille 1024. Les raisons de ce surcoût sont expliquées dans ce mémoire. Nous présentons également, à travers notre routine DgemmCADNA, la méthodologie pour réduire ce surcoût. Cette routine a permis de réduire ce surcoût d'un facteur 1100 à un facteur 35 par rapport à la version GotoBLAS. Une deuxième partie de notre travail à été consacrée à l'étude de la qualité numérique du code Telemac-2D. Pour valider entièrement le code, nous avons implémenté une extension de CADNA pour le standard MPI. Le débogage numérique à l'aide de CADNA a montré que plus de 30% des instabilités détectées apparaissent dans les produits scalaires. L'utilisation des algorithmes de produit scalaire compensé permet d'améliorer la précision des résultats sans dégrader les performances du code.

Abstract FR:

Numerical verification of industrial codes, such as those developed atEDF R&D, is required to estimate the precision and the quality ofcomputed results, even more for code running in HPC environments wheremillions of instructions are performed each second. These programsusually use external libraries (MPI, BLACS, BLAS, LAPACK). Inthis context, it is required to have a tool as nonintrusive aspossible to avoid rewriting the original code. In this regard, theCADNA library, which implement the Discrete Stochastic Arithmetic,appears to be one of a promising approach for industrial applications. In the first part of this work, we are interested in an efficientimplementation of the BLAS routine DGEMM (General Matrix Multiply)implementing Discrete Stochastic Arithmetic. The implementation of abasic algorithm for matrix product using stochastic types leads to anoverhead greater than 1000 for a matrix of 1024*1024 comparedto the standard version and commercial versions of xGEMM. Here, wedetail different solutions to reduce this overhead and the results wehave obtained. A new routine DgemmCADNA have been designed. This routine has allowed to reduce the overhead from 1100 to 35compare to optimized BLAS implementations (GotoBLAS). Then, we focus on the numerical verification of Telemac-2D computedresults. Performing a numerical validation with the CADNA libraryshows that more than 30% of the numerical instabilities occurringduring an execution come from the dot product function. A moreaccurate implementation of the dot product with compensated algorithmsis presented in this work. We show that implementing these kind ofalgorithms, in order to improve the accuracy of computed results doesnot alter the code performance.