La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.

Présentations similaires


Présentation au sujet: "PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03."— Transcription de la présentation:

1 PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03

2 Plan Contexte Problèmes CORBA PaCO++ Conclusion / perspectives

3 Contexte : couplage de code Thermal Optics Dynamics Satellite design Structural Mechanics

4 Caractéristiques de ce type d’application Différents codes s’échangent des données Codes parallèles Dynamique Évolution des codes Différents tests Gourmandes Mémoire Puissance de calcul

5 La grille : un environnement d’exécution Homogeneous cluster SAN Homogeneous cluster LAN WAN Supercomputer Visualisation

6 Problèmes de la grille Différents types de réseaux Différents types de machines Des ressources matérielles différentes entre deux exécutions Il faut que le logiciel puisse s’adapter C’est notre problème ;-) !

7 Problèmes des applications de couplage Différentes équipes Différents : Langages Bibliothèques de communications ( MPI, PVM,...) Applications distribuées et parallèles Dynamicité Complexe Besoin : Exprimer clairement les intéractions Meilleure maintenance

8 Notre objectif Fournir des logiciels permettant de concevoir et d’exécuter ces applications dans de bonnes conditions Projet PARIS : PadicoTM : pb liés à la dynamicité de la grille, à l’hétérogénéité des réseaux et à la cohabitation des middlewares PaCO++, GridCCM : modèle de programmation

9 Que doit fournir l’exécutif Support de différentes machines et réseaux Contrainte venant de la grille Support de différents langages Haute performance Support de codes parallèles Support de codes distribués

10 CORBA Modèle permettant de mettre en oeuvre des applications distribuées Version 2 : Objet Version 3 : Composant Pas de support du parallèlisme PaCO++ : Objet GridCCM : Composant

11 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 ); }; Server Client IDL Stub Object invocation Object Request Broker (ORB) with IIOP IDL Compiler POA IDL Skeleton Object Implementation CORBA v2 Concept d’objets distribués (OMG) Programmation orienté objet Invocation de méthode distante Indépendance: matériel, OS et langage de programmation Indépendance des vendeurs (interopérabilité)

12 CORBA interface objet_distant { void exemple(in Matrice mat); }; Description de l’interface // Récupération du serveur objet_distant * serveur =... // Construction des données... Matrice_var ma_matrice =... // Appel d’une méthode distante serveur->exemple(ma_matrice); Code d’appel chez le client

13 CORBA Envoi de la matrice CORBA : Applicatif : Client Serveur dynamique Optique

14 PaCO++ : scénario 1 Redistribution des données Client Objet Parallèle

15 PaCO++ : scénario 2 Redistribution des données Objet Parallèle

16 Les apports de PaCO++ Flux de communications parallèles Objet Parallèle

17 Les apports de PaCO++ Exprimer la redistribution des données Sous forme de plug-in ( non fourni ;-) !) Objet Parallèle

18 Exemple avec PaCO++ interface objet_distant { void exemple(in Matrice mat); }; Description de l’interface interface objet_distant methode exemple : parallèle argument mat : distribué Description du parallèlisme

19 Génération du code fichier de descriptionUtilisation.idl Générateur CORBA souches CORBA compilateur PaCO++ UtilisationPaCO.idlcode PaCO++

20 Code coté client // Récupération du serveur objet_distant * serveur =...... // Creation de la bibliothèque de distribution serveur->paco_register(ma_bibliothèque_de_redistribution);... // Construction des données... Matrice_var ma_matrice =... // Description des données PaCO::PacoInitData_t data;... // Appel d’une méthode distante serveur->exemple(ma_matrice); Code spécifique à PaCO++

21 Incidence dans les codes de simulations Les données transmises doivent-être décrites en IDL ! Il faut pouvoir décrire la distribution des données dans les codes ! Il vous faut écrire la bibliothèque de redistribution ! Les intéractions sont réalisées à l’aide d’appel de méthode !

22 Composant ? Boite noire Interfaces spécifiées Unité logique indépendante Unité de déploiement Application Assemblage de composants Composant Facette (interface fournie) Réceptacle (interface utilisée) Attributs Producteur d’évènements Composant CORBA Consommateur d’évènements

23 Exemple component C1 : uses I1 component C2 : provides I1 C1 C2 I1 connect_I1(C1,C2) C1 C2 I1

24 Les composants logiciels Programmation par composants Réutilisabilité du code Modularité Unité de déploiement indépendante Industrie du logiciel Gestion des hétérogénéités CORBA, EJB, COM+ Déploiement des codes sur une architecture distribuée Modèle de composant logiciel CORBA

25 GridCCM Version parallèle des composants CORBA Utilisation du code et de l’expérience de PaCO++

26 Prototype de PaCO++ Version Beta Parsers Générateurs Supports de différents ORBs Distribution bloc-cyclique de vecteur En cours Nouvelle interface pour les bibliothèques de redistributions des données

27 Performances

28

29

30 Conclusion Applications complexes Modèle de programmation adapté PaCO++ : extension de CORBA pour le parallèlisme Prototype existant ACI Grid EPSN

31 Perspectives Améliorations de la gestion des données distribuées ARC RedGrid Passage au composant avec GridCCM En réutilisant PaCO++


Télécharger ppt "PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03."

Présentations similaires


Annonces Google