• Aucun résultat trouvé

Sur la validation numérique des codes de calcul industriels

N/A
N/A
Protected

Academic year: 2021

Partager "Sur la validation numérique des codes de calcul industriels"

Copied!
197
0
0

Texte intégral

(1)

HAL Id: tel-00913570

https://tel.archives-ouvertes.fr/tel-00913570

Submitted on 11 Dec 2013

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Sur la validation numérique des codes de calcul

industriels

Séthy Montan

To cite this version:

Séthy Montan. Sur la validation numérique des codes de calcul industriels. Performance et fiabilité [cs.PF]. Université Pierre et Marie Curie - Paris VI, 2013. Français. �tel-00913570�

(2)

i

THÈSE DE DOCTORAT DE

l’UNIVERSITÉ PIERRE ET MARIE CURIE École doctorale Informatique,

Télécommunications et Électronique (Paris) présentée par

Séthy Akpémado M

ONTAN

pour obtenir le titre de

DOCTEUR de l’UNIVERSITÉ PIERRE ET MARIE CURIE Spécialité Informatique

Sur la validation numérique

des codes de calcul industriels

Thèse dirigée par Jean-Marie CHESNEAUX

Jean-Luc LAMOTTEet Christophe DENIS

soutenue publiquement le vendredi 25 octobre 2013

Après avis des rapporteurs :

Philippe LANGLOIS Professeur, Université de Perpignan Via Domitia

Jean-Yves L’EXCELLENT Chargé de Recherche, INRIA Rhône-Alpes, ENS Lyon

Devant le jury composé de :

Christophe CALVIN Chargé de Mission, CEA/DEN/DANS/DM2S Jean-Marie CHESNEAUX Professeur, Université Pierre et Marie Curie Christophe DENIS Ingénieur-Chercheur, EDF R&D

Jean-Charles FAUGÈRE Directeur de Recherche, INRIA Paris-Rocquencourt, UPMC Jean-Michel HERVOUET Senior Chercheur, EDF R&D

Jean-Luc LAMOTTE Professeur, Université Pierre et Marie Curie

Philippe LANGLOIS Professeur, Université de Perpignan Via Domitia

(3)
(4)

Sur la validation numérique

des codes de calcul industriels

Séthy A. MONTAN

(5)
(6)

Au baron1 et à la baronne2 d’Adidomé.

1. Cyrille 2. Pauline

(7)
(8)

Akpé !

Akpé veut tout simplement dire merci en Mina3. En effet, cette partie dédiée aux remer-ciements, est à mon humble avis, la plus importante des manuscrits de thèse. Je m’expliquerai dans les prochaines lignes.

Commençons alors par les explications que je vous ai promis plus tôt. Pour cela, il faut d’abord que je vous dise ce qu’est une thèse. C’est tout simplement une aventure de trois ans (plus en réalité). C’est aussi des voyages (officiellement des conférences), des rencontres, des discussions (plus ou moins scientifiques), des histoires (drôles ou pas), du boulot (de la re-cherche en fait) et des résultats...enfin, si on en a :). C’est surtout et principalement un travail d’équipe, même si dans l’imaginaire collectif, on a tendance à assimiler le doctorant à un tra-vailleur solitaire et associable. C’est pour toutes ces raisons qu’il est de coutume d’écrire les remerciements. Je vais essayer ici de dire un Grand Merci, à ma manière, à tous ceux qui ont contribué, chacun à sa manière à l’aboutissement de ces années d’études.

Je commencerai par le jury, parce que s’il y a eu une soutenance de thèse, c’est qu’il y a certaines personnes qui m’ont fait l’honneur de bien vouloir évaluer mon travail. Alors merci au président du jury, le professeur Jean-Charles FAUGÈRE, qui a accepté remplacer au pied levé Nathalie DRACH-TEMAMqui faisait déjà partie de mon jury de mi-thèse. Je voudrais aussi exprimer toute ma gratitude aux rapporteurs Jean-Yves L’EXCELLENTet Philippe LANGLOIS. Vos remarques et questions m’ont permis d’améliorer considérablement la qualité de ce ma-nuscrit. Merci à toi Philippe, qui m’a suivit pendant toute la thèse. Merci pour tes conseils et nos nombreuses discussions. Je remercie également les examinateurs Jean-Michel HERVOUET et Christophe CALVIN. Grande fut ma joie de vous avoir dans mon jury.

Au cours de ces trois dernières années, j’ai également eu l’occasion de travailler avec trois personnes formidables. Je pense notamment à Jean-Marie Chesneaux, Jean-Luc Lamotte et Christophe Denis qui m’ont encadré pendant la thèse. Je remercie particulièrement Jean-Marie qui m’a offert cette opportunité et m’a dirigé pendant cette thèse. Je tiens aussi à remercier très sincèrement Jean-Luc et Christophe, qui m’ont suivi au quotidien (même pendant leurs vacances). Je ne saurai jamais comment vous exprimer tout le bien que je pense de vous.

Il me semble aussi important de remercier les deux personnes qui m’ont permis de mettre mon petit pied dans le monde de la recherche. Merci à Pierre Fortin qui m’a encadré pendant mon premier stage de jeune chercheur et merci au Professeur Laurent-Stéphane Didier pour ces précieux conseils qui ont été sources de motivation pendant toute la thèse. Merci également pour l’intérêt que vous avez porté à mon travail.

Ma gratitude va également à mes collègues et amis du Groupe I23. Mention spéciale à la Coffee Team et aux habitués du 96. Il me faudrait certainement une nouvelle thèse pour expri-mer tout le bien que je pense de vous. D’ailleurs, il m’arrive souvent de penser aux nombreuses thèses aux sujets les plus farfelus les uns que les autres, que nous avons voulu lancer à la suite de nos nombreuses et longues discussions politico-socio-économiques... Merci à Christian pour m’avoir supporté pendant trois longues années. Merci à mes confrères doctorants Marc-André, Salli et Willy et aux différents stagiaires d’avoir supporté mes poses discussions dans leurs bureaux :). Merci à Sofiane, tout d’abord pour sa bonne humeur et pour avoir accepté de me re-lire :). Merci à Flora pour avoir essayé de refaire mon éducation sur certains problèmes et enjeux sociétaux. Merci à ceux qui évitent la lumière du jour dans leur bureau mais qui sont toujours

(9)

disponibles pour mes divers soucis d’ordre scientifique ou pas (je pense bien évidemment à François et Bruno). Merci au Hadj pour ses leçons de ski arrosées de Génépi... Merci à Éléonore pour ses gâteaux aux légumes et ses trips nocturnes en voiture. Merci Fannie, grâce à toi, j’ai compris que l’Alsace pouvait être sympa et qu’il y avait des gens "biens" qui y vivent. Merci DjPir pour ton gâteau annuel et bien d’autres choses... Merci à Mark pour les discussions que je ne pouvais avoir qu’avec toi. Merci à mes Chefs Bruno Q. et Émile. Enfin, merci à Angélique, Bertrand, Christophe Domain, Évelyne, Gérald, Guy, Florence, Frank, Franck, Jean-Philippe, Laurent, Maxime, Marie-Agnès, Olivier, Patricia...

Je tiens également à remercier mes collègues du laboratoire STFC Daresbury qui m’ont accueilli quelques mois pendant lesquels ils m’ont initié au Touch Rugby et aux pints anglaises. Je pense particulièrement au Professeur David Emerson, à mon Tuteur Charles M. et à mes compagnons Yoann, Maggie et Pierre. Merci à l’équipe PEQUAN du LIP6 qui m’a offert un cadre de recherche idéal pendant ces trois années. Un Merci Spécial à mes confrères doctorants Mourad, Issam et Louise.

Naturellement, il eu aussi une vie en dehors des locaux de la R&D et de mon bureau de Paris 6. Bien évidemment, il eu le foot avec l’ASER Foot (ou Hello Kitty Football Club pour les intimes). Des victoires et surtout de nombreuses troisièmes mi-temps exceptionnelles (en France ou ailleurs...). Merci à Arno, Amine, DjRem, Christ B, Christophe, Franck, Greg S, JR, Lambert, Luke, Nico R, au coach Greg G et à notre très cher président Charly pour ces moments mémorables. N’ayez aucune crainte, nous le gagnerons ce championnat... enfin si j’arrive à scorer régulièrement avec la nouvelle paire de "boot", si JR ou Amine libérait quelques fois la balle, si Charly acceptait enfin de faire quelques passes en profondeur, si Christ B arrêtait de tirer à 40 m du but, si je respectais un peu plus la règle du hors jeu, et surtout si je mettais la tête sur les dégagements de DjRem.

Merci à tous mes camarades d’école qui ont facilité mon intégration parisienne et les années Polytech... Ai-je besoin de m’attarder sur ce dernier point ? Certainement pas... Nous avons toujours su trouver le moyen de transformer les moments stressants, difficiles ou malheureux en de très bons souvenirs. De fait, les histoires drôles sont nombreuses et on ne se lassera jamais de les conter. Beaucoup de souvenirs de notre bunker et de nos passages au RU... Je pense notamment à Ahmed, Alexis, Bamy, Caro, Jo, Stef, Issa, Raouf et à Eva, Medhi, Pauline, Tarik...

Enfin, j’ai la chance d’avoir une très très Grande Famille. D’abord une bande d’amis d’en-fance mais finalement plus que des amis, vous êtes mes frères. Nous passons beaucoup de nos journées à refaire le monde, à rêver d’un Togo Nouveau et d’une meilleure Afrique. Je ne doute point de cela. Tachons de garder cette solidarité pour y arriver. Merci à Mr une Chaussure, au Danceur Fou, à Pikachu (j’ose espérer que tu finiras par payer tes dettes... surtout la télé), à Popop (à quand ta prochaine défaite Fifa 14 ?) et à Mass. Merci à mes sœurettes Carine, Esther et à mes frangins Sitou et Don Akpam. Merci à toi Grand Frère Fabio, compagnon de toujours et conseiller spécial, sans ta présence à mes cotés, j’aurais certainement fait des choix contraires à mes envies. Une petite pensée pour maman Manu et à Séwavi. Merci également aux grands frères Bénito, Dodo, Grand.

Que dire alors de mes parents... ils m’ont offert la possibilité de rêver grand et d’accomplir certains de ces doux rêves. Merci pour votre rigueur et tout l’amour que vous m’avez donné. Comme j’aime le dire à l’occasion, j’ai fini par cerner la réelle explication de mon prénom... Je tacherai de le garder à l’esprit à jamais. J’ai une grosse pensée aussi pour mon petit frère Ro-drigue. Je ne peux ignorer mes oncles Ferdinand et Mensah, qui ont guidé mes pas ces dernières

(10)

années. Je voudrais également exprimer toute ma gratitude à Tonton Roger et Tanti Louisette qui m’ont accueilli chez eux pendant quelques années et n’ont jamais cessé de me soutenir. Je voudrais également remercier Ton Jean, Mèyè, Gina, Kossi, Papa, Elom, Nti Fafafia, Sitou, Dodji, Ange, Oslo, Sarata... Malgré la distance, vous avez toujours été présents pour moi.

Enfin, une dernière pensée pour quelques personnes qui nous ont quitté : Mèyènon, Da, Attavigan, Ton Jeannot...

Tout seul, on va vite.... mais ensemble, on va plus loin. Alors merci à tous :)

Makasi Toujours ! ! ! Brodi Mt

(11)
(12)

Table des matières

1 Introduction générale 1

1.1 Simuler pour décider . . . 3

1.2 La modélisation numérique chez EDF . . . 5

1.3 Vers des applications de plus en plus performantes . . . 8

1.4 Présentation de la thèse . . . 12

1.4.1 Motivations . . . 12

1.4.2 Contexte et objectifs . . . 14

1.4.3 Environnement . . . 15

1.5 Plan de lecture . . . 15

2 La validation numérique : principes et méthodes 17 2.1 Parce que l’ordinateur n’est pas obligé d’être juste . . . 19

2.1.1 Du réel au flottant . . . 21

2.1.2 Notion d’arrondi . . . 22

2.1.3 La qualité numérique des calculs . . . 23

2.1.4 Ce que nous devrions tous savoir. . . 24

2.2 L’ordinateur peut être source d’erreur... et alors ? . . . 26

2.2.1 Analyser l’erreur . . . 27

2.2.2 Éviter l’erreur . . . 29

2.2.3 Détecter l’erreur. . . 30

2.3 La validation numérique en industrie . . . 31

(13)

Table des matières

3 L’arithmétique stochastique discrète et son implémentation 35

3.1 L’erreur d’arrondi dans un programme informatique . . . 37

3.1.1 Notion de chiffres significatifs exacts. . . 37

3.1.2 Erreurs d’arrondi à chaque opération arithmétique . . . 38

3.1.3 Le résultat informatique . . . 38

3.2 La méthode CESTAC . . . 39

3.2.1 Approche stochastique des erreurs d’arrondi . . . 39

3.2.2 Arithmétique aléatoire . . . 39

3.2.3 Estimation de la précision . . . 40

3.2.4 Validité de la méthode . . . 40

3.2.5 Arithmétique stochastique discrète. . . 41

3.3 Le logiciel CADNA . . . 42

3.4 Les récents développements . . . 46

3.5 Conclusion . . . 46

4 Les types stochastiques et les bibliothèques de communication 49 4.1 Le standard MPI. . . 51

4.2 Les fonctionnalités de l’extension . . . 52

4.3 Développement . . . 53

4.3.1 Un module Fortran90 . . . 53

4.3.2 CADNA_MPI pour C/C++ . . . 57

4.4 Mode d’utilisation. . . 57

4.5 Tests et résultats . . . 60

4.5.1 Temps de communication avec CADNA : . . . 60

4.5.2 Étude d’un code de produit matriciel avec ou sans CADNA . . . 65

4.5.3 Élimination de Gauss sans recherche du pivot maximum . . . 67

4.6 Conclusion . . . 67

5 Vers une implémentation efficace de CADNA dans les routines BLAS 71 5.1 Sur les outils de calcul scientifique . . . 73

5.2 Les routines BLAS. . . 75

5.2.1 Les différentes versions . . . 76

5.2.2 Tests de performance des BLAS. . . 77

5.2.3 Conclusion . . . 82

5.3 Les routines BLAS et l’arithmétique stochastique discrète . . . 83

5.4 La routine DgemmCadna . . . 87

(14)

5.4.2 L’influence de la méthode CESTAC . . . 88

5.4.3 DgemmCadnaV1 et les différentes implémentations . . . 90

5.5 Vers une optimisation de DgemmCadna . . . 91

5.5.1 L’accès mémoire sur les nouvelles architectures . . . 93

5.5.2 Algorithmes par blocs (tiling) . . . 94

5.5.3 Vers une meilleure utilisation de la mémoire : Block Data Layout (BDL) . . 97

5.6 La méthode CESTAC modifiée . . . 101

5.6.1 La nouvelle implémentation de la méthode CESTAC . . . 101

5.6.2 Sur la validité de la nouvelle implémentation. . . 102

5.7 Conclusion . . . 106

6 Etude de la propagation des erreurs d’arrondi dans un code industriel parallèle 109 6.1 La suite Telemac-Mascaret . . . 111

6.2 Le logiciel Telemac-2D . . . 113

6.2.1 Présentation générale . . . 113

6.2.2 Le code et la gestion du parallélisme . . . 115

6.2.3 Un exemple d’application : La rupture du barrage Malpasset . . . 117

6.2.4 Les problèmes numériques recensés dans le code . . . 117

6.3 Validation de Telemac-2D avec l’outil CADNA . . . 119

6.3.1 Implémentation de CADNA dans les codes sources . . . 119

6.3.2 Surcoût dû à l’utilisation de CADNA . . . 121

6.3.3 Le diagnostic de CADNA et son analyse . . . 122

6.4 Les algorithmes compensés . . . 123

6.4.1 Introduction . . . 123

6.4.2 La base des algorithmes compensés . . . 124

6.4.3 Transformation exacte de l’addition et de la multiplication . . . 125

6.4.4 Algorithme de produit scalaire compensé . . . 126

6.4.5 Expérimentation des algorithmes compensés de produit scalaire. . . 129

6.4.6 Performance de Telemac avec les algorithmes compensés . . . 131

6.5 Conclusion . . . 135

7 Retour sur l’implémentation de CADNA dans les codes industriels 137 7.1 Comment valider un code avec CADNA ? . . . 139

7.2 L’implémentation de CADNA dans les codes . . . 140

7.3 Le débogage numérique et l’analyse du diagnostic . . . 141

7.4 Vers une plate-forme de vérification numérique industrielle . . . 143

(15)

Table des matières

Liste des publications 149

Annexes 151

A Les plateformes de test : descriptif technique 151

A.1 Protocole de mesure des temps de calcul. . . 151

A.2 Le poste scientifique standard à EDF : HP Z600 workstation . . . 151

A.3 Le Cluster Ivanoe . . . 152

A.4 Le Cluster IBM iDataplex de Daresbury . . . 153

B Implémentation efficace de CADNA dans les routines BLACS 155 B.1 BLACS : Basic Linear Algebra Communication Subprograms . . . 155

B.2 Comment associer les BLACS et CADNA ? . . . 158

B.2.1 Comment fonctionnent les routines BLACS ? . . . 158

B.2.2 Les types stochastiques et les BLACS ? . . . 158

C Equations d’hydrodynamique à surface libre 159 C.1 Équations de Navier-Stokes non-hydrostatiques . . . 159

C.2 Conditions aux limites . . . 161

C.3 Pression hydrostatique . . . 161

C.4 Équations de Saint-Venant hydrostatiques . . . 162

Table des figures 165

Liste des tableaux 167

(16)

Chapitre

1

(17)

Chapitre 1. Introduction générale

Sommaire

1.1 Simuler pour décider . . . . 3

1.2 La modélisation numérique chez EDF . . . . 5

1.3 Vers des applications de plus en plus performantes . . . . 8

1.4 Présentation de la thèse . . . . 12

1.4.1 Motivations . . . 12

1.4.2 Contexte et objectifs . . . 14

1.4.3 Environnement . . . 15

(18)

1.1. Simuler pour décider

La simulation numérique par le calcul haute performance est devenue, grâce à la constante évolution des ordinateurs, un atout crucial et un enjeu majeur pour l’industrie. En effet, la modélisation numérique permet à des acteurs industriels comme EDF de simuler des phé-nomènes physiques très complexes afin d’étayer des décisions d’exploitation (barrages, cen-trales). On peut, par exemple, simuler le fonctionnement complet d’une centrale nucléaire : de sa construction à la production d’électricité et même la gestion de scénarios d’accidents. Cependant, force est de constater que le résultat d’un logiciel de simulation numérique subit plusieurs approximations effectuées aux diverses étapes du processus de simulation (la modé-lisation mathématique du problème physique, la discrétisation du modèle mathématique et la résolution numérique en arithmétique des ordinateurs). Au vu de l’importance des décisions prises sur la foi de calculs, les exigences de sûreté des ouvrages de production imposent alors de s’assurer d’une part de la reproductibilité et d’autre part de la qualité et fiabilité des résul-tats des simulations.

Cette thèse s’inscrit dans le cadre de la vérification numérique des codes de simulation. La validation numérique d’un logiciel de simulation consiste à étudier sa fiabilité. Nous appe-lons ici fiabilité d’un code de calcul, sa capacité à produire des résultats justes malgré les erreurs d’arrondi dues à l’arithmétique flottante IEEE 754. La validation numérique est d’autant plus importante à l’heure actuelle où on est en constante recherche de meilleures puissances de cal-cul dans les codes pour simuler des phénomènes de plus en plus complexes et à plus large échelle sur des architectures massivement parallèles.

Plan du chapitre :Notre démarche dans ce chapitre introductif sera dans un premier temps d’expliquer le principe général de la simulation numérique en général : ses principales étapes, les moyens et outils utilisés (section 1.1). Nous nous intéresserons, dans un second temps, aux codes de calculs industriels, notamment ceux d’EDF (section 1.2). Nous évoquerons également l’important apport du HPC4 dans les simulations (section 1.3). Enfin, nous nous poserons la question de la fiabilité des résultats de ces codes et l’influence de l’arithmétique de l’ordinateur ; nous introduirons la thèse en présentant de façon détaillée le sujet, son contexte, les motivations et les principaux enjeux de nos travaux (section 1.4).

1.1

Simuler pour décider

Pour le commun des mortels, les mots laboratoire et recherche, font généralement penser aux expérimentations, aux maquettes, aux tubes à essai et aux blouses blanches. Cependant, il existe bien des cas où il est tout simplement impossible, pour des raisons diverses (complexité, coût, inaccessibilité à l’échelle humaine, dangerosité), de réaliser certaines expériences. Dans ces cas, on fait appel à l’ordinateur à travers la simulation numérique qui fournit un outil pratique et très efficace afin de comprendre, de contrôler et de prévoir le fonctionnement des systèmes physiques. On parle alors d’expérience in silico. Dès lors, l’ordinateur est devenu un fantas-tique outil d’investigation et la simulation un outil indispensable, voire incontournable, dans plusieurs domaines de recherche et de développement notamment dans l’industrie. Son champ d’application est extrêmement vaste : on peut citer la mécanique des fluides, la science des ma-tériaux, l’astrophysique, la physique nucléaire, l’aéronautique, la climatologie, la mécanique quantique, la biologie, la chimie, les sciences humaines, les mathématiques financières etc.

(19)

Chapitre 1. Introduction générale

Si on devait définir la simulation numérique, on pourrait dire que c’est le procédé selon le-quel on exécute un (des) programme(s) sur un (des) ordinateur(s) en vue de représenter un phé-nomène physique [CEA, 2007]. Elle fait gagner du temps (et beaucoup d’argent) aux construc-teurs d’automobiles et d’avions. Elle permet aux météorologues de prévoir le temps qu’il fera dans plusieurs jours [Ghidaglia et Rittaud, 2004]. On pourrait presque résumer la simulation numérique à une adaptation aux moyens numériques des modèles mathématiques. En effet, le point de départ du processus de simulation est l’observation d’un phénomène physique. Le modèle est une traduction des observations en équations mathématiques. La modélisation d’un phénomène consiste alors à prendre en compte les principes fondamentaux (conservation de la masse, de l’énergie, etc) et à déterminer les paramètres essentiels (positions, vitesses, tempéra-tures...) qui permettent une description simple et réaliste de chaque élément intervenant et de son évolution dans le temps. Le modèle est complet5 lorsque toutes les équations (traduisant les lois physiques qui régissent tous les éléments du système) sont écrites.

De la modélisation mathématique, on passe ensuite à la simulation grâce à la program-mation en langages informatiques. Des méthodes numériques spécifiques sont utilisées pour résoudre les équations issues des modèles. La mise en œuvre de ces méthodes est elle aussi, une étape incontournable du processus de simulation. Bien souvent, les modèles sont posés sous forme d’une équation aux dérivées partielles (EDP) ou d’un système d’EDPs et on dis-pose très rarement de solutions analytiques pour ces équations. Il est alors indispensable de se tourner vers des méthodes d’approximation. Le choix de ces méthodes doit se faire en adéqua-tion avec la modélisaadéqua-tion physique du problème. Deux approches sont principalement mises à contributions : les méthodes déterministes et les méthodes probabilistes (ou statistiques). Dans la première catégorie, on résout les équations après avoir discrétisé les variables. Les méthodes déterministes les plus connus sont les volumes finis, les différences finies et les éléments fi-nis [Ern et Guermond, 2004]. Les méthodes probabilistes, encore appelées "Monte-Carlo", dé-finissent les techniques permettant d’évaluer une quantité déterministe à l’aide de l’utilisation de tirages aléatoires [Kalos et Whitlock, 2008]. Les méthodes numériques ont fait et font l’objet de nombreuses études, la littérature sur le sujet est d’ailleurs très vaste. On peut cependant en trouver un large aperçu dans ces ouvrages [Allaire, 2005,Dautray et al., 1988,Lucquin et Pironneau, 1996].

La simulation numérique est finalement matérialisée par le logiciel de calcul. Cependant, en amont et en aval du processus, de nombreuses opérations complexes sont faites pour pré-parer l’expérimentation et ensuite pour exploiter au mieux les résultats. La CAO (conception assistée par ordinateur) permet de représenter les scènes avec des formes géométriques qui sont ensuite discrétisées par maillage. Les résultats des calculs sont sauvegardés et traités pour constituer une base qui puisse servir de références. Enfin, le processus se concrétise lorsque l’on visualise le phénomène étudié sur un écran. La dernière étape est donc la confrontation avec les observations de départ. Cette confrontation permet d’améliorer les modèles physiques, leurs paramètres et les logiciels de calcul. On pourrait presque dire que la simulation numérique est une autre approche du réel [CEA, 2007]. Il va sans dire, qu’elle ne peut supplanter les expéri-mentations et les observations, mais l’un de ses intérêts essentiels est de prédire les situations inédites. Simuler permet donc de mieux comprendre et d’anticiper. Pour les acteurs indus-triels, "simuler" permet principalement de décider. A titre d’exemple, l’investissement pour la construction d’un système hydro-informatique (un logiciel de calcul pour les simulations hydrauliques) est de l’ordre de 500000 à 1 million d’euros par an, mais les bénéfices pouvant 5. Parfois, on ne peut avoir toutes les équations, on peut quand même modéliser le système en approximant la physique

(20)

1.2. La modélisation numérique chez EDF

provenir d’un tel ouvrage sont de grandeurs bien plus élevées. Ainsi une simulation numé-rique de l’impact d’un ouvrage d’art en situation de crue a évité récemment une dépense de 12 millions d’euros. Une autre permettant de prédire de manière convaincante l’évolution d’une tache thermique a permis de réduire de coûteuses campagnes de mesures [Hervouet, 2007].

1.2

La modélisation numérique chez EDF

Les enjeux de la modélisation numérique sont considérables pour l’industrie, notamment pour EDF, le premier fournisseur mondial d’électricité. En ce sens, la division Recherche et Développement (R&D) du Groupe a pour principale mission d’aider les départements métiers (ingénierie) à relever les défis énergétiques de demain [EDF R&D, 2012], notamment dans le cadre de la transition énergétique. Pour ce faire, EDF R&D conçoit de nombreux logiciels de simulation numérique adaptés aux besoins des ingénieurs du Groupe. Ces logiciels permettent aux départements métiers de prédire des phénomènes extrêmement complexes influençant la durée de vie des centrales nucléaires, de simuler des dizaines de milliers de scénarios pour optimiser la production et gérer les risques sur les marchés de l’énergie, etc.

La suite logicielle Telemac-Mascaret6, par exemple, est dédiée aux écoulements à surface libre [Hervouet, 2007]. Le logiciel Telemac résout les équations de Saint-Venant et de Navier-Stokes grâce à la méthode des éléments finis. Il est utilisé pour les études liées à l’environ-nement aquatique, aussi bien pour les études d’impact et le dimensionl’environ-nement des ouvrages que le calcul des marées et la simulation des crues. Il s’agit là d’un intérêt stratégique pour le Groupe EDF car ses principaux outils de production (barrages, centrales thermiques et nu-cléaires) sont généralement situés en bord de mer ou de rivière. Lechapitre 6présente de façon plus détaillée la suite Telemac-Mascaret ainsi que ses principaux domaines d’application.

On peut également citer le Code_Aster7 (un des plus vieux d’EDF R&D dédié à la mé-canique des structures et à la thermo-dynamique) ainsi que le Code_Saturne8 (dédié à la mécanique des fluides) [Archambeau et al., 2004] ou les codes Sim Diasca, SYRTHES et Code_Carmel3D. Un bref récapitulatif des principaux codes développés à la R&D d’EDF est présenté dans letableau 1.1. Ajoutons que ces codes peuvent être couplés. Le couplage permet d’associer un ou plusieurs codes pour résoudre un problème plus complexe. La sortie du code A peut alors être utilisé comme paramètre d’entrée du code B. Dans d’autres cas, le code A est appelé dans le code B. Il n’est pas inutile de préciser que le couplage doit se faire tout en respectant les contraintes physiques. A titre d’exemple, le Code_Saturne peut être couplé avec d’autres codes mais également avec lui même. Il peut être également couplé avec le code de thermique SYRTHES (voirfigure 1.1) ou le code de mécanique Code_Aster.

Outre ces logiciels de simulation scientifique, EDF R&D développe aussi des chaînes de calcul de cœur dédiées à la simulation du fonctionnement des cœurs de centrale nucléaire. Ces chaînes de calcul permettent, grâce au calcul du flux neutronique angulaire [Marguet, 2011], de déter-miner les paramètres pour une exploitation optimale des centrales. Elles sont également utili-sées pour répondre aux exigences de l’Autorité de Sûreté Nucléaire (ASN). La chaîne actuelle en exploitation par les ingénieurs de la division production nucléaire est COCCINELLE [ Hy-polite et al., 2012]. Une autre chaîne plus récente, COCAGNE [Guillo et al., 2010b] a été déve-loppée. Cette dernière repose sur des modèles physiques plus aboutis et permet de faire des

6. Voirhttp://www.openmascaret.org 7. Voirhttp://www.code-aster.org 8. Voirhttp://code-saturne.org

(21)

Chapitre 1. Introduction générale

Figure 1.1 – Couplage Code_Saturne et SYRTHES pour calculer la distri-bution thermique dans un réacteur. Source : http://innovation.edf.com/ recherche-et-communaute-scientifique/logiciels

(22)

1.2. La modélisation numérique chez EDF

Tableau 1.1 – Présentation des principaux codes Open Source d’EDF R&D, Source : [EDF R&D, 2013]

Nom Objectifs et champ d’applications

CloudCompare Logiciel d’édition et de traitement de données 3D (nuages de points ou maillages) développé depuis 2004 [Girardeau-Montaut, 2006]. Les don-nées 3D sont recueillies sur les ouvrages EDF afin de simuler des opé-rations de maintenance ou de suivre les déformations géométriques. Code_Aster Logiciel de simulation numérique en calcul des structures (d’analyse et

de modélisation multiphysique non linéaire, la fatigue, etc). Ce code est utilisé pour les études de comportement des matériaux utilisés pour les ouvrages (actuels et futurs) d’EDF.

Code_Saturne Code généraliste de Mécanique des Fluides Numériques (CFD). Il permet de modéliser les écoulements incompressibles ou dilatables, avec ou sans turbulence ou transfert de chaleur. Le code résout les équations de Navier-Stokes avec la méthode des volumes finis.

Code_Carmel3D Code de calcul de champ électromagnétique par éléments finis permet-tant d’effectuer des simulations numériques de contrôles non-destructifs (CND) par courants de Foucault dans les tubes de générateurs de va-peur [Moreau et al., 2009].

Code_TYMPAN Code de propagation acoustique dans des scènes 3D complexes. Il est uti-lisé pour l’évaluation et la prévision de l’impact sonore des sites indus-triels dans le cadre d’études d’ingénierie en acoustique environnementale. SYRTHES Code généraliste de thermique pour la résolution numérique de la conduc-tion et du rayonnement en milieu transparent [Rupp et Peniguel, 1999]. La résolution de la conduction est basée sur une approche éléments finis. Sim_Diasca Moteur de simulation discrète intensément concurrent (parallèle et

ré-parti). L’objectif est de traiter des problèmes de grande taille (plusieurs millions d’instances de modèles en interaction) tout en garantissant que les simulations respectent des propriétés essentielles (la causalité, la re-productibilité totale et une certaine forme d’ergodicité).

(23)

Chapitre 1. Introduction générale

simulations plus complexes et plus proches de la réalité. COCAGNE a été principalement com-manditée pour valider les plans de chargement de l’EPR Flamanville9.

Dans le souci d’intégrer tout le processus de simulation (pré-traitement, CAO, maillages, visualisation, calcul, post-traitement) dans un seul et unique système logiciel et surtout d’aug-menter la productivité des études, EDF co-développe avec le CEA et une vingtaine de parte-naires industriels, la plateforme SALOME10. Cette plateforme open source permet la modélisa-tion détaillée de l’ensemble des phénomènes physiques (mécanique, thermohydraulique, neu-tronique) et leurs interactions dans un environnement commun. On peut par exemple y lancer les principaux codes que nous avons mentionné plus tôt11 (tableau 1.1). Cette plateforme fa-cilite ainsi le couplage de codes (comme nous l’évoquions au§3 section 1.2) et l’utilisation de modules externes comme Homard, un module dédié à l’adaptation de maillage [Nicolas et Fouquet, 2013].

Il faut donc souligner l’importance actuelle de la simulation numérique pour le monde industriel. Le progrès technique, avec l’amélioration des capacités des ordinateurs et les avan-cées dans les méthodes numériques ont alors permis à la simulation de prendre une nouvelle dimension.

1.3

Vers des applications de plus en plus performantes

L’évolution continue des architectures matérielles offre des puissances de calcul inimagi-nables il y a seulement 20 ans. Les supercalculateurs sont actuellement capables d’exécuter des millions de milliards d’opérations par seconde (pétaflopique) voire mille millions de milliards d’opérations par seconde (exaflopique) [Dongarra et al., 2011]. J.J.Dongarra et A.J. van der Steen illustrent parfaitement cette évolution dans [Dongarra et van der Steen, 2012] où ils dressent un bilan complet de l’évolution des systèmes HPC au cours des dernières décennies. Par exemple, il est intéressant de noter qu’un téléphone Iphone 4 est capable de réaliser 1.02 gigaFlops soit l’équivalent d’une machine du Top50012[Meuer et al., 2012] en 1995 [Dongarra, 2013].

En France, la machine Pangea de Total13 est la plus puissante. Sa performance crête théo-rique est estimée à 2, 296 pétaFlops et elle a été classée 11eau classement Top500 de juin 2013. Cette machine succède au palmarès à Curie14dont la performance crête théorique est de 1, 667 pétaFlops (classée 15e au classement Top500 de juin 2013). EDF R&D est représenté dans ce classement avec ses machines Zumbrota (classée 38e, performance crête théorique de 838, 9 té-raFlops) et Ivanoe (classée 205e, performance crête théorique de 191 téraFlops, voirannexe A.3 pour sa description détaillée). La première place du classement est actuellement occupée par une machine chinoise Tianhe-2 dont la performance crête théorique est estimée à 54, 902 pé-taFlops. Elle succède à une machine américaine Titan qui a une performance crête théorique 9. L’EPR est une centrale de troisième génération. Sa construction a débuté en 2007 et se pour-suit. Voir http://energie.edf.com/nucleaire/carte-des-centrales-nucleaires/epr-flamanville-3/ presentation-48324.html

10. Voirhttp://www.salome-platform.org/

11. sous réserve d’avoir une distribution contenant les modules des codes

12. Le Top500 est le classement des cinq cents supercalculateurs les plus puissants au monde. Il est réalisé avec le test de performance LINPACK. Voirhttp://www.top500.org

13. http://www.top500.org/system/178071

14. La machine Curie a été financée par le GENCI (Grand Équipement National de Calcul Intensif) et installée au TGCC (Très Grand Centre de Calcul) du CEA à Bruyères-Le-Chatel(91). Elle est mise à disposition des chercheurs français et européens depuis mars 2012. La mise en place de la machine rentre dans le cadre de l’infrastructure européen de calcul intensif PRACE (Partnership for Advanced Computing in Europe).

(24)

1.3. Vers des applications de plus en plus performantes

Figure 1.2 – Croissance exponentielle de la performance des supercalculateurs depuis 1990. On présente ici l’évolution des machines classées 1er, 500e et la performance totale combinée des supercalculateurs de la liste Top500, Source :http://www.top500.org/

(25)

Chapitre 1. Introduction générale

de 27, 112 pétaFlops (classée 2e). Dès lors, cette évolution permanente a apporté une nouvelle dimension à la simulation numérique.

Cette nouvelle dimension apportée par le HPC, est pleinement illustrée dans le cahier spé-cial du magazine La Recherche, édition de novembre 2012 [lar, 2012]. Par exemple, grâce aux supercalculateurs, les autorités pourraient être alertées plus rapidement des risques de tsu-nami. Le Cenalt15(Centre d’alerte aux tsunamis) peut prévenir l’arrivée imminente de vagues générées par un séisme sous-marin. Le temps de calcul ne permettait pas auparavant une uti-lisation en temps réel des simulations. La paralléuti-lisation du code vient renforcer l’estimation du risque et fournit une carte nettement plus détaillée de l’impact attendu des vagues sur les cotes. Quand on se rappelle des dégâts des tsunamis de 2004 au large de l’île indonésienne de Sumatra16et celui de 2011 de la côte Pacifique du Tohoku au Japon17, on ne peut qu’être ravi de ces récentes avancées.

Les supercalculateurs interviennent également dans la recherche en chimie du vivant. La modélisation des molécules du vivant permet de mieux comprendre le déclenchement des pa-thologies telles que la maladie d’Alzheimer. Ces simulations permettent alors de mieux orienter la recherche vers de bons traitements thérapeutiques. Une étude concernant la maladie d’Alz-heimer a d’ailleurs été réalisée sur la machine Curie deGencien décembre 2011. Au cours de ces simulations 80 000 cœurs de calculs du supercalculateur Curie ont été mis à contribution.

Il est alors impossible, aujourd’hui, de dissocier simulation numérique et calcul haute per-formance. L’augmentation de la complexité des modèles induit une augmentation importante du nombre de calculs et donc, des contraintes sur les temps d’exécution [Kirschenmann, 2012]. Cet apport considérable du HPC se retrouve également dans les simulations numériques à EDF, notamment dans l’évolution de la taille des cas traités au cours des deux dernières décennies.

En dynamique moléculaire par exemple, les ingénieurs-chercheurs ne pouvaient simuler que quelques centaines d’atomes sur une centaine de pas de temps dans les années 1960. Pro-gressivement, ils sont arrivés à traiter des cas de 104 atomes sur 104 pas de temps (1995) et aujourd’hui ils tournent des cas de millions d’atomes sur des millions de pas de temps. Rap-pelons que la dynamique moléculaire intervient dans le cadre de la simulation des matériaux. Celle-ci peut se faire à différentes échelles (macroscopique, mésoscopique et atomique). La dy-namique moléculaire (simulation à l’échelle atomique) consiste à déterminer l’évolution des atomes du système étudié en résolvant les équations de mouvement de tous les atomes. Elle permet de calculer les propriétés des liquides, gaz solides et molécules [Souffez et Domain, 1997]. En termes de temps de calcul (pour un pas de temps et par atome), on est passé de 170µs sur une machine IBM RS600018en 1997 à 5µs sur la frontale du supercalculateur Ivanoe (2013). La neutronique, cœur de métier par excellence du Groupe EDF, n’est pas en reste. Par exemple, la chaîne de calcul COCAGNE peut traiter un problème comportant jusqu’à mille mil-liard d’inconnues (1012 ddls19, voirfigure 1.3). Étant beaucoup plus aboutie et plus complète que la précédente chaîne, ses résultats peuvent servir de référence pour valider les résultats de COCCINELLE, cependant la validation nécessite de traiter beaucoup plus d’inconnues [Guillo et al., 2010a]. Un problème 3D COCCINELLE comportant 1 million d’inconnues sera alors va-lidé par un calcul 3D COCAGNE sur un problème dit « crayon par crayon », correspondant à une discrétisation plus fine et comportant 100 millions d’inconnues. De nombreux travaux sont alors effectués afin de réduire les temps d’exécution de ces codes en profitant des performances

15. http://www.info-tsunami.fr/

16. Voirhttp://en.wikipedia.org/wiki/2004_Indian_Ocean_earthquake_and_tsunami 17. Voirhttp://en.wikipedia.org/wiki/2011_Tohoku_earthquake_and_tsunami 18. A titre d’information, la machine IBM RS6000 coûtait 30000 F.F. en 1997

(26)

1.3. Vers des applications de plus en plus performantes

Figure 1.3 – Lafigure 1.3a représente une vue 2D d’un modèle de réacteur de type REP 900 MW. On distingue 3 types d’assemblages caractérisés par 3 niveaux d’enrichissement du com-bustible (bleu, vert et jaune). Ce modèle est utilisé pour effectuer des calculs cœur et la nappe de flux issue d’un calcul cœur 3D crayon par crayon effectué sur ce modèle avec COCAGNE est donnée par lafigure 1.3b[Courau et al., 2013].

(a) Réacteur de type REP 900 MW

(27)

Chapitre 1. Introduction générale

offertes par les nouvelles machines. Ces travaux concernent principalement les solveurs neutro-niques utilisés dans les chaînes de calcul. Aujourd’hui, on est en mesure de traiter un problème 3D COCAGNE de 109 ddls en 11 heures et un autre de 1011 ddls en 8 heures. Notons qu’en 2009, ce même type de calcul nécessitait 10000 heures pour traiter un cas de 1010ddls et 100000 heures pour un cas de 1012ddls [Barrault et al., 2011,Kirschenmann et al., 2011,Courau et al., 2013].

L’évolution du Code_Saturne, ces dernières années, illustre également l’impact considé-rable du calcul haute performance. En 2003, on pouvait traiter des cas de 5 · 105 cellules sur un des vecteurs (processeur vectoriel) de la machine Fujistu VPP 5000 et le calcul durait 2 mois. Aujourd’hui, pour la même durée de calcul avec 2000 cœurs sur un cluster Idataplex IBM, on traite des cas de 2 · 108 cellules. Les temps que nous venons de mentionner concernent des cas traités en production. Pour des cas d’étude d’EDF R&D, il est possible de résoudre des cas de 3 · 109 cellules. Il est intéressant de noter que ce genre de calcul nécessite 5 Tb pour le stockage et 3 Tb de mémoire pendant l’exécution. Malgré toutes ces avancées, des études sont encore menées afin d’améliorer les performances du code [Fournier et al., 2013,Fournier et al., 2012,Fournier et al., 2011].

Bien souvent, dans le but d’optimiser leurs performances, ces codes font appel à des bi-bliothèques scientifiques externes. Il s’agit de bibi-bliothèques de communication (MPI) ou de calcul (BLAS). Rappelons que les codes de simulations étant conçus pour résoudre des gros systèmes mathématiques, une importante partie des temps d’exécution est due au calcul. L’uti-lisation de bibliothèques optimisées dédiées au calcul scientifique est le moyen le plus simple pour maximiser les performances d’un code. A titre d’exemple, l’utilisation de la bibliothèque MKL d’Intel, qui est réputée être l’une des meilleures, permet d’améliorer considérablement les performances d’un code.

La simulation numérique, grâce au calcul haute performance, est devenue de facto, un ou-til essentiel de la recherche scientifique, technologique et industrielle. Elle permet de rempla-cer les expériences qui ne peuvent être menées en laboratoire quand elles sont dangereuses (accidents), de longue durée (climatologie), inaccessibles (astrophysique) ou interdites (essais nucléaires). La simulation améliore également la productivité en procurant un gain de temps important. Au vu de son importance, s’assurer de la qualité des résultats des codes de simu-lation devient plus qu’obligatoire, et primordial pour les codes industriels. Les travaux de la thèse que nous présentons dans la prochaine section interviennent dans ce cadre là.

1.4

Présentation de la thèse

1.4.1 Motivations

Nous commençons d’abord par rappeler quelques points essentiels de la simulation numé-rique que nous avons évoqués dans les sections précédentes. Nous insistons particulièrement sur ces points car ils constituent véritablement la motivation fondamentale de notre travail.

1. Le processus de simulation peut être décomposé en quatre grandes étapes : l’observa-tion des phénomènes physiques, la modélisal’observa-tion des lois physiques en équal’observa-tions mathé-matiques, la discrétisation des équations et pour terminer la résolution numérique des équations grâce aux codes exécutés sur ordinateur. Les équations mathématiques obte-nues (souvent des EDPs) sont discrétisées puis résolues (approchées) par des méthodes numériques spécifiques. Rappelons que discrétiser est l’opération consistant à remplacer des relations portant sur des fonctions continues, dérivables, etc, par un nombre fini de

(28)

1.4. Présentation de la thèse

relations algébriques portant sur les valeurs prises par ces fonctions en un nombre fini de points de leur ensemble de définition.

2. Les codes sont exécutés sur des ordinateurs avec une arithmétique propre à l’ordinateur : arithmétique dite flottante qui ne permet pas de représenter exactement tous les nombres réels. Ajoutons aussi que ces programmes sont généralement exécutés dans des environ-nement HPC où des milliards d’opérations sont effectuées chaque seconde dans un ordre imprédictible.

Figure 1.4 – Les différentes étapes de la simulation numérique

En d’autres termes, il en ressort que plusieurs étapes séparent l’étude du phénomène phy-sique de l’obtention du code de simulation : chaque étape peut être éventuellement source d’erreurs (cf.figure 1.4). Les résultats du logiciel de simulation numérique subissent donc plu-sieurs approximations. Dans le cadre de notre travail, nous nous intéressons aux erreurs dues à la résolution numérique en arithmétique flottante. Il est important de noter, qu’on ne peut ef-fectuer de calcul numérique flottant sans risque de produire des résultats erronés. Pour illustrer nos propos, nous présentons ci-dessous deux problèmes récents rencontrés au cours d’études menées à EDF R&D.

Problème 1. Une étude de quantité de matières dans le cadre d’une réaction d’oxydo-réduction nécessite l’extraction très précise des racines d’un polynôme de degré 3. Une seule de ces racines est admissible, c’est à dire réelle et aboutissant à des quantités de matière et des pressions partielles positives. L’algorithme de Cardan20, considéré comme stable numérique-ment, est utilisé pour le calcul des racines. Il a été remarqué au cours de cette étude, qu’avec les types standards (double et long double), on ne pouvait obtenir qu’une seule racine. En aug-mentant la précision des calculs, on obtient le bon nombre de racines réelles (3), ainsi qu’une amélioration de la précision de la seule racine trouvée auparavant.

(29)

Chapitre 1. Introduction générale

Problème 2. Une autre étude nécessitait le calcul d’intégrales de typeséquation 1.1. Ces in-tégrales sont calculées avec Maxima21, logiciel libre de calcul formel. Comme dans l’exemple précédent, il a été remarqué que dès lors qu’on raffinait les mailles, les résultats divergeaient avec les types conventionnels.

I =

Z x2

x0

wf(x) wcJ(x) dx, (1.1)

Ces exemples illustrent, à juste titre, à quel point il est difficile de calculer juste. Le calcul sur les nombres flottants peut facilement engendrer des pertes de précision liées à l’erreur d’ar-rondi effectuée à chaque opération. Pire, ces pertes sont encore plus importantes dès qu’il s’agit d’exécutions sur des architectures parallèles où l’on ne peut contrôler les ordres des opérations et ceci malgré les différents algorithmes tolérants aux pannes [Bader, 2007, chap. 13]. De fait, il est quasi impossible d’avoir des résultats reproductibles dès lors qu’on travaille sur des ar-chitectures parallèles. Comment évaluer efficacement, dans un contexte industriel, la qualité des résultats d’un code parallèle de simulation numérique sans pour autant détruire les perfor-mances de ce dernier ? Telle est la question fondamentale que nous nous posons dans le cadre de cette thèse. Toutefois, il ne suffit pas simplement d’évaluer la qualité numérique d’un code, il faut pouvoir l’améliorer dans le cas où elle est jugée insuffisante.

1.4.2 Contexte et objectifs

Nous définissons par validation numérique d’un code, le processus visant à étudier sa fiabilité en termes de qualité numérique. Concrètement, cela consiste à considérer les effets de la pro-pagation d’erreurs d’arrondi sur la qualité des résultats d’un calcul. D’une manière générale, la fiabilité d’un code peut être validée empiriquement par comparaison avec des valeurs de référence (solution analytique, benchmarks, comparaison avec un autre code, etc.). Cependant, dans le cadre de ces travaux, nous ne nous occupons que des problèmes numériques.

L’analyse et la compréhension des effets de la propagation des erreurs d’arrondi permet d’estimer plus précisément la qualité numérique des résultats d’un calcul effectué avec l’arith-métique flottante. Plusieurs méthodes et outils de validation ont été développés pour étu-dier la propagation d’erreurs d’arrondi. Diverses études ont démontré que la bibliothèque CADNA [Jézéquel et al., 2010,Lamotte et al., 2010] est un outil adapté pour l’étude de la qua-lité numérique des codes industriels [Scott et al., 2007,Moulinec et al., 2011a]. Elle est assez simple à implémenter sur un code séquentiel écrit dans un seul langage (Fortran90, C/C++). Le principal avantage de CADNA se trouve dans sa capacité de localiser les pertes de préci-sion, d’étudier la précision des résultats intermédiaires et finaux et de proposer un véritable diagnostic à la fin des exécutions. Une étude pertinente de ce diagnostic peut alors aider le nu-méricien à proposer des améliorations algorithmiques. Insistons également sur un autre point qui fait de l’outil CADNA un formidable outil de travail pour l’industrie : la longueur du cycle de vie des codes de calcul industriel et le fait qu’ils sont pour la plupart conçus par des scien-tifiques (mécaniciens, neutroniciens, etc) et non par des experts en informatique scientifique. Ce dernier constat justifie l’utilisation du Fortran dans de nombreux codes. Le Code_Aster a par exemple fêté ses 20 ans d’existence en 2009 alors que la première version de la chaîne de calcul COCCINELLE a été mise en place en 1983. Durant toute cette période, le code doit être maintenu, corrigé et amélioré, d’où la nécessité d’un outil facile d’utilisation. Ajoutons aussi que la composante coût financier est un critère non négligeable pour l’industriel.

21. Maxima est un logiciel libre de calcul formel. Il est disponible sous Linux, Mac OS X et Windows. Maxima est sous licence GNU GPL depuis 1998.http://maxima.sourceforge.net/

(30)

1.5. Plan de lecture

Mais, l’outil de validation CADNA peut-il être utilisé dans tous les codes ? Répondre posi-tivement à cette question serait une fabulation. En effet, bien souvent et principalement dans le but d’améliorer leurs performances, les codes de calcul scientifique tels que ceux développés à EDF R&D (Code_Aster, Telemac) font appel à des bibliothèques externes d’échange de don-nées (MPI, BLACS) et/ou de calcul scientifique(BLAS, LAPACK) [Denis et Montan, 2012]. La bibliothèque actuelle CADNA, bien qu’étant un outil efficace pour la validation numérique, ne peut donc être utilisée simplement sur des grands codes industriels. Afin d’étudier le compor-tement numérique d’un code, il faut que celui-ci soit entièrement instrumenté. Il importe donc d’implémenter des extensions compatibles avec l’outil de validation numérique CADNA.

L’implémentation de ces diverses extensions pose un problème de performance, la com-plexité algorithmique et la taille des logiciels de calcul numérique impliquant d’importants temps d’exécution. Il est donc important de chercher à minimiser l’impact de CADNA sur les performances de ces bibliothèques. A titre d’exemple, l’implémentation directe (naïve) de CADNA dans les BLAS ruine les performances en raison des changements de mode d’arrondi intrinsèques à la méthode et de la nécessité d’éliminer les optimisations. Le but de la thèse est donc de lever ce verrou technologique et scientifique en réécrivant les routines des biblio-thèques BLAS, MPI, BLACS et LAPACK utilisant CADNA.

Nous nous proposons, dans le cadre de la thèse, de travailler principalement sur les bi-bliothèques de communications (MPI et BLACS) et les routines de la bibliothèque de calcul BLAS. Nous travaillerons à étendre les fonctionnalités de ces bibliothèques de façon à les rendre compatibles avec l’arithmétique stochastique discrète, arithmétique implémentée dans l’outil CADNA. Nous nous intéresserons particulièrement à une implémentation efficace de la fonc-tion DGEMM des BLAS intégrant CADNA. Dans un second temps, les bibliothèques dévelop-pées seront validées et testées dans certaines fonctionnalités des codes industriels d’EDF R&D, en l’occurrence Telemac-2D. Enfin, nous étudierons la qualité numérique de Telemac-2D. Nous ferons une étude comparative des différents algorithmes compensés et montrerons dans quelle mesure ces derniers peuvent améliorer la précision et la qualité des résultats issus d’une exé-cution d’un code industriel. Nous porterons également une attention particulière à l’impact de ces algorithmes sur les performances des codes.

1.4.3 Environnement

Cette thèse s’inscrit dans le cadre d’une collaboration entre le LIP622(UPMC23) et le dépar-tement SINETICS24d’EDF R&D visant à contrôler la qualité numérique de codes de simulation industriels parallèles. L’aspect novateur de ce travail est de se concentrer sur la qualité numé-rique d’un code industriel avec une contrainte liée à la performance du code.

1.5

Plan de lecture

Nous tâcherons, au fil des pages de ce manuscrit, de vous présenter nos travaux ainsi que nos principaux résultats. Le chapitre 2 passe en revue les principaux outils et méthodes de validation numérique. L’arithmétique IEEE 754, son implémentation sur les architectures ma-térielles et ses conséquences pour la simulation numérique y sont présentés. Le processus de validation numérique pour les acteurs industriels y est également décrit. Ensuite, nous pré-sentons l’outil CADNA et la méthode CESTAC qui sont au cœur de ce travail auchapitre 3.

22. Laboratoire de Paris 6http://www.lip6.fr/ 23. Université Pierre Marie Curiehttp://www.upmc.fr/

(31)

Chapitre 1. Introduction générale

Comme nous l’avons souligné plus tôt, ce travail a pour objectif d’implémenter des extensions à l’outil CADNA. Lechapitre 4est consacré à CADNA_MPI : une extension de CADNA pour le standard de communication MPI. Lechapitre 5retrace nos activités autour de l’implémen-tation de l’arithmétique stochastique dans les bibliothèques de calcul scientifique. Ce chapitre s’intéresse particulièrement aux routines BLAS et à sa fonction DGEMM. Les chapitres 6et7 présentent la validation numérique d’un code industriel avec l’outil CADNA. Dans un premier temps, CADNA est utilisé pour étudier la qualité numérique du code Telemac-2D. A la suite de cette étude, les algorithmes compensés sont introduits. Nous montrons que ces types d’al-gorithmes peuvent être mis à contribution pour améliorer la qualité des résultats produits. Un retour d’expérience de l’utilisation de CADNA est fait dans le chapitre 7. Quelques idées et pistes d’amélioration de l’outil sont également exposées dans ce chapitre. Enfin auchapitre 8, nous terminons par un bilan concret et un retour d’expérience du travail effectué au cours ses trois dernières années enrichissantes passées à EDF R&D.

(32)

Chapitre

2

La validation num´erique : principes et

m´ethodes

(33)

Chapitre 2. La validation numérique : principes et méthodes

Sommaire

2.1 Parce que l’ordinateur n’est pas obligé d’être juste . . . . 19 2.1.1 Du réel au flottant . . . 21

2.1.2 Notion d’arrondi . . . 22

2.1.3 La qualité numérique des calculs . . . 23

2.1.4 Ce que nous devrions tous savoir. . . 24 2.2 L’ordinateur peut être source d’erreur... et alors ? . . . . 26 2.2.1 Analyser l’erreur . . . 27

2.2.2 Éviter l’erreur . . . 29

2.2.3 Détecter l’erreur. . . 30 2.3 La validation numérique en industrie. . . . 31

(34)

2.1. Parce que l’ordinateur n’est pas obligé d’être juste

Nous avons montré dans lechapitre 1que le résultat d’un code de simulation numérique subit plusieurs approximations notamment celles dues à la résolution numérique en arithmé-tique flottante IEEE 754. L’utilisation de cette arithméarithmé-tique peut influencer fortement la fiabilité des résultats en raison des erreurs d’arrondi qu’elle y introduit. De fait, l’étude de la qualité nu-mérique est cruciale pour les codes industriels tels que ceux développés à EDF R&D.

Dans ce chapitre, nous évoquons les principales notions qui nous semblent être indispen-sables pour la conception de logiciels de simulation numérique plus sûrs ou plus fiables. Il existe dans la littérature plusieurs ouvrages (et thèses) qui sont consacrés à ces questions. A titre d’exemple, citons le livre [Muller et al., 2010] qui présente de façon approfondie toutes les notions liées aux nombres à virgule flottante et à leur implémentation sur les architectures contemporaines. Cet ouvrage est d’ailleurs considéré à l’heure actuelle (et à juste titre) comme la référence sur ces sujets parce qu’il traite de l’implémentation de l’arithmétique flottante sur les architectures actuelles et des principaux problèmes qui en découlent. Toutefois, les exemples traités dans la littérature se font généralement d’un point de vue académique sans confronta-tion avec des problèmes issus de l’industrie. Nous nous proposons, dans notre cas, d’apporter une vision industrielle. Notre objectif est de présenter un aperçu succinct de toutes les notions qu’un développeur de logiciel de simulation numérique (code de calcul) doit maîtriser en ce qui concerne l’arithmétique flottante.

Tout au long du chapitre, nous recenserons les ouvrages que nous considérons indispen-sables à l’approfondissement des notions présentées. Outre l’ouvrage de référence [Muller et al., 2010], nous conseillons également les livres [Higham, 2002] pour les aspects liés à la stabilité et à la précision des algorithmes d’algèbre linéaire et [Kulisch et Ebrary, 2008] pour des aspects plus théoriques sur les erreurs d’arrondi. Le lecteur intéressé y trouvera largement son compte.

Plan du chapitre : Nous commençons d’abord par rappeler les principes de l’arithmétique des ordinateurs puis nous nous intéressons aux erreurs d’arrondi et à ces conséquences sur les résultats des simulations (section 2.1). Nous cherchons également à identifier le(s) véritable(s) responsable(s) de ces erreurs. Dans la seconde partie (section 2.2), nous présentons les prin-cipaux outils qui permettent de limiter les erreurs d’arrondi, à leurs plus faibles expressions, sur les résultats des simulations numériques. Enfin, ensection 2.3, nous nous intéressons à la validation numérique dans l’industrie.

2.1

Parce que l’ordinateur n’est pas obligé d’être juste

25

Ainsi, l’ordinateur, ce magnifique outil dont on ne cesse de vanter les mérites n’est pas parfait. Il lui arrive de ne pas calculer juste. Il est d’ailleurs à l’origine de plusieurs tragédies qui ont entraînées des pertes de vie humaines (cas de l’anti-missile Patriot qui a raté l’intersection d’un Scud pendant la guerre d’Irak en 1991)26. Parfois, on gagnerait plus à ne pas avoir une

25. Parce que l’ordinateur n’est pas obligé d’être juste.... Nous avons choisi de commencer cette partie par ces mots en référence à un célèbre roman d’Ahmadou Kourouma intitulé Allah n’est pas obligé. Cette œuvre raconte le périple d’un orphelin Birahima devenu enfant-soldat et de son oncle à travers des pays dévastés par la guerre (Libéria, Guinée, Sierra Leone) et dénonce la cruauté des conditions de vie des enfants-soldats. Le titre a été choisi ainsi car il veut dire qu’«Allah n’est pas obligé d’être juste dans toutes ces choses ici-bas» et ce malgré le nombre astronomique de croyants dans ces pays là.

26. Une liste de catastrophes dus à l’arithmétique flottante est disponible àhttp://dutita0.twi.tudelft.nl/ users/vuik/wi211/disasters.html

(35)

Chapitre 2. La validation numérique : principes et méthodes

confiance aveugle en l’ordinateur car même si notre programme est bien écrit on peut tout de même observer des comportements bizarres. A titre d’exemple, considérons le polynôme ci-dessous proposé dans [Rump, 1988] :

f (x, y) = 333.75b6+ a2(11a2b2− b6− 121b4− 2) + 5.5b8+ a

2b (2.1)

Tableau 2.1 – Évaluation du polynôme de l’équation 2.1pour a = 77617.0 et b = 33096.0 sur une machine IBM 370 et sur un poste fixe HP Z600 avec l’extrait de code 2.1compilé avec GCC 4.6

IBM 370 Z600

simple précision 1.172603 -9.87501233229925472e+29 double précision 1.1726039400531 -1.18059162071741130e+21 précision étendue 1.172603940053178 6.95334866191693095e-310

Lorsqu’on évalue ce polynôme pour a = 77617.0 et b = 33096.0 sur une machine IBM 370, on obtient les résultats de la première colonnetableau 2.1. On pourrait ainsi croire que la simple précision est suffisante. En revanche, cette même évaluation sur notre machine de travail (HP Z600, voirannexe A) donne des résultats complètement contradictoires (tableau 2.1colonne 2). En réalité, le résultat exact est de −0.827396059946821 . . . [Rump, 1988].

Source2.1 – Évaluation du polynôme de Rump en C 1 # include < s t d i o . h > 2 int m a i n (v o i d) 3 { 4 d o u b l e a = 7 7 6 1 7 . 0 ; 5 d o u b l e b = 3 3 0 9 6 . 0 ; 6 d o u b l e b2 , b4 , b6 , b8 , a2 , f i r s t e x p r , f ; 7 b2 = b * b ; 8 b4 = b2 * b2 ; 9 b6 = b2 * b4 ; 10 b8 = b4 * b4 ; 11 a2 = a * a ; 12 f i r s t e x p r = 11* a2 * b2 - b6 - 1 2 1 * b4 - 2 ; 13 f = 3 3 3 . 7 5 * b6 + a2 * f i r s t e x p r + 5 . 5 * b8 + ( a / ( 2 . 0 * b ) ) ; 14 p r i n t f (" R e s u l t a t DP % 1 . 1 7 e \ n ", f ) 15 r e t u r n 0 ; 16 }

En soi, ces problèmes ne constituent pas une véritable surprise. Ils ont pour principale ori-gine le passage d’un ensemble de nombres réels R (ensemble continu) vers l’ensemble des nombres flottants F (ensemble fini). Dans cette première partie, nous nous posons la même question que se posait David Goldberg : What every computer scientist should know about floating-point arithmetic [Goldberg, 1991]. Nous commençons d’abord par présenter l’arithmétique IEEE 754 et ses conséquences sur les résultats des calculs. Nous nous intéresserons ensuite à l’implé-mentation matérielle de la norme. Nous finirons par une liste non exhaustive des algorithmes critiques.

(36)

2.1. Parce que l’ordinateur n’est pas obligé d’être juste

2.1.1 Du réel au flottant

L’arithmétique des nombres réels sur ordinateur est dite arithmétique à virgule flottante27. Un nombre x est représenté en virgule flottante en base β ≥ 2 par un triplet (s, m, e) tel que :

x = (−1)s· m · βe (2.2) où

– s ∈ {0, 1} est son signe (0 pour le positif, 1 pour le négatif) ;

– m est sa mantisse réelle en base β représentée sous la forme d0.d1d2...dp−1et p la précision telle que 0 ≤ di < βet donc 0 ≤ m < β ;

– e son exposant, un entier compris entre eminet emax.

Pendant longtemps, la représentation avait un principe unique, mais il était différent sui-vant le compilateur, le langage ou l’architecture de la machine. Le résultat d’une opération arithmétique différait alors suivant l’ordinateur ou le langage utilisé. Pour harmoniser les résultats, la norme IEEE 754 a été introduite en 1985 [ANSI/IEEE, 1985], puis révisée en 2008 [IEEE Computer Society, 2008]. Cette norme fixe la représentation des nombres et le com-portement des opérations élémentaires pour l’arithmétique à virgule flottante. Cette norme définit également les formats des données, les valeurs spéciales, les modes d’arrondi, la pré-cision des opérations de base et les règles de conversion. Elle a pour objectifs de permettre la conception de programmes portables, de rendre les programmes déterministes d’une machine à une autre, de conserver des propriétés mathématiques et de gérer correctement les arrondis et les conversions.

La norme définit cinq formats de base pour la représentation des flottants :

– en représentation binaire (β = 2) binary32, binary64, binary128 sur respectivement 32, 64 et 128 bits ;

– en représentation décimale (β = 10) decimal64, decimal128.

A ces formats s’ajoutent le binary16 (précision moitié) et decimal32 [IEEE Computer Society, 2008]. Le tableau 2.2récapitule la spécification des trois principaux formats binaires. Tous les formats (binaire et décimal) sont présentés dans le document officiel de la norme [IEEE Com-puter Society, 2008, p.13].

Tableau 2.2 – Les trois principaux formats IEEE 754

Format Appellation Répartition des bits emin emax

signe + mantisse + exposant

binary32 simple précision 1 + 23 + 8 −126 127

binary64 double précision 1 + 52 + 11 −1022 1023

binary128 quadruple précision 1 + 112 + 15 −16382 16383

L’équation 2.2 entraîne plusieurs représentations possibles pour un nombre flottant. Afin d’éviter cela, la représentation normalisée a été définie. La mantisse normalisée m du nombre flottant x est représentée par n+1 bits : m = 1.x1x2x3...xn−1xn

| {z }

f

où les xisont des bits et f (n bits) la partie fractionnaire de m. On a alors : m = 1 + f et 1 ≤ m < 2. Seule la partie fractionnaire

f est stockée physiquement. On parle alors de 1 implicite. La norme introduit également les nombres sous-normaux (dénormalisés) pour représenter les nombres compris entre 0 et 1×2emin.

(37)

Chapitre 2. La validation numérique : principes et méthodes

En effet, on autorise près de 0 des nombres de la forme x = (−1)s× 0.f × 2emin. Dans ce cas de

figure, la mantisse ne respecte pas la règle du 1 implicite et e = emin.

L’exposant e est un entier signé de k bits. La norme IEEE 754 a choisi d’utiliser une représen-tation biaisée stockée avant la mantisse. Cette représenreprésen-tation permet de faire des comparaisons entre flottants dans l’ordre lexicographique (en laissant de coté le signe s) et de représenter le nombre 0 avec e = f = 0. L’exposant stocké physiquement est l’exposant biaisé eb tel que

eb = e + boù b est le biais. Les exposants non biaisés emin− 1 et emax+ 1(respectivement 0 et 2k− 1 en biaisé) sont réservés pour zéro, les dénormalisés et les valeurs spéciales. Les valeurs spéciales sont les infinis et N aN (Not A Number). Quelques exemples de représentations sont présentés dans letableau 2.3.

Tableau 2.3 – Quelques exemples de représentation en simple précision (32 bits).

x s eb m +0 0 00000000 00000000000000000000000 +∞ 0 11111111 00000000000000000000000 2 0 10000000 00000000000000000000000 6.5 0 10000001 10100000000000000000000 2−149 0 00000000 00000000000000000000001

Notons également, que la norme décrit cinq exceptions :

– INVALID operation : en cas d’opération d’arithmétique illicite (comme√−1 ou ∞/∞), le résultat est N aN (Not A Number) ;

– DIVIDE by ZERO : en cas de calcul de x/0 , le résultat est ±∞ ;

– OVERFLOW : lorsque le résultat d’une opération est trop grand en valeur absolue en regard de la borne supérieure de la plage des exposants représentables ;

– UNDERFLOW : lorsque le résultat d’une opération est trop petit en valeur absolue en regard de la borne inférieure de la plage des exposants représentables ;

– INEXACT : lorsque le résultat d’une opération ne peut être représenté exactement, et doit donc être arrondi.

Un mécanisme de 5 drapeaux (flag) permet d’informer le système sur le comportement des opérations arithmétiques.

2.1.2 Notion d’arrondi

Il est impossible de représenter exactement tous les nombres avec la norme IEEE 754. Si

x et y sont deux nombres représentables en machine, alors le résultat d’une opération entre

x et y n’est, en général, pas représentable en machine. On utilise alors une valeur approchée (un arrondi) c’est à dire renvoyer vers un des nombres représentables voisins. L’utilisation de l’arrondi de calcul introduit alors une incertitude dont la propagation peut être source de résultats erronés. Le standard IEEE 754 spécifie quatre modes d’arrondi :

– Arrondi vers +∞ : RU (x) – Arrondi vers −∞ : RD(x) – Arrondi vers 0 : RZ(x)

– Arrondi au plus près : RN (x) le nombre est arrondi à la valeur la plus proche. C’est le mode d’arrondi par défaut.

Les arrondis vers ±∞ ou 0 sont dits arrondis dirigés car ils sont dirigés dans une direction don-née. Une conséquence des différents modes d’arrondis est qu’une fois le mode choisi, le résultat

Figure

Figure 1.1 – Couplage Code_Saturne et SYRTHES pour calculer la distri- distri-bution thermique dans un réacteur
Figure 1.2 – Croissance exponentielle de la performance des supercalculateurs depuis 1990
Figure 1.3 – La figure 1.3a représente une vue 2D d’un modèle de réacteur de type REP 900 MW
Figure 1.4 – Les différentes étapes de la simulation numérique
+7

Références

Documents relatifs

Plus précisément, des demi- contractions (contraction d’une arête par écrasement d’un de ses sommets sur l’autre sommet extrémité) sont utilisées afin de garantir

Si l’on vit dans une société qui, du fait de l’histoire des technologies et de ses institu- tions, a tout misé sur une seule façon de faire, sans avoir développé

Nous croyons pouvoir poser comme hypothèse l’idée que le législateur algérien a fourni certes quelques disciplinaires dans la fonction publique algérienne, mais ces garanties

Notre étude a été réalisée sur les eaux usées de la soitex de Sebdou qui portent une valeur de turbidité important égale à 538 NTU. On a fait une décantation de cette eau et on

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of

Même des outils moins contraignants, comme par exemple Veri- ficarlo [5] qui demande simplement de recompiler le code de calcul (ainsi que de ses dépendances à analyser) avec

Il s’agit donc d’une démarche de comparaison plutôt que de mesure au sens des « sciences exactes » et l’idée qu’un objet a une valeur économique s’il est utile et rare