Title: PaCO
1PaCO
- André Ribes
- Réunion Hydrogrid
- Rennes 15/09/03
2Plan
- Contexte
- Problèmes
- CORBA
- PaCO
- Conclusion / perspectives
3Contexte couplage de code
Structural Mechanics
Optics
Thermal
Dynamics
Satellite design
4Caractéristiques de ce type dapplication
- Différents codes séchangent des données
- Codes parallèles
- Dynamique
- Évolution des codes
- Différents tests
- Gourmandes
- Mémoire
- Puissance de calcul
5La grille un environnement dexécution
LAN
SAN
Homogeneous cluster
WAN
SAN
Supercomputer
Homogeneous cluster
6Problè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 sadapter
- Cest notre problème -) !
7Problè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
8Notre objectif
- Fournir des logiciels permettant de concevoir et
dexécuter ces applications dans de bonnes
conditions - Projet PARIS
- PadicoTM pb liés à la dynamicité de la grille,
à lhétérogénéité des réseaux et à la
cohabitation des middlewares - PaCO, GridCCM modèle de programmation
9Que doit fournir lexé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
10CORBA
- 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
11CORBA v2
- Concept dobjets 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é)
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
IDL Compiler
Client
Object Implementation
Object invocation
IDL Skeleton
IDL Stub
POA
Object Request Broker (ORB) with IIOP
12CORBA
interface objet_distant void exemple(in
Matrice mat)
Description de linterface
// Récupération du serveur objet_distant
serveur ... // Construction des
données ... Matrice_var ma_matrice ... //
Appel dune méthode distante serveur-gtexemple(ma_m
atrice)
Code dappel chez le client
13CORBA
Envoi de la matrice
CORBA
Client
Serveur
dynamique
Optique
Applicatif
14PaCO scénario 1
Redistribution des données
Objet Parallèle
15PaCO scénario 2
Redistribution des données
Objet Parallèle
Objet Parallèle
16Les apports de PaCO
- Flux de communications parallèles
Objet Parallèle
Objet Parallèle
17Les apports de PaCO
- Exprimer la redistribution des données
- Sous forme de plug-in ( non fourni -) !)
Objet Parallèle
Objet Parallèle
18Exemple avec PaCO
interface objet_distant void exemple(in
Matrice mat)
Description de linterface
interface objet_distant methode exemple
parallèle argument mat distribué
Description du parallèlisme
19Génération du code
20Code coté client
// Récupération du serveur objet_distant
serveur ... ... // Creation de la bibliothèque
de distribution serveur-gtpaco_register(ma_biblioth
èque_de_redistribution) ... // Construction des
données ... Matrice_var ma_matrice ... //
Description des données PaCOPacoInitData_t
data ... // Appel dune méthode
distante serveur-gtexemple(ma_matrice)
Code spécifique à PaCO
21Incidence 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 à laide dappel
de méthode !
22Composant ?
Facette (interface fournie)
Consommateur dévènements
- Boite noire
- Interfaces spécifiées
- Unité logique indépendante
- Unité de déploiement
- Application
- Assemblage de composants
Composant
Producteur dévènements
Réceptacle(interface utilisée)
Attributs
Composant CORBA
23Exemple
I1
I1
component C1 uses I1 component C2
provides I1
C2
C1
I1
C2
C1
connect_I1(C1,C2)
24Les 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
25GridCCM
- Version parallèle des composants CORBA
- Utilisation du code et de lexpérience de PaCO
26Prototype 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
27Performances
28Performances
29Performances
30Conclusion
- Applications complexes
- Modèle de programmation adapté
- PaCO extension de CORBA pour le parallèlisme
- Prototype existant
- ACI Grid EPSN
31Perspectives
- Améliorations de la gestion des données
distribuées - ARC RedGrid
- Passage au composant avec GridCCM
- En réutilisant PaCO