28
Environnements logiciels pour la simulation numérique distribuée * Thierry Priol (IRISA/INRIA) * Metacomputing

Environnements logiciels pour la simulation numérique distribuée *

  • Upload
    sabine

  • View
    45

  • Download
    5

Embed Size (px)

DESCRIPTION

Environnements logiciels pour la simulation numérique distribuée *. Thierry Priol (IRISA/INRIA). * Metacomputing. Simulation à grande échelle. La façon dont les sociétés collaborent évolue: La compétence scientifique et technique se «verticalise» - PowerPoint PPT Presentation

Citation preview

Page 1: Environnements logiciels  pour la  simulation numérique distribuée *

Environnements logiciels pour la

simulation numérique distribuée *

Thierry Priol (IRISA/INRIA)

* Metacomputing

Page 2: Environnements logiciels  pour la  simulation numérique distribuée *

Simulation à grande échelle

La façon dont les sociétés collaborent évolue: La compétence scientifique et technique se «verticalise» La conception d’un système physique nécessite l’implication 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 d’améliorer la qualité de la simulation Simulation multi-physiques par couplage de plusieurs codes de calcul

Page 3: Environnements logiciels  pour la  simulation numérique distribuée *

Exemple d’applications de simulation multi-physiques

Même physique mais sur deux objets physiques simulés à deux endroits différents

Plusieurs physiques nécessitant plusieurs codes de simulation

Antenne Avion

Déformation de structure

Thermique

Optique

Dynamique

Electromagnétisme

Déformation de structure

Réduction de bruit

Conception de pneus

Page 4: Environnements logiciels  pour la  simulation numérique distribuée *

Emergence d’un nouveau domaine:La simulation numérique distribuée

Utilisation simultanée de plusieurs technologies : Parallélisme

• Nécessité d’utiliser 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

Page 5: Environnements logiciels  pour la  simulation numérique distribuée *

VisualisationIRISA

Middleware

Code vectorielde simulation

processus processusprocessus

processusprocessusprocessus

Code parallèlede simulation

processus

Code devisualisation

Application de simulation numérique distribuée

Support à la simulation numérique distribuée

SP2 CINESO2000

CCH

C90IDRIS

Code parallèlede simulation

processusprocessus

processusprocessusprocessus

WAN

Page 6: Environnements logiciels  pour la  simulation numérique distribuée *

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

Application MPI

PLUS +INTERNET

pvm_recv()

Application PVM

Application MPI

PACX, NEXUSMPI_Connect +

INTERNET

MPI_recv()

Application MPI

MPI_Send

Page 7: Environnements logiciels  pour la  simulation numérique distribuée *

Objets distribués

Utilisation du concept d’objet 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 d’objets 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

Client

Talon IDL

Invocation de l ’objet

Courtier d’objets (ORB)

CompilateurIDL

BOA

Squelette IDL

Implémentationde l ’objet

Page 8: Environnements logiciels  pour la  simulation numérique distribuée *

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 n’est 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)

Pourquoi CORBA pour la simulation numérique ?

Page 9: Environnements logiciels  pour la  simulation numérique distribuée *

Encapsulation de codes parallèles au sein d’objets CORBA

Approche Maître/Esclave Un des processus d’un code SPMD

agit comme un maître alors que les autres processus sont des esclaves

Le processus maître contrôle l’exé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

CodeSPMD

Couche de communication MPI

Code MPI encapsulé

Processus MPI esclaves

Pro

cess

us

MP

I m

aîtr

e

CodeSPMD

CodeSPMD

CodeSPMD

CodeSPMD

CodeSPMD

SPMDcode

Squel.

BOATalon

Client

Courtier d’objet s (ORB)

Page 10: Environnements logiciels  pour la  simulation numérique distribuée *

Concept d’objet CORBA parallèle

Objectif Encapsuler un code parallèle au sein d’un composant CORBA Assurer la « scalabilité » des interactions entre objets CORBA parallèles

Courtier d ’objets (ORB)

Talon

Client

SpécificationIDL-Etendupour objet

CORBA parallèle

CompilateurIDL-Etendu

Machine AMPI Communication layer

Squel..

PBOA

Objectimpl.SPMDcode

Qquel.

PBOA

Objectimpl.SPMDcode

Squel..

PBOA

Objectimpl.SPMDcode

Squel..

PBOA

Objectimpl.SPMDcode

Supercalculateur

Objet CORBA parallèle

interface[*:2*n] MatrixOperations {

const long SIZE = 100;

typedef double Vector[SIZE];

typedef double Matrix[SIZE][SIZE];

void multiply(in dist[BLOCK][*] Matrix A,

in Vector B,

out dist[BLOCK] Vector C );

void skal(in dist[BLOCK] Vector C,

out csum double skal);

};

Fait l’objet d’une contribution à un RFI de l ’OMG

Page 11: Environnements logiciels  pour la  simulation numérique distribuée *

Avantage de l’approche objet CORBA parallèle

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 l’interconnexion des machines

PACX

MPI_recv()

Machine BApplication MPI

Machine AApplication MPI

MPI_Send

Courtier d’objets (ORB)

Couche de communication MPI

Squel..

PBOA

Impl.Objet

CodeSPMD

Objet CORBA parallèle

Squel..

PBOA

Squel..

PBOA

Application MPI

...

...

...

Couche de communication MPI

Parallel CORBA Object

CodeSPMD

Talon

CodeSPMD

Talon

CodeSPMD

Talon

Application MPI

Impl.Objet

CodeSPMD

Impl.Objet

CodeSPMD

Page 12: Environnements logiciels  pour la  simulation numérique distribuée *

IDL-Etendu

Héritage d’interfaces 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

interface[ 2 ] VectorOperations { ... };

interface[ * ] MatrixOperations : VectorOperations { ... };

Héritage interdit

Page 13: Environnements logiciels  pour la  simulation numérique distribuée *

Problèmes liés à la génération de codes (talons+squelettes)

Nouveau type pour la distribution de données: « distributed array » Le volume de données à transférer n’est connu qu’à l’exécution Extension des séquences CORBA Le mode de distribution de donnée est enregistré dans la structure d’un

« distributed array »

Génération du squelette Permettre l’accès au mode de distribution pour chaque argument d’une

opération

Génération du talon Distribution et récupération des données Invocation multiples

Page 14: Environnements logiciels  pour la  simulation numérique distribuée *

Génération des talons

void multiply(in dist[BLOCK][*] Matrix A,

in Vector B,

out dist[BLOCK] Vector C );

Tal

on

...pco->multiply( A, B, C );...cl

ien

t

Couche decommunication

MPI

Objet CORBA parallèle

SPMDcode

Squel.

PBOA

SPMDcode

Squel.

PBOA

CORBA ORB

A

BC

#2

C

A

B

Requests

A

BC

#1

void multiply( const Matrix A, const Vector B, Vector C );

void multiply( const Matrix_Seq A, const Vector_Seq B, Vector_Seq C );

void multiply( const Matrix_DArray A, const Vector_DArray B, Vector_DArray C );

Page 15: Environnements logiciels  pour la  simulation numérique distribuée *

Objet CORBA parallèle comme client

Courtier d’objets (ORB)

Couche de communication MPI

Objet CORBA parallèle

CodeSPMD

Talon

CodeSPMD

Talon

CodeSPMD

Talon

Squel.

BOA

Objectimpl.

Serveur séquentiel

Client parallèle

Couche de communication MPI

Objet CORBA parallèle

CodeSPMD

Squel..

PBOA

CodeSPMD

Squel..

PBOA

CodeSPMD

Squel..

PBOA

Courtier d’objets (ORB)

Serveur parallèle

Couche de communication MPI

Objet CORBA parallèle

CodeSPMD

Talon

CodeSPMD

Talon

CodeSPMD

Talon

Client parallèle

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

Page 16: Environnements logiciels  pour la  simulation numérique distribuée *

Service de nommage

Tel que défini par l’OMG 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 d’objets

Contraintes d’implementations Utilisation du service de nommage de CORBA sans modifier l’interface

existante:orb->resolve_initial_reference(NameService);

Solution proposée Ajouter de nouvelles opérations à l’interface du service de nommage.

Page 17: Environnements logiciels  pour la  simulation numérique distribuée *

Extensions au service de nommagemodule CosNaming { ... interface NamingContext { ... typedef sequence<Object> 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 ); };};

MatrixOps_impl* obj = new MatrixOps_impl();NamingService->join_collection( Matrix_name, obj );...NamingService->leave_collection( Matrix_name, obj );

objs = NamingService->resolve_collection( Matrix_name );srv = MatrixOps::_narrow( objs );...srv->MatVect( A, B, C );

Coté serveur

Coté client

Extensionde la spécificationIDL du CosNaming

Exemple:

Page 18: Environnements logiciels  pour la  simulation numérique distribuée *

Mise en œuvre des objets CORBA parallèles

Utilisation de MICO Bibliothèques spécifiques

Nouvelles classe d’objet: objet CORBA parallèle

Distribution de données (NEC, DALIB)

Compilateur IDL-Etendu Modifications de l’analyseur et du

parseur Génération de codes

Plate-forme expérimentale Grappe de PC + Nec Cenju-4

Nec Cenju4Grappe PC

Gigabit Ethernet Grappe PC -SCI

Page 19: Environnements logiciels  pour la  simulation numérique distribuée *

Evaluation de performance

Approche maître/esclaves Transfert de données par

fichiers• fichier ASCII

• fichier XDR

Transfert de données par le courtier d’objets

Objet CORBA parallèle Transfert de données par le

courtier d’objets

Courtier d ’objets (ORB)

Talon 2

Client

Ordonnanceur

Couche de cimmunication MPI

Squel..2

BOA

Code 2

SPMDCodeSPMD

CodeSPMDCodeSPMD

CodeSPMDCodeSPMD

CodeCodeSPMD

Processus MPI esclavesPro

cess

us M

PI

maî

tre

Couche de communication MPI

Squel.1

BOA

Code 1

SPMDCodeSPMD

CodeSPMDCodeSPMD

CodeSPMDCodeSPMD

CodeCodeSPMD

Processus MPI esclavesPro

cess

us M

PI

maî

tre

Talon 1

CodeSPMD

CodeSPMD

Courtier d’objets (ORB)

Couche de communication MPI

Squel..

PBOA

Objectimpl.SPMDcode

Objet CORBA parallèle

Squel..

PBOA

Objectimpl.SPMDcode

Squel..

PBOA

Objectimpl.SPMDcode

Squel..

PBOA

Objectimpl.SPMDcode

Couche de communication MPI

Squel..

PBOA

Objectimpl.SPMDcode

Objet CORBA parallèle

Squel..

PBOA

Objectimpl.SPMDcode

Squel..

PBOA

Objectimpl.SPMDcode

Squel..

PBOA

Objectimpl.SPMDcode

Code 1 Code 2

...

...

...

...

...

...

Couche de communication MPI

...Client

Talon 1 Talon 2

Client

Talon 1 Talon 2

Ordonnanceurparallèle

Page 20: Environnements logiciels  pour la  simulation numérique distribuée *

Evaluation de performance256x256

0

5001000

15002000

2500

30003500

4000

1 2 4 8 16Nombre d'objets appartenant à la collection

ms

ASCIIXDRORBPCO

512 x 512

02000

40006000

800010000

1200014000

16000

1 2 4 8 16Nombre d’objets appartenant à la collection

ms

1024 x 1024

0

10000

20000

30000

40000

50000

60000

70000

1 2 4 8 16Nombre d’objets appartenant à la collection

ms 2048 x 2048

0

50000

100000

150000

200000

250000

300000

1 2 4 8 16Nombre d’objets appartenant à la collection

ms

Page 21: Environnements logiciels  pour la  simulation numérique distribuée *

Couplage de codes avec le concept d’objets CORBA parallèle

Couplage de deux instances d’un même code de simulation dans le domaine de l’électromagnétisme

Applet Java pour contrôler l’exécution du code

Réalisé en quelques jours (sauf applet Java….)

Page 22: Environnements logiciels  pour la  simulation numérique distribuée *

: un environnement logiciel fondé sur CORBA

Conception d’un environnement logiciel pour la simulation numérique distribuée

Développement d’un exécutif fondé sur des standards existants (CORBA, Java, MPI)

Fournir un environnement de travail coopératif afin de permettre à plusieurs experts d’analyser les résultats de la simulation

Permettre la visualisation en temps réel par rapport à la simulation numérique.

Offrir des techniques d’encapsulation de codes pour CORBA

Software bus

Code desimulation

process processusprocessusprocessusprocessusprocess

Code de simulationhaute-performance

process

Code de visualisation

PCs & Stations de

travail

Grappes

Visualisation

LAN

WAN

Machine parallèle

LAN

Page 23: Environnements logiciels  pour la  simulation numérique distribuée *

Environnements logiciels basés sur CORBA pour la simulation numérique

Projets Esprit R&D 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

Page 24: Environnements logiciels  pour la  simulation numérique distribuée *

Architecture logicielle

Un ensemble de services CORBA pour supporter l’exécution parallèle et distribuée

ActivationService

Information RepositoryService

User & SessionService

ApplicationcomponentsApplication

scheduler

Applications

Environnement JACO3

Codecoupling

tool

Visualisationtools

Controls

Application ControlPanel

Computing Resource Allocation Service

Data RepositoryService

JACO3 Software Bus

Données = FTPContrôle = CORBA IIOP

JACO3 Software bus

VisualORB

Page 25: Environnements logiciels  pour la  simulation numérique distribuée *

Architecture du DRS

Un ensemble d’objets 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 à l’aide de « plug-ins » (en utilisant des scripts PERL)

Le service principal pour la production de données pour les outils de visualisation

Nœud maître

LAN

LDRS

GDRS

LDRS

LDRS

FTP

IIOP

IIOP IIOP

Visualisation

IIOP(event)IIOP

(Register)

LDRSVisualisationpar le WebIIOP

(Register)

IIOP(event+data)

Page 26: Environnements logiciels  pour la  simulation numérique distribuée *

Encapsulations de code de simulation

Encapsulation de codes commerciaux ou développés en interne Le code source n’est pas disponible Pas de correspondances entre le langage IDL et les langages de

programmation (Fortran, …) Solution: conception d’un « wrapper » générique fondé

sur TCL et Expect

Encapsulation de codes parallèles Couplage efficaces entre codes parallèles Utilisation du concept d’objet CORBA parallèle

Page 27: Environnements logiciels  pour la  simulation numérique distribuée *

Encapsulation de codes binaires Fondé sur l ’utilisation d ’un objet C++ générique (wrapper)

L’interface avec l’objet « 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 l’objet « wrapper » comme tout autre objet CORBA

L’utilisation du langage TCL offre une grande flexibilité

La bibliothèque TCL Expect permet de décrire facilement les interactions avec le code de simulation

invocation

Objet « wrapper »

Interpréteur TCL

CodeBinaire

Courtier d’objets (ORB)

réponse

Script deconfiguration

Client

Code de simulation

Objet serveur

Page 28: Environnements logiciels  pour la  simulation numérique distribuée *

ConclusionLa simulation numérique distribuée n’est 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 d’objet 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 d’applications

• Expérimentations (ARC couplage, VTHD, …)