27
Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

Embed Size (px)

Citation preview

Page 1: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 2: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Ré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

Page 3: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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, ...

Page 4: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 5: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 6: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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.

Page 7: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 8: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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;

}

Page 9: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 10: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 11: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

Rennes, le 18 septembre 2006 11

Notre modèle générique

Page 12: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

Rennes, le 18 septembre 2006 12

Idée générale

Round-Robin

Deploymentenvironment

Système(framework) Round-Robin

Page 13: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 14: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

Rennes, le 18 septembre 2006 14

Assemblage abstrait

Composition de composants avec collections

Composition de composants

m

Type1 Type3Type2

X

Page 15: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 16: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 17: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

Rennes, le 18 septembre 2006 17

Projection sur CCM

Page 18: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 19: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 20: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 21: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

Rennes, le 18 septembre 2006 21

Utilisation de DIET(stage)

Page 22: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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»

Page 23: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 24: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 25: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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»

Page 26: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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

Page 27: Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO

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