• Aucun résultat trouvé

5.3 Mesure des performances du code DuMu x

5.3.3 Résultats numériques

kxx 0 0 0 kyy 0 0 0 kzz = 9,9505 × 10−12 0 0 0 9,9505 × 10−12 0 0 0 6,8495 × 10−15

5.3.2 Récapitulatif des simulations

Le cas de test présenté dans le paragraphe précédent 5.3.1 est calculé avec des schémas numériques et des types de maillage différents :

• Schéma implicite - ALUGrid,

• Schéma découplé IMPES - ALUGrid, • Schéma implicite - YaspGrid.

Tous les simulations en parallèle sont réalisées sur la grappe de calcul du BRGM, qui comprend 24 nœuds de calcul standard avec 24 cœurs par nœud. À notre connaissance, les simulations parallèles sur un seul nœud de calcul ne donnent pas une accélération suffisamment élevée. Par conséquent, le calcul réalisé sur 24 cœurs, ce qui remplit entiè-rement un nœud de calcul, est choisi comme la référence pour évaluer l’accélération des simulations en parallèle. Nous utilisons respectivement 24, 48, 96, 92 et 384 cœurs pour ces calculs.

Le ratio d’accélération σn pour une simulation sur n cœurs est donné par :

σn= T24

Tn, (5.6)

où Tn est le temps de calcul pour n cœurs. L’efficacité parallèle n est définie par :

n= 24

nσn. (5.7)

5.3.3 Résultats numériques

5.3.3.1 L’effet du schéma numérique

La Figure 5.3 montre la carte de saturation du CO2 après 20 ans d’injection pour les deux schémas numérique implicite (a) et IMPES (b) sur un maillage de type ALUGrid. L’effet de gravité est facilement observé : le CO2, plus léger que la saumure environnante, tends à monter vers le haut pour ensuite s’étaler horizontalement en haut du réservoir. Noter que l’étalement du CO2 à cet endroit pourrait conduire à des risques de fuite à travers des failles non-détectées sur les couches imperméables supérieures.

5.3. Mesure des performances du code DuMux 135

(a)Implicite - ALUGrid (b)IMPES - ALUGrid

Figure 5.3 –Carte de saturation de CO2 après 20 ans d’injection pour les simulations utilisant le schéma implicite (a) et IMPES (b). La direction Z est multipliée par un facteur de 50.

En comparant les deux Figures 5.3a et 5.3b, on voit bien que les profils de saturation calculés par chacun des deux schémas sont quasiment similaires. Cependant, on constate que la largeur du front de saturation au top du réservoir lf dans le schéma implicite est plus grande que celle dans le schéma IMPES. Cela montre que la méthode IMPES conduit à moins de dispersion numérique que la méthode implicite, ce qui peut être expliqué par les pas de temps plus faibles dans le schéma IMPES (Young et al., 1993). Malgré son gain de précision, le schéma IMPES ne montre sa sur-performance par rap-port au schéma implicite que pour de petits maillages (en général < 105 éléments). Dans le cas où le maillage est très gros, comme le notre, le schéma IMPES exige beaucoup plus de pas de temps et le temps de calcul des simulations utilisant IMPES est considé-rablement plus important que celui utilisant le schéma implicite (voir tableau 5.2). En outre, ce tableau montre pour les deux schémas la stabilité du nombre de pas de temps lorsque le nombre de processeurs croit : plus de soixante-dix pour le schéma implicite et plus de six mille pour le schéma IMPES. Cela montre que ces deux schémas numériques fonctionnent correctement en parallèle.

Les résultats en terme d’accélération sont présentés dans la Figure 5.4. Les deux schémas montrent une accélération relativement linéaire jusqu’à 96 cœurs. Pour un nombre de processeurs plus grand, l’efficacité parallèle du code diminue drastiquement, par exemple

3840,32 pour le schéma implicite et 384 ≈0,27 pour le schéma IMPES (Figure 5.5). On aurait espéré de meilleurs chiffres, car même avec 384 processeurs, on a toujours plus de 5 000 degrés de liberté par cœur, ce qui devrait être suffisant pour que le temps de calcul soit plus important que le temps de communication inter-processeurs.

Le résultat du schéma IMPES est le plus décevant car d’autres codes/ outils utilisant cet algorithme pour simuler l’écoulement multiphasique en milieu poreux montrent que le ratio d’efficacité parallèle peut dépasser 1 (voir par exemple Horgue et al. (2015)). Ce

136 Chapitre 5. Simulation numérique de l’injection de CO2 dans des milieux 3D

Implicit-ALUGrid IMPES-ALUGrid

Temps de Nombre de Temps de Nombre de calcul [s] pas de temps calcul [s] pas de temps

24 cœurs 4587,27 76 26655,2 6037

48 cœurs 2503,85 73 14765,7 6037

96 cœurs 1296,53 76 11156,3 6037

192 cœurs 1116,46 73 8358,32 6037

384 cœurs 923,626 73 6283,65 6037

Tableau 5.2 –Temps de calcul et nombre de pas de temps pour deux schémas numérique :

implicite et IMPES.

résultat est néanmoins indicatif car il est très discutable de comparer l’efficacité de deux codes différents sur deux infrastructures différentes. Nous espérons que l’optimisation du paramétrage du solveur linéaire pourrait améliorer l’efficacité parallèle globale. Cet objectif requiert un travail approfondi qui ne rentre pas dans le cadre de cette thèse.

24 48 96 192 384 1 2 4 8 16 Number of cores [−] Speed−up ratio Speedup ratio Optimal

(a)Implicite - ALUGrid

24 48 96 192 384 1 2 4 8 16 Number of cores [−] Speed−up ratio Speedup ratio Optimal (b)IMPES - ALUGrid

Figure 5.4 – Réprésentation log-log de l’accélération pour le cas implicite - ALUGrid(a) et IMPES - ALUGrid (b).

5.3.3.2 L’effet du maillage

La Figure 5.6 montre, pour la simulation sur 24 cœurs, la décomposition de domaines pour deux types de maillages : YaspGrid(a) et ALUGrid (b). On voit bien que la dé-composition de domaines avec YaspGrid prend en compte la forme du milieu global en le divisant en plusieurs sous-domaines parallélépipédiques approximativement égaux. Au contraire, le maillage d’ALUGrid est décomposé de façons aléatoire. Pour assurer une bonne répartition de la charge, le rapport entre les nombres d’éléments dans le sous-domaine plus gros et celui plus petit est contrôlé par un nombre modifiable par l’utilisateur du code. Pour nos cas test, ce chiffre est égal à 1,2.

5.3. Mesure des performances du code DuMux 137 24 48 96 192 384 20 40 60 80 100 Number of cores [−] Parallel efficiency [%]

(a)Implicite - ALUGrid

24 48 96 192 384 20 40 60 80 100 Number of cores [−] Parallel efficiency [%] (b)IMPES - ALUGrid

Figure 5.5 –Efficacité parallèle pour le cas implicite - ALUGrid(a) et IMPES - ALUGrid (b).

(a)YaspGrid (b) ALUGrid

Figure 5.6 –Décomposition de domaines pour la simulation sur 24 cœurs avec YaspGrid (a) et ALUGrid (b).

Le tableau 5.3 présente une comparaison des temps de calcul et du nombre de pas de temps pour les cas Implicite−ALUGrid et Implicite−YaspGrid. On trouve que les simu-lations dans le cas Implicite - YaspGrid sont plus rapides pour 24 cœurs et 48 cœurs, et plus lentes pour un nombre de processeurs plus grand que celles effectuées pour le cas Implicite−ALUGrid.

Regardons maintenant le diagramme du ratio d’accélération et l’efficacité parallèle pour le cas Implicite - YaspGrid (Figure 5.7). Dans cette Figure, on voit que l’accélération est non-linéaire dès le début (n ≤ 96 cœurs). Le ratio d’efficacité 384 est seulement de 25% environ. En comparant avec la valeur 384= 32% pour le cas Implicite - ALUGrid, on peut conclure que le maillage d’ALUGrid est plus efficace que celui d’YaspGrid pour

138 Chapitre 5. Simulation numérique de l’injection de CO2 dans des milieux 3D

des simulations massivement parallèles.

Implicit-YaspGrid Implicit-ALUGrid Temps de Nombre de Temps de Nombre de

calcul [s] pas de temps calcul [s] pas de temps

24 cores 3934,94 76 4587,27 73

48 cores 2175,51 73 2503,85 73

96 cores 1668,16 76 1296,53 73

192 cores 1169,24 73 1116,46 79

384 cores 981,37 73 923,626 75

Tableau 5.3 – Comparaison entre temps de calcul et nombres de pas de temps pour les

cas Implicite-ALUGrid et Implicite-YaspGrid.

24 48 96 192 384 1 2 4 8 16 Number of cores [−] Speed−up ratio Speedup ratio Optimal (a) 24 48 96 192 384 20 40 60 80 100 Number of cores [−] Parallel efficiency [%] (b)

Figure 5.7 – Réprésentation log-log de l’accélération (a) et efficacité parallèle (b) pour le cas Implicite - YaspGrid.