Environnements logiciels pour la simulation num - PowerPoint PPT Presentation

About This Presentation
Title:

Environnements logiciels pour la simulation num

Description:

Title: Institut National de Recherche en Informatique et en Automatique Subject: Diapo present. INRIA Description: Version 5 (26 dia) en fran ais Demande 7/04/98 pour ... – PowerPoint PPT presentation

Number of Views:110
Avg rating:3.0/5.0
Slides: 29
Provided by: inr82
Category:

less

Transcript and Presenter's Notes

Title: Environnements logiciels pour la simulation num


1
Environnements logiciels pour la simulation
numérique distribuée
  • Thierry Priol (IRISA/INRIA)

Metacomputing
2
Simulation à grande échelle
  • La façon dont les sociétés collaborent évolue
  • La compétence scientifique et technique se
    verticalise
  • La conception dun système physique nécessite
    limplication de plusieurs acteurs industriels
    experts sur un domaine
  • Utilisation de plus en plus importante du
    prototypage virtuel (par la simulation numérique)
    imposée par des règles de sécurité de plus en
    plus strictes (certification, compatibilité
    électromagnétique, )
  • Besoins daméliorer la qualité de la simulation
  • Simulation multi-physiques par couplage de
    plusieurs codes de calcul

3
Exemple dapplications de simulation
multi-physiques
Même physique mais sur deux objets physiques
simulés à deux endroits différents
Electromagnétisme
Antenne
Avion
Plusieurs physiques nécessitant plusieurs codes
de simulation
Conception de pneus
Déformation de structure
Déformation de structure
Thermique
Réduction de bruit
Dynamique
Optique
4
Emergence dun nouveau domaineLa simulation
numérique distribuée
  • Utilisation simultanée de plusieurs technologies
  • Parallélisme
  • Nécessité dutiliser des calculateurs
    haute-performance
  • Machine vectorielle, CC-NUMA, SMP, Grappe)
  • Distribution
  • Prise en compte de la distribution géographique
    des codes imposée pour des raisons de
    confidentialité ou plus simplement par des
    contraintes de disponibilité de ressources
  • Visualisation
  • La visualisation doit faire partie intégrante de
    la simulation
  • Exploitation et interprétation coopérative des
    résultats de la simulation multi-physique

5
Support à la simulation numérique distribuée
WAN
Middleware
Visualisation IRISA
Code parallèle de simulation
Application de simulation numérique distribuée
6
Extension des bibliothèques de communication pour
le réparti
  • Passerelle de communication entre bibliothèques
  • PACX, NEXUS, MPI_Connect MPI ó MPI
  • PLUS MPI ó PVM
  • Avantages
  • peu de modifications des codes
  • Inconvénients
  • pas de hiérarchisation des communications
  • applications de plus en plus complexes
  • transfert de contrôle à programmer
  • performance !!!

MPI_Send
MPI_recv()
PACX, NEXUS MPI_Connect INTERNET
7
Objets distribués
  • Utilisation du concept dobjet distribué (CORBA,
    Java)
  • Programmation par objet à travers un réseau de
    façon transparente
  • Vers une programmation par composants logiciels
  • Avantages
  • Réduire la complexité par une approche
    hiérarchique
  • Inconvénients
  • Performance des courtiers dobjets
  • Nécessite des extensions pour supporter des
    objets parallèles

interface MatrixOperations const long SIZE
100 typedef double Vector SIZE typedef
double Matrix SIZE SIZE void multiply(in
Matrix A, in Vector B, out Vector
C )
Serveur
Compilateur IDL
Client
Implémentation de l objet
Invocation de l objet
Squelette IDL
Talon IDL
BOA
Courtier dobjets (ORB)
8
Pourquoi CORBA pour la simulation numérique ?
  • CORBA commence à être utilisé dans les outils de
    CAO
  • Couplage de la simulation avec les outils de CAO
    dans un futur proche
  • De nombreuses implémentations de CORBA sont
    disponibles
  • Produits commerciaux, Open Source, ...
  • Interopérabilité assurée entre les différentes
    implémentations
  • Interfaçage avec Java (grâce au protocole IIOP)
  • CORBA permet de réduire le temps passé au
    développement des systèmes distribués
  • Relativement simple à utiliser
  • Contre les idées reçus...
  • CORBA nest pas très performant vrai pour la
    latence, faux pour le débit (on peut saturer une
    interface Fast-ethernet ou ATM 155 Mbit/s)

9
Encapsulation de codes parallèles au sein
dobjets CORBA
  • Approche Maître/Esclave
  • Un des processus dun code SPMD agit comme un
    maître alors que les autres processus sont des
    esclaves
  • Le processus maître contrôle lexécution des
    autres processus au travers de MPI
  • Inconvénient
  • Une approche pas très  scalable 
  • Nécessite des modifications des codes à
    encapsuler
  • Avantage
  • Ne nécessite pas de modification à CORBA

Code MPI encapsulé
Couche de communication MPI
SPMD code
Processus MPI maître
Client
Squel.
Processus MPI esclaves
BOA
Talon
Courtier dobjet s (ORB)
10
Concept dobjet CORBA parallèle
  • Objectif
  • Encapsuler un code parallèle au sein dun
    composant CORBA
  • Assurer la  scalabilité  des interactions entre
    objets CORBA parallèles

Supercalculateur
Objet CORBA parallèle
interface2n MatrixOperations const long
SIZE 100 typedef double VectorSIZE
typedef double MatrixSIZESIZE void
multiply(in distBLOCK Matrix A,
in Vector B, out distBLOCK
Vector C ) void skal(in distBLOCK Vector C,
out csum double skal)
Spécification IDL-Etendu pour objet CORBA
parallèle
MPI Communication layer
Machine A
Object
Object
Object
Object
impl
.
impl
.
impl
.
impl
.
SPMD
SPMD
SPMD
SPMD
code
code
code
code
Client
Compilateur IDL-Etendu
Squel.
.
Qquel.
Squel.
.
Squel.
.
Talon
PBOA
PBOA
PBOA
PBOA
Courtier d objets (ORB)
  • Fait lobjet dune contribution à un RFI de l OMG

11
Avantage de lapproche objet CORBA parallèle
Machine B Application MPI
Machine A Application MPI
  • Extension MPI
  • Communication entre deux machines via des nœuds
    de communication (goulot détranglement!)
  • La bande passante entre les deux machines est aux
    maximum celle associée à un nœud
  • Objet CORBA parallèle
  • Communication entre objets appartenant aux
    collections
  • Permet de saturer des réseaux à très haut-débits
    qui assure linterconnexion des machines

MPI_Send
MPI_recv()
PACX
Application MPI
Application MPI
Objet CORBA parallèle
Parallel CORBA Object
Couche de communication MPI
Couche de communication MPI
...
Code SPMD
Code SPMD
Code SPMD
...
Squel.
.
Squel.
.
Squel.
.
...
Talon
Talon
Talon
PBOA
PBOA
PBOA
12
IDL-Etendu
Héritage interdit
  • Héritage dinterfaces
  • Autorisé mais avec des restrictions
  • Distribution de données
  • Plusieurs modes proches de ceux du langage HPF
  • BLOCK, BLOCK( taille ), CYLIC, CYLIC( taille )
  • Autorisée sur des tableaux ou des séquences
  • Opérations de réduction
  • Plusieurs opérateurs proches de ceux de MPI
  • min, max, addition, multiplication, logique, bit.
  • Seulement sur des types scalaires

13
Problèmes liés à la génération de codes
(talonssquelettes)
  • Nouveau type pour la distribution de données
     distributed array 
  • Le volume de données à transférer nest connu
    quà lexécution
  • Extension des séquences CORBA
  • Le mode de distribution de donnée est enregistré
    dans la structure dun  distributed array 
  • Génération du squelette
  • Permettre laccès au mode de distribution pour
    chaque argument dune opération
  • Génération du talon
  • Distribution et récupération des données
  • Invocation multiples

14
Génération des talons
... pco-gtmultiply( A, B, C ) ...
client
Objet CORBA parallèle
void multiply( const Matrix A,
const Vector B, Vector C )
Couche de communication MPI
SPMD code
SPMD code
Talon
void multiply( const Matrix_DArray A,
const Vector_DArray B,
Vector_DArray C )
Squel.
Squel.
void multiply( const Matrix_Seq A,
const Vector_Seq B, Vector_Seq C
)
PBOA
PBOA
CORBA ORB
15
Objet CORBA parallèle comme client
Client parallèle
Serveur séquentiel
  • Génération du talon lorsque le client est
    lui-même un objet CORBA parallèle
  • Association des références aux objets du serveur
    aux objets du client
  • Redistribution des données au sein du talon afin
    de respecter le mode de distribution du coté du
    serveur

Objet CORBA parallèle
Couche de communication MPI
Object impl.
Code SPMD
Code SPMD
Code SPMD
Squel.
Talon
Talon
Talon
BOA
Courtier dobjets (ORB)
Serveur parallèle
Objet CORBA parallèle
Couche de communication MPI
Code SPMD
Code SPMD
Code SPMD
Squel..
Squel..
Squel..
PBOA
PBOA
PBOA
Courtier dobjets (ORB)
16
Service de nommage
  • Tel que défini par lOMG
  • Offre des méthodes pour référencer un objet par
    un nom symbolique
  • Associe un nom symbolique avec une référence à un
    objet et une seule
  • Avec les objets CORBA parallèles
  • Associe un nom symbolique à une collection de
    références dobjets
  • Contraintes dimplementations
  • Utilisation du service de nommage de CORBA sans
    modifier linterface existante
  • orb-gtresolve_initial_reference(NameService)
  • Solution proposée
  • Ajouter de nouvelles opérations à linterface du
    service de nommage.

17
Extensions au service de nommage
module CosNaming ... interface
NamingContext ... typedef
sequenceltObjectgt ObjectCollection void
join_collection( in Name n, in Object obj )
void leave_collection( in Name n, in Object obj
) ObjectCollection resolve_collection( in
Name n )
Extension de la spécification IDL du CosNaming
Exemple
Coté serveur
MatrixOps_impl obj new MatrixOps_impl() Naming
Service-gtjoin_collection( Matrix_name, obj
) ... NamingService-gtleave_collection(
Matrix_name, obj )
Coté client
objs NamingService-gtresolve_collection(
Matrix_name ) srv MatrixOps_narrow( objs
) ... srv-gtMatVect( A, B, C )
18
Mise en œuvre des objets CORBA parallèles
  • Utilisation de MICO
  • Bibliothèques spécifiques
  • Nouvelles classe dobjet objet CORBA parallèle
  • Distribution de données (NEC, DALIB)
  • Compilateur IDL-Etendu
  • Modifications de lanalyseur et du parseur
  • Génération de codes
  • Plate-forme expérimentale
  • Grappe de PC Nec Cenju-4

Grappe PC Gigabit Ethernet
Nec Cenju4
Grappe PC -SCI
19
Evaluation de performance
Code 2
Code 1
Couche de cimmunication MPI
Couche de communication MPI
Ordonnanceur
  • Approche maître/esclaves
  • Transfert de données par fichiers
  • fichier ASCII
  • fichier XDR
  • Transfert de données par le courtier dobjets
  • Objet CORBA parallèle
  • Transfert de données par le courtier dobjets

Client
Processus MPI maître
Processus MPI maître
Talon 2
Talon 1
Processus MPI esclaves
Processus MPI esclaves
Courtier d objets (ORB)
Code 1
Code 2
Objet CORBA parallèle
Objet CORBA parallèle
Couche de communication MPI
Couche de communication MPI
...
...
...
...
...
...
Courtier dobjets (ORB)
...
Ordonnanceur parallèle
Couche de communication MPI
20
Evaluation de performance
256x256
512 x 512
ms
ms
4000
16000
3500
14000
12000
3000
10000
2500
8000
2000
6000
1500
4000
1000
2000
500
0
0
ASCII
1
2
4
8
16
1
2
4
8
16
XDR
Nombre dobjets appartenant à la collection
Nombre d'objets appartenant à la collection
ORB
PCO
1024 x 1024
2048 x 2048
ms
ms
70000
300000
60000
250000
50000
200000
40000
150000
30000
100000
20000
50000
10000
0
0
1
2
4
8
16
1
2
4
8
16
Nombre dobjets appartenant à la collection
Nombre dobjets appartenant à la collection
21
Couplage de codes avec le concept dobjets CORBA
parallèle
  • Couplage de deux instances dun même code de
    simulation dans le domaine de lélectromagnétisme
  • Applet Java pour contrôler lexécution du code
  • Réalisé en quelques jours (sauf applet Java.)

22
un environnement logiciel fondé
sur CORBA
  • Conception dun environnement logiciel pour la
    simulation numérique distribuée
  • Développement dun exécutif fondé sur des
    standards existants (CORBA, Java, MPI)
  • Fournir un environnement de travail coopératif
    afin de permettre à plusieurs experts danalyser
    les résultats de la simulation
  • Permettre la visualisation en temps réel par
    rapport à la simulation numérique.
  • Offrir des techniques dencapsulation de codes
    pour CORBA

LAN
LAN
PCs Stations de travail
Grappes
WAN
Machine parallèle
23
Environnements logiciels basés sur CORBA pour la
simulation numérique
  • Projets Esprit RD
  • JACO3,
  • JULIUS,
  • DECISION,
  • Projets nationaux
  • TENT (DLR - Germany)
  • ILIADE (EDF - France)
  • VPCE (Cardiff Univ. - UK),
  • Projets industriels
  • Atelier CORBA pour la conception aérodynamique
    des appareils AIRBUS

24
Architecture logicielle
  • Un ensemble de services CORBA pour supporter
    lexécution parallèle et distribuée

Environnement JACO3
Application Control Panel
Activation Service
User Session Service
Visualisation tools
JACO3 Software Bus
Information Repository Service
Controls
Application components
Code coupling tool
Application scheduler
Computing Resource Allocation Service
Data Repository Service
Applications
25
Architecture du DRS
  • Un ensemble dobjets CORBA pour permettre le
    transfert de fichier entre plusieurs systèmes de
    gestion de fichiers
  • Transfert de fichiers à la demande (avec FTP, FTP
    Kerberos)
  • Un fichier est associé à un propriétaire, un nom
    unique et un type
  • Conversion de fichiers réalisée à laide de
     plug-ins  (en utilisant des scripts PERL)
  • Le service principal pour la production de
    données pour les outils de visualisation

IIOP (Register)
IIOP (event)
IIOP (eventdata)
IIOP (Register)
IIOP
IIOP
IIOP
FTP
26
Encapsulations de code de simulation
  • Encapsulation de codes commerciaux ou développés
    en interne
  • Le code source nest pas disponible
  • Pas de correspondances entre le langage IDL et
    les langages de programmation (Fortran, )
  • Solution conception dun  wrapper  générique
    fondésur TCL et Expect
  • Encapsulation de codes parallèles
  • Couplage efficaces entre codes parallèles
  • Utilisation du concept dobjet CORBA parallèle

27
Encapsulation de codes binaires
  • Fondé sur l utilisation d un objet C
    générique (wrapper)
  • Linterface avec lobjet  wrapper  est spécifié
    avec le langage IDL
  • La spécilisation est effectué par un script de
    configuration (TCL/Expect)
  • Un client peut invoquer des opération sur lobjet
     wrapper  comme tout autre objet CORBA
  • Lutilisation du langage TCL offre une grande
    flexibilité
  • La bibliothèque TCL Expect permet de décrire
    facilement les interactions avec le code de
    simulation

Code de simulation
Interpréteur TCL
Script de configuration
Code Binaire
invocation
Client
réponse
Objet  wrapper 
Objet serveur
Courtier dobjets (ORB)
28
Conclusion
  • La simulation numérique distribuée nest pas une
    nouvelle mode mais correspond à un réel besoin
  • Académique scientifique
  • explorer de nouveaux domaines grâce à la
    simulation numérique
  • Industriel économique
  • nouveaux modèles économiques (verticalisation des
    métiers, fusion, )
  • Recherches dans ce domaine
  • Système (communicaiton, répertoire de données,
    sécurité, gestion de ressources, )
  • Modèles de programmation
  • Concept dobjet CORBA parallèle des problèmes à
    résoudre
  • Localisation de la distribution des données (chez
    le client ou le serveur ?)
  • Modèle de composants pour la construction
    dapplications
  • Expérimentations (ARC couplage, VTHD, )
Write a Comment
User Comments (0)
About PowerShow.com