SALOME une plate-forme de simulation pour le calcul scientifique

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

SALOME une plate-forme de simulation pour le calcul scientifique 07 novembre 2006 SALOME une plate-forme de simulation pour le calcul scientifique Vincent LEFEBVRE & André RIBES EDF R&D

Sommaire Présentation générale Architecture de la plate-forme Conclusions & perspectives

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

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 Supervision Solver CAD System Visualization http://www.salome-platform.org

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

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

Une 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

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

Applications métiers au CEA & à EDF Neutronique Matériaux Plate-formes métiers Thermo-Hydraulique Déchets Combustible nucléaire Mécanique Plate-forme d’intégration (pré/post et supervision)

Cas d’utilisation Plate-forme SALOME pour Code_ASTER 1: Géométrie 2 : Maillage 3 : Paramétrage de données & lancement de l’exécution de Code_ASTER 4 : Post-traitement

Supervision de couplage Cas d’utilisation Couplage RTV– neutronique, cœur thermo-hydraulique, système thermo-hydraulique Supervision de couplage Pre-processing Post-processing

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

Services + modèle de programmation 07 novembre 2006 Vue d’ensemble IHM Superviseur Modules Géométrie Maillage Post-Pro Mise en donnée Physique 2 Physique 1 Modèle Persistant MED Noyau Services + modèle de programmation Études

Vue d’ensemble Un module contient 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

07 novembre 2006 Vue d’ensemble Exemple avec la plate-forme SALOME pour Code_ASTER à partir de l’IHM graphique Géométrie Maillage Mise en donnée Code_ASTER Post-Pro

Vue d’ensemble 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

Modèle d’exécution de SALOME 07 novembre 2006 Modèle d’exé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++ Fortran C++ Interface C/Fortran Wrapping Composant CORBA-SALOME Composant Python Interface SWIG Python Composant C++ CORBA

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 Container Composant Services de la plate-forme

Modèle d’exécution de SALOME 07 novembre 2006 Modèle d’exécution de SALOME Le noyau SALOME fournit des gestionnaires de Containers (cycle de vie des composants) Ressources Machine Container Resource Allocator fournir une machine (critères, charge) Naming Service ContainerManager Registry getMachine(critères) Création, destruction Composant 1 inst1 Étude instance 2 Composant 2 LifeCycleCORBA Instanciation findContainer(…) loadContainer(…) findComponent(…) loadComponent(…) Catalogue ressources Superviseur Lancement 1 2 3 4 5 6

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 commun d’échange

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) 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

Modèle d’échange de données MED est utilisé par les modules de pré/post-traitement de la plate- forme SALOME Maillage Visualisation

Supervision et couplage 07 novembre 2006 Supervision 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 l’exécution de schémas de calcul D’unités de contrôle (Boucle, Switch,…) De services SOLVERS Post processing pre Supervision CAD modelling meshing

Supervision et couplage 07 novembre 2006 Supervision et couplage 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 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 Contrôle Donnée Contrôle + donnée Gate Service 1 Service 2 Gate Gate

Supervision et couplage 07 novembre 2006 Supervision 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 Contrôle Donnée Contrôle + donnée Service 1 Service 2 String a String a Objet b Objet b Gate Gate Gate Gate

Supervision et couplage 07 novembre 2006 Supervision 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 Contrôle Donnée Contrôle + donnée Gate Service 2 Objet b String a Tabb e Taba f Gate Service 1 String a Objet b Taba c Tabb d

Supervision et couplage 07 novembre 2006 Supervision 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)

Sommaire Présentation générale Architecture de la plate-forme Conclusions & perspectives

Conclusions & Perspectives V5.1 fin 2008 3 V4.1 - fin 2007 Phase de Déploiement 2 V 3.2 - mai 2006 Industrialisation V 3.1 - dec. 2005 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 d’interpolation multi-domaines Découpage de maillages V 2.1 - dec. 2004 1 V 1.2 - dec. 2003 1er projet SALOME Procédures d’installation automatique, Tests d’environnement de non régression, Documentation, Tutorials… Évolutions GEOM, MESH, SUPERV, VISU Démonstrations de couplage de codes Environnement d’aide d’intégration de code V 0.9 - oct. 2002