Chaire UNESCO - Calcul numérique intensif HYDROGEOLOGIE COUPLAGE DE CODES J. Erhel – INRIA / RENNES É. Canot - INRIA / RENNES A. Ribes – INRIA / Rennes Chaire UNESCO - Calcul numérique intensif TUNIS - Mars 2004
Plan Introduction Modèles de programmation sur une grille de calcul Application en hydrogéologie Conclusion
Couplage de code Ecoulement Transport Mécanique Chimie Thermique
Caractéristiques Echange de données Volumes importants et échanges assez fréquents Temps de calcul et espace mémoire Simulations 3D, calcul transitoire, systèmes linéaires creux
Exemple : insertion d’eau salée écoulement pression et vitesse liées à la concentration de sel transport concentration de sel liée à la vitesse
Grille de calcul SAN LAN Homogeneous cluster WAN SAN Visualisation Supercomputer Homogeneous cluster
Couches logicielles d’une grille
Support de l’exécutif Réseaux hétérogènes Machines hétérogènes et structure dynamique Plusieurs modèles de programmation Parallélisme et distribution
Applications en hydrogéologie Couplage de phénomènes physiques Un code = un phénomène physique Codes parallèles Intrusion d’eau salée Transport réactif Milieux fracturés Projet Hydrogrid, de l’ACI-GRID
Programmation d’une grille de calcul Introduction Couplage et distribution de composants logiciels Composants logiciels en hydrogéologie Conclusion
Les composants logiciels Unité logique indépendante Unité de déploiement Interfaces spécifiées facette réceptacle FOURNI REQUIS puits d’évènement attributs
Assemblage de composants I1 I1 component C1 : uses I1 component C2 : provides I1 C1 C2 I1 connect_I1(C1,C2) C1 C2
Composants et grilles de calcul Code modulaire Distribution des composants Modèle de composant CORBA Modèle de composant parallèle GridCCM Un composant par grappe Ecoulement Mécanique Homogeneous cluster Transport Homogeneous cluster Thermique Chimie Homogeneous cluster Homogeneous cluster Homogeneous cluster
Composants parallèles Redistribution des données Flux de communications parallèles
Hydrogéologie et grilles de calcul Introduction Couplage et distribution de composants logiciels Composants logiciels en hydrogéologie Conclusion
Composants et hydrogéologie un code = un composant logiciel Couplage numérique = distribution des composants Composants parallèles
Intrusion d’eau salée Écoulement : vitesse et pression fonction de la densité Densité fonction de la concentration en sel Transport du sel par convection (vitesse) et diffusion-dispersion (vitesse)
(schéma itératif à chaque pas de temps ) Intrusion d’eau salée contrôleur Transport Ecoulement t = 0 t = Δt (schéma itératif à chaque pas de temps ) temps
composant composant Transport Ecoulement Intrusion d’eau salée Contrôleur (scalaires) (scalaires) vitesse composant Transport composant Ecoulement concentration
Transport réactif en milieu poreux Echange liquide-gaz Dispersion Dissolution Précipitation Sorption Relargage Biologie u Convection Réactions en solution
(schéma itératif à chaque pas de temps) Transport réactif N espèces temps t = 0 t = Δt contrôleur Transp. 2 Transp. 1 Chimie ... ... (schéma itératif à chaque pas de temps)
composant Transport composant Transport composant Transport composant Transport réactif composant Contrôleur composant Transport composant Transport composant Transport composant Transport composant Chimie composant Transport (i) concentration(i) i : espèce
Très grand nombre de fractures Méthode de sous-domaines Réseau de fractures Très grand nombre de fractures Méthode de sous-domaines
composant Ecoulement composant fracture(i) Ecoulement composant Réseau de fractures composant Contrôleur composant Ecoulement fracture(i) composant Ecoulement fracture(i) composant Ecoulement fracture(i) composant Ecoulement fracture(i) composant Ecoulement fracture(i) composant Ecoulement fracture(i) composant Ecoulement fracture (i) composant réseau de liens vitesse pression i : fracture
Couplage de composants Chimie Ecoulement Transport Transport réactif Réseau de fractures Eau salée
Composant écoulement Calcul de la densité Calcul de la matrice et du second membre Résolution du système linéaire Calcul de la vitesse Composant parallèle
Composant écoulement Calcul des matrices : METIS Minimiser les interfaces et équilibrer les tâches proc #0 proc #1 proc #2
Composant écoulement Résolution des systèmes linéaires
Améliorer les performances ? Composant écoulement Ordre du système = O(n) Améliorer les performances ? 3D ?
Composant transport Convection : calcul explicite et limiteur Dispersion : calcul de la matrice et du second membre Résolution du système linéaire Composant parallèle
Composant chimie Équilibre chimique en chaque point du maillage Parallélisme trivial Équilibrage de charge ?
Distribution des données Eau salée : écoulement-transport Partitions identiques ou différentes
Distribution des données transport-chimie Un composant transport par espèce avec partition du maillage Un composant chimie avec plusieurs espèces par points transport chimie transport transport
Distribution des données réseau de fractures Un composant écoulement par fracture avec partition de maillage Structure locale à la fracture / structure globale du réseau
Conclusion et perspectives Composants logiciels adaptés au couplage multi-physique Distribution de composants indépendants Parallélisation des composants par METIS et MUMPS Améliorer les performances Développer les composants avec Corba et GridCCM Simulations 3D