Title: SALOME une plate-forme de simulation pour le calcul scientifique
1- SALOME une plate-forme de simulation pour le
calcul scientifique
Vincent LEFEBVRE André RIBES EDF RD
2Sommaire
- Présentation générale
- Architecture de la plate-forme
- Conclusions perspectives
3Sommaire
- Présentation générale
- Quest-ce que SALOME ?
- Objectifs
- Principales fonctionnalités
- Une réalisation Open Source
- Applications métiers au CEA à EDF
- Cas dutilisation
- Architecture de la plate-forme
- Conclusions perspectives
4Quest-ce que SALOME ?
- SALOME
- Plate-forme dintégration pré/post-traitement et
de couplage de codes pour la simulation numérique - Produite en open source dans le cadre des
projets RNTL SALOME SALOME2 et des projets de
co-dévelopement CEA-EDF PAL NEPAL
http//www.salome-platform.org
5Objectifs
- Faciliter linteropérabilité entre la
modélisation CAO et les codes de calculs - Faciliter lintégration entre les codes de
calculs dans un environnement distribué
hétérogène - Fournir une interface utilisateur générique
simple, efficace et qui contribue à la réduction
des coûts de recherche et des délais - Regrouper la production des développements non
critiques (pré et post traitement) dans une base
commune de simulation numérique
6Principales fonctionnalités
- Importer/exporter des géométries,
réparer/nettoyer des géométries, créer/modifier - Mailler des géométries, contrôler la qualité,
importer/exporter - Manipuler les propriétés physiques et numériques
des éléments de géométries - Gérer les différentes étapes dutilisation dun
solveur recevoir les données, configurer le
solveur, renvoyer les résultats - Exécuter lenchaînement et le couplage entre les
solveurs - Visualiser et post-traiter les résultats
7Une réalisation Open Source
- SALOME 1 2 RNTL 2001-2006, consortium de 9
21 partenaires Open Source, - Dernière version de référence 3.2 sortie en
juin 2006
8Une réalisation Open Source
- Adhésion aux standards open source
- Linux, Qt, VTK, C, OmniORB/CORBA, HDF5, Python
- Distribution sous les termes de la licence GNU
LGPL - Possibilité de définir des solutions
propriétaires ou commerciales - Possibilité dintégrer des composants métiers qui
ne sont pas open source
9Applications métiers au CEA à EDF
Neutronique
Matériaux
Plate-formes métiers
Thermo-Hydraulique
Déchets
Combustible nucléaire
Mécanique
Plate-forme dintégration
(pré/post et supervision)
10Cas dutilisation
Plate-forme SALOME pour Code_ASTER
1 Géométrie
2 Maillage
3 Paramétrage de données lancement de
lexécution de Code_ASTER
4 Post-traitement
11Cas dutilisation
Couplage RTV neutronique, cœur
thermo-hydraulique, système thermo-hydraulique
Supervision de couplage
Pre-processing
Post-processing
12Sommaire
- Présentation générale
- Architecture de la plate-forme
- Vue densemble
- Modèle dexécution
- Modèle déchange de données
- Supervision et couplage
- Conclusions perspectives
13Vue densemble
IHM
Superviseur
14Vue densemble
- Un module contient
- Un ou plusieurs programmes
- Chaque programme peut être divisé en deux parties
- Moteur (composant SALOME) contient la partie
calcul - IHM constitue un lien entre lIHM de SALOME et le
moteur du module - Par défaut, CORBA assure le lien entre lIHM et
le moteur - Exemples
- Géométrie
- 1 moteur et 1 IHM
- Maillage
- Plusieurs moteurs (différents algorithmes) 1
IHM - Une application métier construite sous SALOME va
permettre à lutilisateur denchaîner des modules
à partir - De lIHM graphique (GUI),
- Dun script python (TUI)
- Dun schéma de calcul piloté par le superviseur
15Vue densemble
- Exemple avec la plate-forme SALOME pour
Code_ASTER à partir de lIHM graphique
Géométrie
Maillage
Mise en donnée
Code_ASTER
Post-Pro
16Vue densemble
- SALOME sappuie sur des pré-requis techniques
- Architecture distribuée CORBA
- Langages de programmation et de script C
Python - IHM graphique Qt
- Persistance des données HDF5
- SALOME fournit également un ensemble de services
- Généraux fournis par le noyau
- Gestion des données détudes
- Modèle dexécution distribué basé sur CORBA
- Déchange de données entre modules
- Modèle déchange MED
- De supervision (module de supervision)
- Enchaînements et couplages
17Modèle dexécution de SALOME
- Un module contient un ou plusieurs composants
SALOME - Un composant SALOME
- Extension des objets CORBA
- On distingue 2 types de composants dans SALOME
- Python C
18Modèle dexécution de SALOME
- Les composants SALOME sont hébergés dans des
containers - Processus hébergeant une ou plusieurs instances
dobjets SALOME - Gestion du cycle de vie des composants (création,
destruction)
19Modèle dexécution de SALOME
- Le noyau SALOME fournit des gestionnaires de
- Containers (cycle de vie des composants)
- Ressources
20Modèle déchange de données
- MED Modèle déchange de données commun
- Standardisation des échanges de données entre
modules SALOME - Basé sur la notion de champ sur maillage
21Modèle déchange de données
- Mode de représentation et daccès aux données du
modèle MED dans un module (code de calcul)
Inter-processus
Communication en mémoire (CORBA)
Représentation et accès aux données du modèle
directement en mémoire ou sur fichier
Code de calcul
Communication par fichier (HDF 5)
Fichier HDF 5
22Modèle déchange de données
- MED est utilisé par les modules de
pré/post-traitement de la plate-forme SALOME - Maillage
- Visualisation
23Supervision et couplage
- Objectifs du module de supervision de la
plate-forme - Conception visuelle des schémas de calculs et de
couplage - Utilisation de solveurs et de services de SALOME
(géométrie, maillage, ) - Exécution et contrôle dans un environnement
distribué - La supervision dans SALOME se base sur la notion
de service - Représente une fonctionnalité ou un composant (ou
une sous partie) - Le module de supervision permet de contrôler et
suivre lexécution de schémas de calcul - Dunités de contrôle (Boucle, Switch,)
- De services
24Supervision et couplage
- Notion de service
- Un service est une boîte noire vis-à-vis des
autres services - Il définit des données dentrées et des données
de sorties - Description dun service
- Une opération contenue dans le fichier IDL
(interface CORBA) du composant - Un fichier XML du composant contenant la
description des ports - Une application de simulation numérique est
constituée dun ensemble de services connectés
par le biais de leur ports - Port de contrôle workflow
- Port de données datastream
- Port contrôle données dataflow
- Ces différents types de ports permettent de
définir catégories dapplications numériques - Chaînage et couplage faible workflow et
dataflow - Couplage fort datastream
25Supervision et couplage
- Port de contrôle (workflow)
- Par le biais des ports nommés gate
- Permet dexprimer lenchaînement de différents
services - Tous les services ont deux gates
Service 2
Gate
Gate
26Supervision et couplage
- Port de contrôle et données (dataflow)
- Transfert des données par les connexions a-a et
b-b - Transfert du contrôle de service 1 à 2
Service 1
Service 2
String a
String a
Objet b
Objet b
Gate
Gate
Gate
Gate
27Supervision et couplage
- Port de données (datastream)
- Taba est transféré du service 1 au 2 par la
connexion d-e - Tabb est transféré du service 2 au 1 par la
connexion f-c
28Supervision et couplage
- Dans un schéma de calcul
- Les structures de contrôle Loop Switch sont des
nœuds spéciaux qui contrôlent dynamiquement les
flux de données - Tous les modules de Salomé peuvent être utilisés
(Géométrie, Maillage, Post-traitement, calcul)
29Sommaire
- Présentation générale
- Architecture de la plate-forme
- Conclusions perspectives
30Conclusions Perspectives
Phase de Déploiement
Industrialisation
Gestion des ressources (hétérogènes) Supervision
de couplage de composants parallèles Gestion de
maillages distribués Visualisation des gros
volumes de données Outils dinterpolation
multi-domaines Découpage de maillages
1er projet SALOME
Procédures dinstallation automatique, Tests
denvironnement de non régression, Documentation,
Tutorials Évolutions GEOM, MESH, SUPERV,
VISU Démonstrations de couplage de
codes Environnement daide dintégration de code