Upload
leger-bellec
View
104
Download
1
Embed Size (px)
Citation preview
Rennes, le 18 septembre 2006
Support du paradigme maître-travailleur dans les
applications à base de composants
Tâche 2.2
Hinde BouzianeRéunion LEGO
Rennes, le 18 septembre 2006 2
Plan
• Contexte– Paradigme maître-travailleur– Modèles de composants
• Applications maître-travailleur et modèles de composants– Limitations des modèles de composants existants
• Proposition d’un modèle générique– Composition abstraite– Intégration d’un mécanisme de transfert de requêtes
• Cas d’étude: modèle de composants CORBA et DIET• Conclusions et perspectives
Rennes, le 18 septembre 2006 3
Paradigme maître-travailleur
worker
worker
worker
Masterworker
Workers collectionRequests transport
SchedulingFault tolerance
• Plusieurs calculs simultanés et indépendants (boucle ~ForAll)• Environnements/API dédiés
– BOINC, XTremWEB, – DIET, NetSolve, Nimrod/G, ...
Rennes, le 18 septembre 2006 4
Caractéristiques des environnements maître-travailleur
• Scalables• Politiques de transfert de requêtes• Gestion transparente du transport des requêtes• API Dédiées• Seul le paradigme maître-travailleur est supporté
u
PrecipitationSorption
Relargage
ConvectionDispersionAqueous Reactions
Gaz-liquid exchange Dissolution
Biology
Applications multi-paradigmes!!!
Hydrologie
Rennes, le 18 septembre 2006 5
Vers la programmation à base de composants
• Challenges – Simplifier la structure et la programmation– Indépendance du type de ressources
d’exécution• Processeurs multi-core• Machines SMP• Clusters• Grilles
u
Modèles de composants
Rennes, le 18 septembre 2006 6
Modèles de composants
Composantlogiciel
PORTSFOURNI
PORTSREQUIS
(interfaces client)(interfaces serveur)
• Boite noire• Ports
– Invocation de méthodes, événement/messages/streams• Plusieurs modèles de composants
– CORBA Component Model/OMG (CCM)– Common Component Architecture/CCA Forum (CCA)– Fractal/ObjectWeb – Etc.
Rennes, le 18 septembre 2006 7
Modèles de composants
• Assemblage/composition– Instances de composants et
connexions– Architecture Description
Language (ADL)• CCM, Fractal
– Dynamique• CCA, CCM, Fractal
• Déploiement– Installation– Configuration
• Connexions
ADLinstanceComp:
a: A, b: B, c: C, d: D;connections:
a.pA1 <-> b.pB;c.pC <-> d.pD2;d.pD1 <-> a.pA2;
a
b
c
pA1pB
pC
pD2
dpD1
pA2
Rennes, le 18 septembre 2006 8
Exemple d’application maître-travailleur
master
interface Compute { long f (in long value);} ;
Master:ForAll i= 0 to N {
call f (..) on a worker through yellow port;}
worker
Worker: long f (long value) {
// computationreturn res;
}
Rennes, le 18 septembre 2006 9
Limitations des modèles de composants
• Différente infrastructures– Multi-core, SMP, clusters, grilles, etc.
• Propriétés dépendantes des ressources– Nombre de travailleurs– Transport de requêtes et politique
d’ordonnancement
WWworkermaster
mastertransp.
req.WWworker
• A la charge du programmeur– Complexe– Non transparence
master
WWworker
WWworker
Rennes, le 18 septembre 2006 10
Objectifs
• Indépendance de toute infrastructure de ressources• Transparence
– Gestion du nombre de travailleurs– Gestion du transport des requêtes et ordonnancement
• A l’initiative du système– Adaptation du nombre de travailleur au ressources
utilisées – Choix d’une politique d’ordonnancement
• Réutilisation des environnements maître-travailleur existant
Rennes, le 18 septembre 2006 11
Notre modèle générique
Rennes, le 18 septembre 2006 12
Idée générale
Round-Robin
Deploymentenvironment
Système(framework) Round-Robin
Rennes, le 18 septembre 2006 13
Collection de composants
Port fourni exposé
worker
W1 Wn W2 Wi
Collection à l’exécution
Instanciation
Type1 Type3Type2 Type1 T1x Type2 T2y T2y
Type3Type3 T3z
Instanciation
Définition d’une collection
Rennes, le 18 septembre 2006 14
Assemblage abstrait
Composition de composants avec collections
≈
Composition de composants
m
Type1 Type3Type2
X
Rennes, le 18 septembre 2006 15
Assemblage abstrait -> assemblage concret
Vue programmeur
Collection
binding
master
worker
Exposed provided port
Round-Robin
Vue système/plateforme
Resourcesinfrastructure
#workers+
Pattern selection
Set of request transport mechanism patterns
1. Random2. Round-Robin3. NetSolve4. Diet
Rennes, le 18 septembre 2006 16
Patrons de transport de requêtes
w w w
M
Round-Robin / Random
LA
LALA
M
w w w
MA
MAMA
Patron a base de composant
Ordonnancement hiérarchique
Patron DIET
M
Random
w w
Round-Robin Round-Robin
w w
Rennes, le 18 septembre 2006 17
Projection sur CCM
Rennes, le 18 septembre 2006 18
Extension de CCM
• Spécification– Définition des composants
maître et travailleur• Interface Description
Language (IDL3)
• Définition d’une collection en 2 étapes– Vue externe: extension IDL3– Contenu et bindings:
• Collection Description Language (CDL) en format XML
interface Compute {..} ;component master { uses Compute m_port;};component worker { provides Compute w_port;};
collection coll { provides Compute c_port;};
c_port
worker
<element type=“worker"/><binding><externPort portRef=“c_port"/> <internPort elemType=“worker“ port=“w_port"/></binding>
master
worker
w_port
m_port
Rennes, le 18 septembre 2006 19
Implémentation des composants
master
interface Compute { long f (in long value);} ;
Master:ForAll i= 0 to N {
call f (..) on a worker through yellow port;}
worker
Worker: long f (long value) {
// computationreturn res;
}
• Pas d’impacte sur l’implémentation
Rennes, le 18 septembre 2006 20
Assemblage abstrait vers assemblage concret
• Assemblage abstrait – Extension de la DTD de l’ADL de CCM
• Assemblage abstrait -> assemblage concret– Actuellement
• Manuellement : transformation de documents XML
– Future • Outil de déploiement ADAGE (plugin)
– Entrées• ADL abstrait sous format XML
• Patrons de politique de transport de requêtes
– Sortie• ADL concret sous format XML prêt à être déployé
Round-Robin
Rennes, le 18 septembre 2006 21
Utilisation de DIET(stage)
Rennes, le 18 septembre 2006 22
Intégration de Diet (1/2)
LALA LA
MA
maître
glue client /
client Diet
glue serveur /serveur Diet
travailleurs
• Objectif – Transfert des requêtes avec Diet– API Diet transparente au
programmeur• Idée
– Coté maître• Traduire un appel de méthode
sur un port en une requête Diet
– Coté travailleur (le contraire) • Une proposition
– Pseudo composants «glue»
Rennes, le 18 septembre 2006 23
• Optimiser les indirections• Génération automatique des entités «glue»
– A partir des prototypes de fonction (IDL3)
Questions ouvertes (1/2)
MA
Rennes, le 18 septembre 2006 24
• Déploiement– Intégration ADAGE + GoDiet– Entrée
• Description du patron associé à la structure de Diet
– ADL concret• Encapsuler les entités DIET dans des
composants• ADL multi-entités : composants, processus, etc.
Questions ouvertes (2/2)
LALA LA
MA
Rennes, le 18 septembre 2006 25
Conclusions
• Améliorer le support du paradigme maître-travailleur dans les modèles de composants– Indépendance des ressources– Adaptation du nombre de travailleurs et choix d’une
politique de transport de requêtes par le système• Niveau d’abstraction plus élevé
– Collections, ADL abstrait, patrons• Support manuel de Diet
– Entités «glue»
Rennes, le 18 septembre 2006 26
Perspectives
• Mesures de performance– En déduire le type d’application à cibler
• Etude de la dynamicité: ajout de travailleurs (en cours B. Daix)– Support dans ADAGE
• Répondre aux questions ouvertes, principalement sur le déploiement
Rennes, le 18 septembre 2006 27
• Intégration ADAGE + GoDiet• Description du patron associé à la structure de Diet• ADL concret
– ADL multi-entités : composants, processus, etc.– Encapsuler les entités DIET dans des composants
• Autres– Optimiser les indirections– Génération automatique des entités «glue»
• A partir des prototypes de fonction (IDL3)
Questions ouvertes
MA