Post on 04-Apr-2015
1Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
SALOME une plate-forme de simulation pour le calcul scientifique
Vincent LEFEBVRE & André RIBES
EDF R&D
2Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Sommaire
Présentation générale
Architecture de la plate-forme
Conclusions & perspectives
3Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Sommaire
Présentation générale
Qu’est-ce que SALOME ?
Objectifs
Principales fonctionnalités
Une réalisation « Open Source »
Applications métiers au CEA & à EDF
Cas d’utilisation
Architecture de la plate-forme
Conclusions & perspectives
4Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Qu’est-ce que SALOME ?
SALOME
Plate-forme d’inté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
Post
CAD Interface
CAD modeling
Cleaning Properties
Meshing
Su
pervision
SolverCAD
System
Visualization
http://www.salome-platform.org
5Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Objectifs
Faciliter l’interopérabilité entre la modélisation CAO et les codes de calculs
Faciliter l’inté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
6Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Principales 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 d’utilisation d’un solveur : recevoir les données, configurer le solveur, renvoyer les résultats
Exécuter l’enchaînement et le couplage entre les solveurs
Visualiser et post-traiter les résultats
7Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
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
Une réalisation « Open Source »
8Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Une 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é d’intégrer des composants métiers qui ne sont pas open source
9Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Applications métiers au CEA & à EDF
Plate-forme d’intégration
Neutronique
Thermo-Hydraulique
Combustible nucléaire
Matériaux
Déchets
(pré/post et supervision)
Mécanique
Plate-formesmétiers
10Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Cas d’utilisationPlate-forme SALOME pour Code_ASTER
3 : Paramétrage de données & lancement de l’exécution de Code_ASTER
4 : Post-traitement
2 : Maillage
1: Géométrie
11Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Cas d’utilisation
Couplage RTV– neutronique, cœur thermo-hydraulique, système thermo-hydraulique
Pre-processing
Supervision de couplage
Post-processing
12Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Sommaire
Présentation générale
Architecture de la plate-forme
Vue d’ensemble
Modèle d’exécution
Modèle d’échange de données
Supervision et couplage
Conclusions & perspectives
13Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Vue d’ensemble
Services + modèle de programmationServices + modèle de programmation
ÉtudesÉtudes
IHMIHM
Modules
NoyauModèle
Persistant
MED
SuperviseurSuperviseur
GéométrieGéométrie
MaillageMaillage
Post-ProPost-ProMise en donnéeMise en donnée
Physique 2Physique 2
Physique 1Physique 1
14Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Vue d’ensemble
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 l’IHM de SALOME et le moteur du
module• Par défaut, CORBA assure le lien entre l’IHM 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 à l’utilisateur d’enchaîner des modules à partir
• De l’IHM graphique (GUI),
• D’un script python (TUI)
• D’un schéma de calcul piloté par le superviseur
15Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Vue d’ensemble
Exemple avec la plate-forme SALOME pour Code_ASTER à partir de l’IHM graphique
GéométrieGéométrie MaillageMaillage
Post-ProPost-Pro
Mise en donnéeMise en donnée Code_ASTERCode_ASTER
16Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
SALOME s’appuie 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 d’exé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
Vue d’ensemble
17Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
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++
Modèle d’exécution de SALOME
FortranC++
C++Interface C/Fortran
Wrapping ComposantCORBA-SALOME
Composant Python
Interface SWIG
Python
FortranC++
C++Interface C/Fortran
Wrapping ComposantCORBA-SALOME
Composant C++
CORBA CORBA
18Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Modèle d’exécution de SALOME
Les composants SALOME sont hébergés dans des « containers » Processus hébergeant une ou plusieurs instances d’objets
SALOME Gestion du cycle de vie des composants (création, destruction)
Utilisateur Application-client
Couche de communication
ContainerComposant
Composant
Services de la plate-formeComposant
Container
19Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Modèle d’exécution de SALOME
MachineMachineMachineMachine
MachineMachineContainerContainer
ContainerContainer
Resource Allocator- fournir une machine
(critères, charge)
Resource Allocator- fournir une machine
(critères, charge)
Naming ServiceNaming Service
ContainerManagerContainerManager
RegistryRegistry
getMachine(critères)
Création, destruction
Composant 1 inst1
Composant 1 inst1
Composant 1 inst1
Composant 1 inst1
Étude
Composant 1 instance 2
Composant 1 instance 2
Composant 2 instance 2
Composant 2 instance 2
LifeCycleCORBALifeCycleCORBA Instanciation
findContainer(…)loadContainer(…)
findComponent(…)loadComponent(…)
CatalogueressourcesCatalogueressources
SuperviseurSuperviseur
Lancement
1
2 3
45
6
Le noyau SALOME fournit des gestionnaires de
Containers (cycle de vie des composants)
Ressources
20Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Modè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
Code 2(format E/S 2)
Code 3(format E/S 3)
Code 4(format E/S 4)
Code 1(format E/S 1)
Format commund’échange
21Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Modèle d’échange de données
Mode de représentation et d’accès aux données du modèle MED dans un module (code de calcul)
Communicationen mémoire
(CORBA)
Inter-processus
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
22Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Modèle d’échange de données
MED est utilisé par les modules de pré/post-traitement de la plate-forme SALOME
Maillage
Visualisation
23Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
SOLVERS
Post
processing
pre
processing
SupervisionCAD
modellingmeshing
SOLVERSSOLVERS
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 l’exécution de schémas de calcul
• D’unités de contrôle (Boucle, Switch,…)
• De services
Supervision et couplage
24Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Notion de service• Un service est une boîte noire vis-à-vis des autres services
• Il définit des données d’entrées et des données de sorties
• Description d’un 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 d’un 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 d’applications numériques
• Chaînage et couplage faible : workflow et dataflow
• Couplage fort : datastream
Supervision et couplage
25Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Supervision et couplage
Port de contrôle (workflow)• Par le biais des ports nommés « gate »
• Permet d’exprimer l’enchaînement de différents services
• Tous les services ont deux gates
Gate GateGate Gate
Service 1 Service 2
Contrôle
Donnée
Contrôle + donnée
26Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
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
Gate Gate Gate Gate
Service 1 Service 2
String a
Objet b Objet b
String a
Contrôle
Donnée
Contrôle + donnée
Supervision et couplage
27Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
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
Contrôle
Donnée
Contrôle + donnée
Gate Gate
Service 2
Objet b
String a
Tabb e Taba f
Gate Gate
Service 1
String a
Objet b
Taba c Tabb d
Supervision et couplage
28Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Supervision et couplageDans 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)
29Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Sommaire
Présentation générale
Architecture de la plate-forme
Conclusions & perspectives
30Ecole CEA-EDF-INRIA – Calcul scientifique intensif – 07 novembre 2006
Industrialisation
V 0.9 - oct. 2002
V 1.2 - dec. 2003
V 2.1 - dec. 2004
V 3.1 - dec. 2005
1er projet SALOME
Phase de Déploiement
2
1
3
Procédures d’installation automatique,Procédures d’installation automatique,Tests d’environnement de non régression,Tests d’environnement de non régression,Documentation, Tutorials…Documentation, Tutorials…
Évolutions GEOM, MESH, SUPERV, VISUÉvolutions GEOM, MESH, SUPERV, VISUDémonstrations de couplage de codesDémonstrations de couplage de codesEnvironnement d’aide d’intégration de codeEnvironnement d’aide d’intégration de code
Gestion des ressources Gestion des ressources (hétérogènes)(hétérogènes)Supervision de couplage de Supervision de couplage de composants parallèlescomposants parallèlesGestion de maillages distribuésGestion de maillages distribuésVisualisation des gros volumes Visualisation des gros volumes de donnéesde donnéesOutils d’interpolation multi-Outils d’interpolation multi-domainesdomainesDécoupage de maillagesDécoupage de maillages
V 3.2 - mai 2006
Conclusions & Perspectives
V4.1 - fin 2007
V5.1 fin 2008