BenjaminDepardon
Sous ladiretiond'Eddy Caron(ÉNS-Lyon/INRIA/LIP)
et
Christian Pérez (IRISA/INRIA)
Février- Juin 2007
Déploiement générique d'appliations
sur plates-formes hétérogènes réparties
Résumé
Lesgrillesdealulsontdessystèmesdistribués hétérogènesdeplusenplusutiliséspourexéu-
ter des appliations de alul sientique. Seulement lesexpérienes à largeéhelle néessitentdes
moyenssimplesetautomatiséspourséletionnerlesressouresàutiliser,puisinstalleretexéuterles
appliationsanderendreaessibleettepuissanedealulàdesutilisateursnonexpertseninfor-
matique.Auunoutilnepermetpourl'instantdeouvrirl'intégralitéduproessusdedéploiement,le
plusgrosmanquesesituantauniveaudesalgorithmesd'attributionderessouresauxappliations.Il
estdonindispensabledeproposerdenouveauxalgorithmeseaes.Parmileslogiielsdedéploie-
mentAdageesteluiquis'annoneleplusprometteur.Notrebutestderajouterdesalgorithmesde
déploiementauseind'Adage.Leproblèmequenousherhonsàrésoudreestdetrouverundéploie-
mentquiminimiselesommuniations,répartitlahargedefaçonéquitableentrelesproesseurs,et
maximiselenombred'instanesdesappliationsdéployées.
Mots-lés :Grillede alul,déploiement, plaement,intergiiel, équilibrage de harge
1 Introdution
Le alul haute performane onsiste en la résolution de problèmes néessitant une grande puis-
sanede aluletde stokage.Ces problèmes sont par exemple dessimulations pour vérier un modèle
théorique, de l'analyse de signaux, de laprévision météorologique, de l'analyse d'images médiales, de
la détermination de formes de protéines, et. Ces problèmes peuvent être onstitués d'un ensemble de
travauxtotalement indépendants(formesdesprotéines),ouàl'opposéd'unensembled'appliationsfor-
tement ouplées requérant desommuniations (simulations météorologiques ave un ouplage entre le
modèledel'atmosphèreetlemodèledesoéans).Siesalulsontétéprinipalementmenéspendantun
temps surdesordinateursmassivementparallèles, l'émergenedesréseauxhaut-débitapermisl'agréga-
tion de ressouresde alulhétérogènes en grappes, puisen grilles dealul [12 ℄.Les grillesorent une
puissanedealulonséquente auxutilisateurs,maisellen'orepaslemême environnement homogène
quiestprésent surlessuperalulateurs.Seposealors leproblèmeduhoixdesressourespourexéuter
les appliations : en fontion de e hoix les performanes peuvent fortement varier (variation de la
quantitéetduoûtdesommuniations,variationdelapuissanedealuloerte,et.).Lesutilisateurs
adaptésleurpermettantd'utiliserleursappliationsleplussimplement etdanslesmeilleuresonditions,
sansqu'ilssoient expertsen informatique.
Le déploiement d'appliations sur une plate-forme onsiste à séletionner, puis à attribuer des
ressoures de alul àes appliations. Atuellement, les appliations sientiques sont biensouvent
déployées demanière manuelle :le hoix desressoures,leur attribution àune appliation,puis l'instal-
lationetlelanement desappliationsrestent àlahargede l'utilisateur.Ilexiste desoutils permettant
de simplier ela, maisertains restent spéiques à une appliation [1, 6℄, d'autres seveulent plus gé-
nériques et traitent un ensemble d'appliations quelonques [5, 19 ℄. Tous es outils ne ouvrent pas le
même spetre d'undéploiement etassez peu proposent des méthodes pour attribuer automatiquement
lesressoures auxappliations. Notrebut est deonevoirdes algorithmespermettant d'automatiser la
générationdu plande déploiement.
Nousonsidéronsunensemblede
n
appliationsàdéployersurlagrille,esappliationspeuventêtre soit séquentielles, soit parallèles, soit enore des appliations hiérarhiques. Pour haune d'elle, nousdisposonsd'unertainnombred'instanesmaximumàdéployer (lenombred'instanespeutreprésenter
lenombrede fois qu'on souhaitedupliquer unservie, ouenore lenombre delienes disponiblespour
l'appliation, et.). Chaqueappliation peutommuniquer ave uneou plusieurs autres, il n'y aepen-
dant pas de notion de préédene entre les appliations : toutes les appliations doivent être présentes
sur la plate-forme en même temps. La plate-forme onsidérée omprend
m
proesseurs regroupés engrappes.Nousonsidéronsquehaqueproesseurpeutommuniqueravetouslesautres,seulslesoûts
des ommuniations sont variables. Notre problème est le suivant : trouverun déploiement qui permet
de maximiser le nombre d'instanes déployées, tout en minimisant le oût des ommuniations et en
répartissant lahargesur l'ensemble desproesseurs.
Le reste de e rapport s'organise ainsi :nous ferons tout d'abord un état de l'art sur les outils de
déploiement en setion 2, puis nous présenterons les extensions proposées au logiiel de déploiement
Adageensetion3.Cesoutilsnéessitantdesalgorithmesdeplaniation,nousprésenteronsensetion
4desméthodesde répartitiondehargesurplates-formeshétérogènes.Puis,nousproposeronsenndes
heuristiques pour réaliser le déploiement d'appliations en setion 5, et présenterons des résultats de
simulations.Noustermineronsparuneonlusion,etparprésenterlesperspetivesoertespare thème
de reherhe.
2 Outils de déploiement
L'utilisation simple et eae d'une grille de alul etdes appliations à déployer passe par l'utili-
sation d'un outil de déploiement. Celui-i a la harge d'un ertain nombre d'opérations aboutissant à
l'exéutiondesappliations. Enpremierlieu,ladéouvertedes ressoures disponiblessertàdéter-
minerunsous-ensemblede ressouresompatiblesave lesappliations, etsurlesquellesil serapossible
dedéployer.Laseondeétapeonsisteàattribuerdesressouresauxappliationsenfontiondeleurdes-
ription:lesbesoinsenommuniationsetenaluls, 'estlagénérationduplande déploiement.Il
faut ensuiteséletionnerlesressouresquifont partie duplandedéploiement,etinstallerles hiers
néessaires sur es diérentes ressoures. Les trois dernières phases onernent diretement l'exéution
des appliations. Une phase de pré-onguration permet de vérier les dépendanes de hiers, de
bibliothèques, et., requises par les appliations, elle permet également de les ongurer. La phase de
lanementexéuteleplande déploiement, enrespetant lesdiérentes ontraintes pouvantexistersur
l'ordred'exéution.Finalement,unephasedepost-ongurationpermetdeongurerlesappliations
tion un ensemble représentatif, mais non exhaustif, des possibilités oertes par les diérents outils de
déploiement existants.
Adage [19 , 20, 21℄ vise l'automatisation du déploiement d'appliations sur un environnement de
Grille.Ilproposeunmodèlededesriptiongénérique pourlesappliations, ainsiqu'uneséparationentre
ladesriptiondesressoures,desappliationsetdesparamètresdeontrles, elalerendutilisablepour
une grande variété de déploiements. Adage permet d'installer à distane les hiers, de ongurer les
appliationsetdelesdémarrer.Ilnedisposeependantpasd'algorithmeperformantpourréaliserleplan
dedéploiement (seulsRandometRound-Robin sontproposés),maissonarhiteture modulairepermet
d'étendreses possibilités en ajoutant d'autresalgorithmes.
DistAnt [15 , 16℄sert prinipalement à installer des appliations sur un environnement hétérogène
réparti, lelanement desappliations, etle hoix des ressouressont laissésà un systèmetieretel que
le GlobusToolkit. Il seompose de deux parties: unlient gèrel'ensemble desations du déploiement
à partir d'un n÷ud, et des serveurs DistAnt devant être présents sur les n÷uds à utiliser qui réalisent
le déploiement desappliations. Le fait qu'il soit néessaire d'avoir desserveurs DistAnt déjà présents
surles ressoureslimitel'utilisation de etoutil :il faut eetuer unpremier déploiement pour pouvoir
déployerlesappliations.Ilneproposeégalementauuneméthodedeséletionderessoures,l'utilisateur
doitfournir un hier préisant elles àutiliser.
GoDiet [6℄estunlogiieldédiéau déploiement dehiérarhies del'intergiielDiet [7℄,et n'estpas
extensible à d'autres appliations. GoDiet prend en entrée un hier XML dérivant les ressoures de
stokage etde alul disponibles etleurs moyens d'aès, ainsi que le déploiement Diet voulu sur es
ressoures (assoiation des éléments Diet aux ressoures, ainsi que la desription de la hiérarhie), la
séparation entrela desriptiondes ressoureset ladesriptionde la hiérarhie n'est pasnette (tout est
dans un seul hier). Le déploiement ne peut avoir lieu que siDiet est déjà installé surles diérentes
mahines (il n'y a pas de méanisme d'installation distante), mais par ontre la pré-onguration des
diérentes entités estgérée.
Jade [5 ℄ est un intergiiel servant à déployer et gérer des appliations de façon dynamique. Il est
plus orienté gestion autonome dynamique d'appliations. Il permet la prise en ompte des variations
de l'environnement grâe à desapteurs, etd'agir sur lesystème déployé en onséquene (enmodiant
leur onguration, ou en ajoutant/enlevant des instanes,et.). Il dispose également d'un système de
déploiement d'appliations : elles-i sont enapsulées dans des omposants Fratal 1
qui dénissent les
interfaes entrantes et sortantes, ainsi que des ontrleurs permettant d'agir sur le omportement des
omposants. Laséletion desressouresest faitedans ungroupe de n÷uds disponibles au niveau d'une
grappe dealul.
JXTA Distributed Framework (JDF) [1 ℄ est un ensemble d'outils visant à failiter la réalisa-
tion de tests de plates-formes pair à pair basées sur JXTA 2
. L'utilisateur doit spéier l'ensemble des
ressoures qui sont utilisées (bien que pour un déploiement sur une seule grappe de alull'utilisation
de PBS puisseêtre envisagée pour séletionner automatiquement les ressoures).JDF s'oupe ensuite
d'installer à distane les hiers via rp/sp,puis initialise le réseau JXTA, et exéute les tests en les
oordonnantà partird'un n÷udde référene,nalementilrapatrieles hiers delog.L'utilisationde e
systèmereste très spéique.
Sekitei [17, 18℄ est un algorithme d'intelligene artiielle servant à résoudre le problème CPP
(Component Plaement Problem). Il se présente en tant qu'un module Java pouvant être réutilisé dans
1
http://fratal.objetweb.org/
2
http://www.jxta.org/
règlesetunbut àatteindredonnéspar l'utilisateur,ilreherhe undéploiement minimalrépondantaux
ontraintes. Sekiteinepermetpasdedéployerlesappliations,ilnefaitqueréerleplandedéploiement.
Weevil [27℄ est un outil permettant d'automatiser la réalisation d'expérienes sur des systèmes
distribués. Il omprend deux parties : la génération d'une harge de travail pour les appliations à
tester, et le déploiement et exéution des diérents sénarios. Les ressoures, les appliations et les
ations à eetuer sont dérites dans des hiers en GNU m4 fournis par l'utilisateur. Le déploiement
est automatiséà l'aide de sripts générés par Weevil qui vaenvoyer les hiers néessaires sur les sites,
puisexéuter les expérienes enutilisant lemodule degénération de travail.
Il n'existe pas de logiiel de déploiement véritablement générique permettant de déployer à la fois
des workows, ou bien juste un ensemble d'appliations, ou enore un intergiiel hiérarhique de façon
automatique.Laplupartdesoutilssontspéiquesàuntypededéploiement,oud'appliation.Danstous
les as lehoix des ressoures estlaissé à l'utilisateur, et seules les partiesd'installation et d'exéution
sontautomatisées (letableau 1résumel'étude).Adageestl'outil quisembleleplusintéressant depart
sesmodèles génériquesd'appliations etde ressoures,sonarhiteture modulairepermettantde dénir
au besoin ses propres modèles, et ses propres algorithmes de séletion de ressoures. Nous omptons
implémenter nosheuristiquesprésentées ensetion 5au seinde e logiiel.Nous proposons en setion3
une extension dumodèle générique d'appliations.
Ad a
ge
DistAn t
Go Diet
Jade JDF SekiteiW eevil
Déouverteressouresautomatique
Planning
Auto
Basique x
Intelligent x
Utilisateur x x x x x x
Desriptionappliations
Spéique x x x
Générique x x x x x
Compilation x
Installationdistante x x x x x
Pré-onguration x x x x x x
Lanement x x x x x
Gestiondynamique x
Post-onguration x x
Modularitédesalgorithmes x
Tab.1 Comparaison dequelquesoutils de déploiement.
3 Extensions pour Adage
Adage [19 ,20,21℄estl'aronymedeAutomatiDeploymentofAppliationsinaGridEnvironment.
Cette appliation est développée à l'IRISA de Rennes, au sein de l'équipe projet Paris 3
. Elle propose
un modèle d'appliations intéressant qui permet de dénir pratiquement tous les types d'appliations.
De plus, Adage ouvre pratiquement l'ensemble du proessus de déploiement. Il manque simplement
un module de déouverte automatique de ressoures, et des algorithmes, autres que Round-robin et
Random, pour générer un plande déploiement. Nous avonsdéidé de nous baser sur Adage pour mo-
déliser notreproblème, etprévoyons d'yimplanter nosalgorithmes de déploiement.La gure1 rappelle
lefontionnement général d'Adage.
3
http://www.irisa.fr/paris/
Configuration des applications Exécution du plan de déploiement
Plan de déploiement Description Générique Description Spécifique
Paramètres de contrôle Description des ressources
Traducteur
Fig.1 Fontionnement d'Adage.
3.1 Extension du modèle
3.1.1 Motivations
Le modèle de desriptiondes appliations d'Adage permet de prendre en ompte des appliations
séquentielles, desappliationsparallèles, desappliationsà basede omposants CCM,et.,ela grâeà
sa génériité, et à la possibilité d'utiliser ses propres desriptions spéiques.Nous voulons rajouter la
possibilitéde dériredesappliationshiérarhiques,'est-à-diredesappliationsreprésentablessousla
forme d'un arbre. L'exemple qui motive ette extension est l'intergiiel de Grille Diet 4
[7℄, développé
au seinde l'équipeGraal à l'ÉNS-Lyon.
Diet permet à un lient de soumettre des requêtes à un ensemble de serveurs pour résoudre un
problème. Les requêtes sont envoyées deslients vers la raine de lahiérarhie Diet :le Master Agent
(MA).Cederniervaalorstransmettrelarequêteàlahiérarhiesous-jaente,elleserapropagéejusqu'aux
feuilles (les Sed, Server Daemons) qui renverront une réponse validant ou invalidant leur apaitéà la
traiter. Un hoix est eetué parmi les Sed valides, et une réponse est retournée au lient. La gure
2(a)présenteunexemplede hiérarhieDiet.Elleest omposéed'uneraine (leMA),d'unensemblede
n÷udsintermédiaires (les Loal Agent, LA,quiont pour tâhe detransmettre lesrequêtes etderéaliser
de l'ordonnanement de requêtes sur leurs sous-arbres), et enn les Sed tout en bas qui ont la harge
de traiterles requêtes.Onvoitque etype d'appliation aune partie réursive :les LA peuvent avoir
pourenfants soitdesLA, soit desSed.
Lahiérarhieàdéployerétantdépendantedelaplate-forme,ilestpeuutilededérireetteappliation
de façon statique sans prendre en ompte les ressoures disponibles, nous aurions alors de mauvaises
performanes sur le débit de requêtes traitées si la hiérarhie ne orrespond pas à la plate-forme sur
laquelle elle est déployée. Il est don préférable d'avoir une desription synthétique, générique de e
type d'appliation an de laisser le module de déploiement hoisir la meilleure hiérarhie en fontion
desparamètres de laplate-forme. La gure2(b)présenteDietsous uneforme synthétique.Nous avons
représenté qu'un LA peut avoir omme type de ls un autre LA, ou des Sed ou Sed2 (les deux Sed
serventiiàdiérentierdeuxservies,oudeuxensemblesdeservies).DansDiet,haqueSedpeutêtre
4
http://graal.ens-lyon.fr/DIET
SeD SeD2 LA LA
SeD2 SeD2
SeD SeD
SeD SeD2
LA
SeD SeD2
LA
SeD
SeD2 SeD
SeD SeD2
LA
LA
MA
(a)HiérarhieDietdéployée
MA
SeD2 SeD
LA
(b)Desription
Fig. 2 Exemple de hiérarhieDiet, ave 2 typesdeSed.
répliqué une innité de fois sous un LA, mais nous pourrions également borner e nombre si nous ne
souhaitionspasavoirtropdeSed sousunLA.Nousavonsainsiunenotiondeardinalitésurlesenfants
des diérents éléments d'une hiérarhie. De nombreuses appliations peuvent bénéier de e modèle,
Dietn'estpasleseulintergiielreprésentableparunehiérarhie,nousiteronségalementNetSolve[8℄,
ou Ninf [23℄ (hiérarhies à un niveau). Des appliations ave une struture simple en maître-eslaves,
peuventégalementêtrereprésentéesainsi.C'estunmodèlelargementutilisé,etdontiln'estpaspossible
de trouver undéploiement générique orrespondant àdiérentes plates-formes.
3.1.2 Desription globale du modèle
Ce modèle permet de dérire un graphe de tâhes. Le terme graphe de tâhes n'est pas à prendre
au sensgraphede préédeneentreles tâhes, ilreprésenteun ensembled'appliations (les sommetsdu
graphe)àdéployer,elles-ipouvantommuniquerentreelles(lesarêtesdugraphe).Nousneonnaissons
pasàquelmomentlesappliationsdoiventommuniquerentreelles,nil'ordred'exéutionréeldestâhes
(nouspouvonstoutefoisdénir desdépendanes entresles appliationsspéiantl'ordre delanement).
Chaque appliation peut être répliquée au sein du déploiement, 'est-à-dire que nous pouvons préiser
ombien d'instanesdu même programmesont à mettresur laplate-forme.
Ce modèlevient étendre GADe(Generi Appliation Desription),lemodèlede desriptiongéné-
riqued'appliation pour Adageproposépar Sébastien Laourdanssathèse [19℄.
Il estonstituédesélémentssuivants(modèleprésent enannexeA.1):1) unouplusieursgroupesde
proessus:ungroupereprésente unensemblede proessusqui doivent s'exéutersurlamême mahine,
2)desappliationsnonhiérarhiques, etdesappliationshiérarhiques, et3) legrapheenlui-même:les
entitésleonstituant (lessommets :desappliations hiérarhiques, ou nonhiérarhiques),etleurs liens
(les arêtes:les onnexionsentreles appliations).
3.1.3 Présentation détaillée
Groupe de proessus. L'élément pro_groups ontient ladesriptionde l'ensemble desgroupes de
proessus :un groupe de proessus est un ensemble de proessus qui doivent s'exéuter sur une même
mahine. Il peut être répliqué un ertain nombre de fois, et il peut exister des dépendanes entre les
groupessurl'ordredelanement. Ladesriptiondehaqueproessusontient l'emplaement oùtrouver
les hiers (binaires, bibliothèque,et.), les diérents arguments, la quantité de travail à réaliser, et le
nombre de fois queleproessuspeut(oudoit) être répliqué ausein du groupede proessus.
ouparallèle.Ellefaitréféreneàungroupedeproessusdénissantl'appliationorrespondante.Chaque
appliation simple aune ardinalitéreprésentant lenombre d'instanes àdéployer.
Appliation hiérarhique. Les appliations hiérarhiques sont un as partiulier de graphe : des
arbres. L'élément hierarhies_defontient la dénition des appliations hiérarhiques : les diérents
n÷uds nodes,etleshiérarhies hierarhies.
L'élément nodes omprend la desription de l'ensemble desn÷uds pouvant être utilisés par les ap-
pliationshiérarhiques.Chaquen÷udfaitréféreneàuneappliation simplepartiulière.Ilestpossible
de mettredesontraintessur sondegrésortant ave l'élément degree.
Une hiérarhie est omposée d'un ensemble de n÷uds internes (tous les n÷uds appartenant à la
hiérarhie). Elle a également despropriétés :depth représente laprofondeur de l'arbre, l'identiant du
n÷udrainepointantsurundesn÷udsinternes,etauneardinalitépréisantlenombred'instanesde
lahiérarhie àdéployer.
Chaun des n÷uds internes fait référene à un n÷ud node dérit préédemment, et a un ertain
nombre d'enfants. Chaque onnexion ave un enfant peutengendrer un oût en alul qui s'ajoute au
oût de travail du pro_group, de même la onnexion provenant du père peut engendrer un sur-oût
en alul. Chaqueenfant est un desn÷uds internes de la hiérarhie, etles onnexions entre père et ls
engendrent desoûtsen ommuniation.
Graphe. Ungrapheestomposéd'unensembledesommetsetd'arêtes.Chaquesommetpeutêtresoit
uneappliationhiérarhique,soituneappliation simple.Pour haquesommetdugraphe,ondénitune
fréquene d'utilisation représentant le pourentage d'utilisation de e sommet par rapport aux autres.
Cettefréquened'utilisationpeutêtredénieparl'utilisateuràpriori, oubienêtreunevaleurréupérée
parunhistoriquesurdesutilisationspréédentes. Lesonnexionsentrelessommets(les ommuniations
entre les appliations) sont dénies d'une soure vers un ensemble de destinations, haune ayant un
oût(quantité dedonnées àtransmettre).
Un exemple d'utilisationde e modèleest donné en annexeA.2.
Nous avons jusque là étudié les possibilités oertes par les diérents logiiels de déploiement, et
plus partiulièrement Adage pour lequel nous proposons une extension de son modèle de desription
générique d'appliation pour dérire des appliations hiérarhiques. Il manque ependant toujours des
algorithmes pour hoisirautomatiquement les ressouressurlesquellesserontdéployéeslesappliations.
Dansles setionssuivantesnousallonsprésenterdiérentes méthodes d'équilibragedehargesurplate-
forme hétérogène,puis proposeronsdesheuristiquespour ledéploiement.
4 Équilibrage de harge sur plate-forme hétérogène
Denombreuses approhes existent pourordonnaner desensembles de tâhesindépendantes, oudes
graphes detâhes surune plate-formehétérogène.
4.1 Régime permanent (steady-state)
Une approhe lassique d'ordonnanement est de tenter de minimiser le temps total d'exéution.
Cependant, es problèmes sont généralement NP-diiles. Une façon de ontourner ette diulté a
été proposée par Bertsimas et Gamarnik [4℄ : tenter d'obtenir une optimalité en régime permanent,
'est-à-dire exéuter le plus grand nombre possible de tâhes en une unité de temps. On ne tient plus
ompte de laphase d'initialisation, ni de la phase de terminaison, et on ne s'intéresse plus qu'à l'état
stable, permanent et périodique du système, l'alloation préise des tâhes et des ommuniations
n'estplusnéessairepourrésoudreleproblème. Dans[2℄,Beaumontet al.montrent quepourdestâhes
indépendantesidentiques,enseplaçantdansunadremaître-eslaves(unn÷uddelaplate-formepossède
initialement l'ensemble des données néessaires aux tâhes pour être exéutées), la meilleure stratégie
est de distribuer les données aux n÷uds onnetés au maître ave la plus grande bande passante, et
e indépendamment de leur puissane de alul. Intuitivement ela est du au fait que si le maître les
envoyaitenprioritéàdesn÷udspotentiellementpluspuissants,maisreliésaveunebandepassanteplus
faible,lemaîtrepasserait plusdetemps àenvoyerlesdonnées, etserviraitmoinsden÷uds parunité de
temps (ilsseplaent dansun modèle1-port oùunn÷ud peut simultanément reevoir desdonnéesd'un
seul autre n÷ud, en envoyer à un seul autre, et aluler). [3℄ apporte d'autres résultats pour diérents
problèmes :maître-eslave, satter pipelinés, etmultiast pipelinés.
Cette approhe permetdon de maximiserle nombre de tâhesexéutées par unité de temps, mais
ela peutsefaire au détriment des ommuniations. Des méthodes d'analyseetmodiationdu graphe
de tâhesontété proposées ande réduireles ommuniations.
4.2 Regroupement de tâhes (Clustering)
Lorsque l'on disposed'ungraphe detâhes à ordonnaner,un moyen eae de réduireles ommu-
niations est de regrouper les tâhes ommuniquant beauoup sur une même ressoure de alul. Une
méthodepourela estderegrouperengrappesles tâhes:'estlaméthodede lustering.Une première
étape regroupe des tâhesen un ensemble de grappes, et une seonde étape rane e regroupement et
détermine l'assoiation tâhe-ressoure. Le problème de déterminer un lustering eae d'un graphe
général est NP-omplet, diérentes heuristiquesont alors étémises en plae. Yang et al.[28 ℄ proposent
DSC (Dominant Sequene Clustering), qui prend en ompte le niveau haut et le niveau bas (dénis
omme étant le plus longhemin (somme desaluls et desommuniations) entre latâhe onsidérée
et la tâhe d'entrée, et une tâhe de sortie, respetivement) pour donner une priorité aux tâhes, et
regroupe une tâhe dans une grappe si le niveau haut est réduit par e regroupement. Liou et al. [22℄
proposent unalgorithmemoinsomplexe,CASS-II,enprenant uneapprohebottom-up.Chaquegrappe
est par lasuite assignée à un proesseur partiulier. Senar et al. [24℄ proposent un algorithme prenant
en ompte l'arhiteture de la plate-forme. Un premier regroupement est réalisé, puis les tâhes sont
déplaéesentrelesgrappes.Aprèsavoirréaliséunepremière alloation surlesressoures, lestâhessont
de nouveau déplaées an deréduire enoreles ommuniations. Cetteapprohe estplus omplexe que
les deuxpréédentes.
Cette méthode permet de réorganiser legraphe des tâhesde façon à mieuxle faire orrespondre à
l'environnementsurlequelilvaêtredéployé.Laplate-formepouvantêtrehétérogène,etlesinformations
disponiblessurlestâhesetsurlesressourespouvantêtretrèsrestreintes,desalgorithmesderépliation
ont étémis enplae.
4.3 Répliation
Unefaçondeontournerleproblèmedel'hétérogénéitéetlearatèreévolutifdesperformanesd'une
plate-forme,estdefairedelarépliationdetâhes.L'idéesous-jaenteestqu'enrépliquantlaprobabilité
d'obtenirun meilleursitepour l'exéutiondestâhesestplus élevée,par ontre onrisqued'utiliser plus
de ressoures, mais en faisant l'hypothèse que dans une grille les ressoures sont nombreuses, on peut
dedistribuerhaunedestâhessurles
K
siteslesmoinshargés.Chaundessitesvaalorsordonnanerloalement es tâhes. Dès qu'une tâhe
t i peut ommener sur un site, les K − 1
autres sites sont
informés, et retirent la tâhe
t i de leur liste de tâhes à ordonnaner. Cirne et al. présentent WQR (WorkQueue withRepliation)[10, 11℄,unalgorithmequiordonnaneunepremière instanedehaque
tâhe, puis réplique es tâhes sur les diérents proesseurs (dans et algorithme plusieurs instanes
d'une même tâhe peuvent être exéutées simultanément). Dèsqu'une instane est terminée, les autres
proesseurs en sont informés et les répliats sont supprimés. Fujimoto et al. [13 ℄ proposent également
un algorithme d'ordonnanement ave répliation (list sheduling with Round-robin order Repliation,
RR),qu'ilsprouvent sous-optimal.Leurmétriquen'estependant pasletempstotal d'exéutionomme
préédemment, mais le TPCC (Total Proessor Cyle Consumption), qui représente le nombre total
d'instrutionsque laplate-formepeutréaliserdurant letemps d'exéution.
5 Algorithmes de déploiement
Nous présentonsdansette partie toutd'abord le modèleque nousonsidérons, puisun algorithme
pourdéployerunehiérarhie, unemodélisationenprogrammelinéairepourleasd'appliations séquen-
tielles, etterminons par présenter desheuristiquesetrésultatsde simulations.
5.1 Modèle
Nousdénissonstoutd'abordlesnotationssuivantes:unensemblede
m
proesseursp i , i ∈ [1..m]
,etunensemblede
n
appliationsa j , j ∈ [1..n]
.Chaqueproesseurp i aune puissanede alulα i,unoût
de ommuniation ave un autre proesseur
p i ′ : β i,i ′. Chaque appliation a j a un nombre d'instanes
a j a un nombre d'instanes
minimum
nb min j , et maximum nb max j , un besoin en travail w j, une fréquene d'utilisation f j, et une
w j, une fréquene d'utilisation f j, et une
quantité de ommuniation vers une autre appliation
a j ′ :c j,j ′. Enn, nous dénissons δ i j,k :variable
δ i j,k :variable
préisant le plaement de l'instane
k
de l'appliationa j surleproesseur p i.δ i j,k = 1
si l'instanek
de
δ i j,k = 1
si l'instanek
del'appliation
a j estplaée surleproesseur i
,δ j,k i = 0
sinon.
Conernant laplate-forme, nous onsidérons quehaque proesseur
p i peutommuniquer ave tous
les autres
p i ′.De plus, tous les proesseurs peuvent aueillir n'importe quelle appliation a j (apaité
en terme de puissane de alul, mais également par rapport à la ompatibilité des bibliothèques par
exemple).
Lorsqu'il y aun besoin en ommuniationentre deuxappliations
a j eta j ′,es ommuniations ne
sefont qu'entre deuxinstanes préises. Pour avoirle oûtde ommuniation, ononsidère lamoyenne
desommuniations entrelesdiérentesinstanesdéployées(àlahargedesappliationsdehoisirave
laquelle elle va réellement ommuniquer au moment de l'exéution, mais les ommuniations peuvent
également êtrerépartiesentrelesdiérentesinstanesenround-robinparexemple,d'oùettemoyenne).
Dans le adre d'appliations parallèles, nous faisons une approximation : nous onsidérons que le
travail d'une instane est réparti de façon uniforme entre les diérents proesseurs surlesquels elle est
déployée. Par exemple siuneinstane d'unprogramme estrépartie sur4proesseurs,alors haunaura
1/4 de la harge. Ce modèle n'est bien entendu pas réaliste dans le as général. Bien souvent le fait
d'augmenter lenombre de proessusparallèles va engendrer un suroût de alulet deommuniation.
Il faudrait introduire une fontion donnant le travail en fontion du nombrede proessus, mais enore
unefois,elan'estpaspossiblepourtouteslesappliations.Uneétudeplusapprofondie desappliations
parallèles estprévue dansde futurstravaux.
Notre but est de trouver un déploiement des appliations sur un ensemble de ressoures, etnon de
trouverunordonnanement deesappliationsauniveau desproesseurs.Nousétudionsleproblèmeen
régimepermanent (toutdu moinsunesorte de régimepermanent puisque lesappliations peuvent tout
aussibienêtredesserviesinterrogéspardeslientsexternes,ommeellespeuventêtredesappliations
quineserontlanéesqu'une seulefois),'estuneapprohestatiquedudéploiement,nousneonsidérons
pasenore leredéploiement de façon dynamique.
5.2 Déploiement d'une hiérarhie
Pushpinder KaurChouhan amontré danssathèse [9℄ queledéploiement optimal (au sensdu débit
derequêtestraitées)pourunintergiielhiérarhique dansleadred'unenvironnement homogèneestun
CSDtree (CompleteSpanningd-arytree,unarbre ouvrantompletd-aire).Unarbre ompletd-aire est
un arbre pour lequel tous lesn÷uds internes, à partpeutêtre un, ont exatement d enfants. Un arbre
ouvrant,est unsous-graphe onneté ayliqueontenant tous lessommets dugraphe.
Nousnoussommesintéressésàdeshiérarhiesontenantunseuln÷udréursifparsous-arbrepartant
de la raine (nous ne onnaissons pas d'exemple d'appliation néessitant deux niveaux de réursion
suessifs), et voulons le déployer sur une plate-forme hétérogène. Nous avons érit un algorithme qui
onstruitundéploiementquitendàserapproherd'unCSDtreepargrappedeproesseurssilahiérarhie
estseule àutiliserlesressoures,sinonles degrésdehaquen÷udinternesont adaptésen fontiondela
hargedesproesseurs surlesquels ilssont déployésdansleadre hétérogène.
NR2 NR1
NR3 NR4
(a)Desription
NR2
NR2 NR2 NR2
NR3
NR4 NR4 NR4
NR3 NR4
NR3 NR4
NR3 NR3
NR4 NR3
NR3
NR4
NR3 NR4 NR2
NR3 NR1
NR4
NR3 NR2
NR2
NR3 NR4
NR3 NR4 NR3 NR4
NR2
(b)Déploiementdelahiérarhie
Fig. 3 Exemple de déploiement serapprohant d'un CSD-treepar grappe.
L'idée estlasuivante:bienqu'étant enenvironnement hétérogène,nousonsidérons quenousavons
desgrappesdeproesseursregroupéesenunegrille,nouspouvonsalorsdéployerunCSDtreepargrappe
pourtenterdeserapproherd'undéploiement optimal,laraine delahiérarhieétantpositionnéesurle
n÷udleplus puissant ande supporter une hargemaximale.Un exemple estdonné surlagure 3(b),
ladesriptiondelahiérarhieestsurlagure3(a).Laplate-formea3grappesdepuissanesdiérentes,
et ave un nombre de proesseurs diérent (entre 5, 9 et 16), haque retangle représente une grappe
diérente. Enfontion delapuissane etdunombrede proesseursdisponibleslahiérarhieest plusou
moinsprofonde.
La onstrution dudéploiement est réalisée de lafaçon suivante(algorithme présent en annexe B):
toutd'abord len÷udle pluspuissant est pris pour positionner la raine.Puis, pour haquegrappe, on
onstruit la hiérarhie jusqu'à atteindre le n÷ud réursif (le n÷ud réursif n'est pasnéessairement le
premier n÷ud après la raine). On ajoute alors des enfants à ette instane du n÷ud réursif jusqu'à
e qu'il ne puisseplus en aepter(les enfants sont ajoutésde façon à e que haquetype d'enfant soit
représenté de façon équitable au sein de la hiérarhie). Lorsqu'il est hargé, on ajoute alors un n÷ud
du même type au dessusde lui,eton redesendà la même profondeur dansl'arbre avant de harger la
nouvelle instanedun÷udréursif.Ceproessusestrépétéjusqu'àneplusavoirderessoures.Lagure
4 présente le déroulement de l'algorithme, ette hiérarhie a un n÷ud réursif (NR2) et un ls sous e
n÷ud(NR3). Lesn÷uds griséssont eux ne pouvant plus aepterde ls.
NR1
NR3 NR2
NR1
NR3 NR3
NR2 NR2
NR1
NR3 NR3
NR2
NR3 NR2 NR2
NR1
NR3 NR3
NR2
NR3 NR3
NR2 NR2
NR1
NR3 NR3
NR2
NR3 NR3
NR2 NR2
NR3 NR2
NR2 NR1 NR2
NR3 NR3
NR2
...
3 2
1 4
0
6 5
2 1
3 4 0
4
3 1
2 3 1
0 0
1
2 2
0
6 5
7 2
1 4
3 6
5 8
0
11 10
9
7
Fig. 4 Déroulement de l'algorithmede déploiement d'unehiérarhie.
Aveetalgorithme,silahiérarhieaàsadispositionl'ensembledesressoures(i.e.,lesproesseursne
sontpashargéspard'autresappliations,etdonsurhaquegrappelesressouressontbienhomogènes),
alorsledéploiementserapproherad'unCSDtreepargrappe.Parontre,silesressouressontpartagées,
alors l'algorithmeonstruira un arbreoù haque n÷udinterne serahargéau maximumde saapaité,
maisleur degrérespetifpourravarier enfontion de lapuissane disponible.
Il est possible d'étendre une hiérarhie déployée ainsi sur un ensemble de ressoures. Si d'autres
ressoures sont disponibles on peutrajouter desn÷uds à lahiérarhie :il sut de reherher le n÷ud
interne le plus profond non omplètement hargé, et d'appliquer le même prinipe que préédemment
(méthode utiliséedanslaseonde partie desheuristiquesprésentées ensetion 5.4.1).
5.3 Programmes séquentiels
Il est possible de modéliser leas plus simple où nous n'avons quedes appliations séquentielles, à
l'aide d'unprogramme linéaire.Le problèmese rapprohant dela répliationde données, nous sommes
partis des travaux réalisés par Antoine Vernois dans sathèse [26℄,il modélise le plaement statique de
donnéesbioinformatiques, danslebut d'optimiser lenombrederequêtes traitées surlaplate-forme.Les
ontraintesde notreproblème sont lessuivantes.
Chaque proesseurne peutpastraiter plusquesapuissane en alul(ontraintede ressoures):
∀i,
n
X
j =1 nb max j
X
k =1
δ j,k i · w j ≤ α i (5.1)
Noussouhaitons avoir aumoinsune instanedéployée dehaqueprogramme
a j,et nouspouvonsen
avoirau plus
nb max j :
∀j, 1 ≤
m
X
i =1 nb max j
X
k =1
δ j,k i ≤ nb max j (5.2)
Soit
T P
le rendement de la plate-forme, i.e., le nombre de requêtes qui peuvent être exéutées sur l'ensemble de la plate-forme. Nous onsidérons qu'une requête est exéutée par une instane d'unprogramme. Nous voulons également limiter le nombre de requêtes par programme par rapport à sa
fréquened'utilisation
f j ∈]0, 1]
:∀j,
m
X
i =1 nb max j
X
k =1
δ j,k i ≤ f j · T P
(5.3)Ave les ontraintes préédentes, nous souhaitons maximiser le débit
T P
, minimiser les ommuni-ations, et avoir une harge équilibrée entre les proesseurs. Il nous faut un estimateur permettant de
prendre en ompte es trois métriques. Pour prendre en ompte l'équilibre de la harge entre les pro-
esseurs une simple diérene entre la harge minimum et la harge maximum n'est pas susante :
elane prendpasen ompte l'ensemble desproesseurs.Nousavonsdon déidéde prendre lavariane
sur la harge des proesseurs (la harge étant dénie omme étant la somme des travaux présents sur
le proesseur, divisée par sa puissane de alul :
P n j =1
P nb
max j
k =1 δ i j,k × w j /α i
). Nous herhons don àminimiser l'estimateur
LB
suivant :LB = std
_dev 2 + comm 2
T P
(5.4)ave
std
_dev
l'éart type sur la harge des proesseurs, etcomm
les ommuniations, qui sont une moyenne surlesommuniations réaliséesentrelesinstanes (nousonsidérons qu'uneinstanene om-munique qu'ave une seuleautre) :
comm =
m
X
i =1 n
X
j =1 nb max j
X
k =1
δ i j,k ×
n
X j ′ = 1 j ′ 6= j
c j,j ′ × P m
i ′ =1
P nb
max j
k ′ =1 δ i j ′ ′ ,k ′ · β i,i ′
P m i ′ =1
P nb
max j
k ′ =1 δ i j ′ ′ ,k ′
(5.5)
Cet estimateur prenden ompte à lafois la harge de la plate-forme, les ommuniations et lenombre
d'instanesdéployées.Minimiser
LB
revientbienàminimiserl'éartentrelahargedesproesseurs(mi-nimiser
std
_dev
),laquantité deommuniations (minimisercomm
),etàmaximiserledébit(minimiser1/T P
).Il en déoule leprogramme linéaire suivant :Formulation du programme linéaire
Minimiser
LB,
Sous les ontraintes
(1) P n j =1
P nb max j
k =1 δ i j,k · w j ≤ α i 1 ≤ i ≤ m
(2) δ j,k i ∈ {0, 1} 1 ≤ i ≤ m, 1 ≤ j ≤ n, 1 ≤ k ≤ nb max j (3) P m
i =1
P nb max j
k =1 δ i j,k ≤ f j · T P 1 ≤ j ≤ n (4) 1 ≤ P m
i =1
P nb
max j
k =1 δ i j,k ≤ nb max j 1 ≤ j ≤ n (5) P m
i =1
P n j =1
P nb
max j
k =1 δ j,k i = T P
Nous n'avons pas trouvé de logiiel permettant de résoudre e programme linéaire : l'estimateur
est trop omplexe (l'estimateur n'est ni linéaire, ni quadratique, et nous n'avons pas pu le simplier
susamment pour l'utiliser). Nous avons don déidé de ne garder que le alul du débit, et tenté de
le maximiser, an de déterminer la borne maximum sur le nombre d'instanes de haque appliation
qu'ilesteetivementpossiblededéployerenrespetantesontraintes. Leprogrammelinéaireestdon
le même que préédemment, seule la fontion objetif hange : nous voulons maximiser le nombre de
requêtes traitées,Maximiser
T P
.5.3.1 Approximation d'une solutionentière
Nous ne pouvons garantir que le programme linéaire initial soit faisable. Il se peut qu'il ne le soit
pas: ela dépend desfréquenes etdu nombre d'instanes maximum attribué à haque programme.Si
la fréquene est trop faible pour un ertain programme, alors il se peut qu'il n'existe pas de solution
telle qu'il soit possible d'avoir au moins une instane de e programme. De plus, les ontraintes sur le
débit
T P
sont fortes,e qui peutempêherde trouverunesolution entière. Nousoptons donpour unerésolution en rationnels,puis, par approximations suessives, nousonstruisonsune solutionentière.
L'algorithme 1 débute par la résolution en rationnels du programme linéaire
lp
présenté préédem-ment. On dénit ensuite les trois ensembles suivants :
S 0 les tuples (i, j, k)
pour lesquels δ i j,k = 0
, S 1
les tuples
(i, j, k)
pour lesquelsδ i j,k = 1
,etennS
eux qui ne sont ni dansS 0, nidans S 1.On dénit
ensuitel'ensemble
notP laced
desprogrammesquin'ontauuneinstanedeplaée(i.e.,∀k, ∀i, δ i j,k = 0
).S'ilya desprogrammesquin'ont auuneinstane deplaée, onhoisitletuple
(i 1 , j 1 , k 1 )
telqueδ j i 1 ,k 1
1
soit maximum,ave
j 1 ∈ notP laced
.SinotP laced
estvide, alors onhoisitune instanedansS
ave lamême ontrainte. Dans les deux as le tuple
(i 1 , j 1 , k 1 )
est ajouté àS 1. On ajoute à lp
les ontraintes
δ i j,k = 0
pour tout(i, j, k) ∈ S 0,etδ i j,k = 1
pour tout (i, j, k) ∈ S 1.Onrésoud à nouveau le programme
δ i j,k = 1
pour tout(i, j, k) ∈ S 1.Onrésoud à nouveau le programme
linéaire.S'iln'yapasdesolution,onretire
(i 1 , j 1 , k 1 )
deS 1,etonl'ajouteàS 0,puisonrésoudànouveau
leprogrammelinéaire.S'iln'yatoujourspasde solution,onignore e
δ i j,k par lasuite (onlelaisselibre,
onl'ajouteà
S ignore),etonlepositionneraà0
àlan delarésolution. Onitèrejusqu'àavoirl'ensemble
S
vide.5.4 Heuristiques
Nous avons omparé plusieurs heuristiquespour ledéploiement desappliations. La plupart d'entre
ellesfontionneendeuxétapes(setion5.4.1):unepremièrealloation,suivied'unephasederemplissage
de la plate-forme. Une autre heuristique attribue des listes d'anités des appliations pour haque
proesseur(setion5.5),puisdéploieàhaqueitérationuneinstaned'unprogramme
a jsurunproesseur
p i,en utilisant leslistes d'anité pourhoisir lesappliations.
Si nous n'avons pas uniquement desappliations séquentielles, nous ne pouvons pasutiliser la mo-
délisationen programme linéairede lasetion5.3, etne pouvonsalors pasdéterminerledébit maximal
qu'il est possible d'atteindre sur la plate-forme. Pour borner le nombre d'instanes par rapport aux
fréquenes d'utilisation, on reherhe les appliations qui ont un
nb max j 6= ∞
, et on alule un débitthéorique
T P ← nb max j /f j (on prend le débit minimum, vu que 'est elui qui répond à la plus forte
ontrainte). À partir de ela on realule le
nb max j de haque programme. Cette méthode a également
l'avantage d'êtrebeauoupmoinsomplexe quela résolution d'unprogramme linéaire,et don plus fa-
ilement utilisabledansunasréel dedéploiement,maisa l'inonvénient dene pasfournirundébit qui
soit néessairement admissible par laplate-forme.
Algorithme 1 Approximationd'unesolution entière.
1: Résoudreleprogrammelinéaire
lp
2: Soit
S 0 ← {(i, j, k)|δ i j,k = 0}
3: Soit
S ignore ← ∅
4: Soit
S 1 ← {(i, j, k)|δ i j,k = 1}
5: Soit
S ← {(i, j, k)|(i, j, k) 6∈ S 0 , et (i, j, k) 6∈ S 1 et j 6∈ S ignore }
6: Soit
notP laced ← {j ∈ [1..n]|∀k ∈ [1..nb max j ], ∀i ∈ [1..m], δ i j,k 6= 1 et j 6∈ S ignore }
7: si
notP laced 6= ∅
alors8:
(i 1 , j 1 , k 1 )|δ j i 1 ,k 1
1 = max j 1 ∈notP laced,(i,j 1 ,k)∈S δ j i 1 ,k
9: sinon
10:
(i 1 , j 1 , k 1 )|δ j i 1 ,k 1
1 = max (i,j,k)∈S δ i j,k
11: Ajouter
(i 1 , j 1 , k 1 )
àS 1
12: pourtout
δ j,k i ∈ S 1
faire13: Ajouterlaontrainte
δ i j,k = 1
àlp
14: pourtout
δ j,k i ∈ S 0
faire15: Ajouterlaontrainte
δ i j,k = 0
àlp
16: Résoudrelenouveauprogrammelinéaire
lp
17: si
lp
n'apasdesolutionalors18: Retirer
(i 1 , j 1 , k 1 )
deS 1
19: Ajouter
(i 1 , j 1 , k 1 )
àS 0
20: Refairelesétapes12à15
21: Résoudrelenouveauprogrammelinéaire
lp
22: si
lp
n'apasdesolutionalors23: Retirer
(i 1 , j 1 , k 1 )
deS 0
24: Ajouter
j 1
àS ignore
25: Reommeneràl'étape3tantque
S 6= ∅
26: pourtout
{δ i j 2 ,k 2
2 |δ j i 2 ,k 2
2 6∈ S 0 et δ i j 2 ,k 2
2 6∈ S 1 }
faire27: Ajouter
(i 2 , j 2 , k 2 )
àS 0
5.4.1 Heuristiques ave distribution proesseurs, puis remplissage de la plate-forme
L'algorithme 2présente leadredesheuristiquesprésentées dansette setion.Pour haqueapplia-
tionon ommenepar déterminerunensemblede proesseurssurlesquelselle vapouvoirêtredéployée.
On dépose alors un maximum d'instanes sur es proesseurs en utilisant une ertaine heuristique de
déploiement.Lesproesseursinutiliséspendantl'étapepréédentesontrendusdisponiblespourlesappli-
ationssuivantes. Àlande epremier traitement,ilsepeutqu'il restedesappliationsqui ont enore
desinstanesnondéployées.Ontentealorsderajouterdenouvellesinstanespourhaqueappliationen
round-robin,l'ajoutsepoursuittantque
LB
estréduit.Leround-robinestréalisésurunelisteontenant les appliations répliquées en fontion de leur fréquene : si nous avons 2 appliationsa 1 et a 2, ave
f 1 = 2 × f 2,alors lalisteduround-robinsera {a 1 , a 1 , a 2 }
,ela andeserapproherde larépartitionen
fréquenedonnée initialement.
Sil'appliation est hiérarhique, alors l'algorithmeprésentéen setion5.2estutilisé.
Distributiondes proesseurs. Pourhaunedesheuristiques,ondistribuedesproesseursàl'appli-
ation enlui allouant une puissanede alulproportionnelleà safréquened'utilisation, seulelafaçon
de hoisir lesproesseurs est diérente.
Aléatoire :ontirealéatoirement lesproesseursparmi lesproesseursnonhargés,onsertenpremier
les appliationsqui ont une fréquenelaplus élevée
Algorithme 2 Heuristiquesave distributiondesproesseurs, puisremplissage.
1: pourtout
a j
faire2:
list
_procs ←
hoixdeproesseurspoura j
3: Mapperdesinstanesde
a j
surlist
_procs
4: si
∃a j | P
i
P
j
P
k δ i j,k < nb max j
alors5:
A ← {a j | P
i
P
j
P
k δ j,k i < nb max j }
6:
A f ←
listedesappliationsdeA
répliquées parfréquenef j
7: tantqueminimise
LB
faire8: pour tout
a j ∈ A f
faire9: sil'ajoutd'uneinstanede
a j
amélioreLB
alors10: Mapperunenouvelleinstane
Puissane de alul :on distribuelesproesseurs lespluspuissantsenpremier,etonserten premier
les appliationsnéessitant leplus dealul.
Regroupement :ladistributionsefaitendeuxétapes.Tout d'abordondétete lessous-graphesindé-
pendantsdanslegraphed'appliationgénéral,elaestréalisésimplementparunparoursenprofondeur.
Onobtient ainsidesgroupesd'appliations qui ne ommuniquent pasentreeux, toutes les ommunia-
tionssontinternesauxgroupes.Ontrieensuiteessous-graphesparfréquenedéroissante(lafréquene
d'unsous-grapheétant lasommedesfréquenesdesappliationsleomposant).Puis,ontrielesgrappes
de proesseurs par harge roissante, et puissane déroissante. On alloue des proesseurs au premier
sous-graphe en prenant en priorité les proesseurs de la grappe la moins hargée et qui sont les plus
puissants. La seonde étape onsiste à trier les appliations du sous-graphe par besoin en ommunia-
tions déroissant, puisd'allouerdesproesseursàses appliations.Après avoir traitélesappliationsdu
sous-graphe onpasse auxsuivantsen appliquant lemême prinipe.
Déploiement. Après avoir hoisiun ensemblede proesseurspour uneappliation,il s'agitdehoisir
eux utiliséspour déployerdesinstanes.
Aléatoire :on hoisit unproesseuraléatoirementparmi eux disponibles, eton mappe uneinstane
dessus,puis on reommene tant qu'ilreste desproesseurs disponibles.
Liste :trielesproesseurspar hargedéroissante,etmappedesinstanesdansetordre,lalisteest
triéede nouveau lorsqu'onarrive au bout.
Rapprohement : on herhe parmi les proesseurs disponibles, la grappe sur laquelle il serait plus
avantageux d'ajouter une instane pour réduire les ommuniations, puison ajoute une instane surle
proesseurlemoins hargé deette grappe.
Glouton :onherhe leproesseurqui permetdeminimiser
LB
,etonajouteune instane dessus.5.5 Heuristique listes d'anités
Cette heuristique est inspirée d'une heuristique d'ordonnanement sur plate-forme hétérogène de
tâhesindépendantes néessitant deshiers partagésen entrée,présentée dans[14℄.
Elle fontionne ainsi (algorithme 3) : tout d'abord on détermine les sous-graphes indépendants du
graphe d'appliation (omme dansl'heuristique de distribution des proesseurs par regroupement). On
trie es sous-graphes par besoin en fréquene déroissante (puis ommuniation déroissante, et travail
déroissant).Pourhaundessous-graphes,ontrielesgrappesparhargeroissante,etpuissanedérois-
sante,puisonmappeuneinstanedehaunedesesappliationsaprèslesavoirtriéesparbesoinenom-
muniationdéroissant(etfréquenedéroissante)surunproesseurdelapremièregrappe.Ononstruit
ensuiteles listesd'anités entre proesseursetappliations :pour haqueproesseur
p i etpour haque
appliation,onalulel'anité entrelesdeux:onalulelavaleur
af f inity(a j , p i ) = std
_dev 2 +comm 2
si l'appliation est mappée sur e proesseur.
af f inity
prend en ompte deux des métriques que noussouhaitons minimiser : l'éart de harge sur les proesseurs et les ommuniations entre les instanes.
Le faitd'avoir déjàpositionné une instanede haque appliation va onditionner lavaleurd'
af f inity
,etdon le positionnement desautres instanes. Ontrie ensuite pour haque proesseurles appliations
par ordre roissant d'anité. Le déploiement est réalisé en boulant tant qu'il reste des appliations à
déployeretqu'ilexistedesproesseursquipeuventaueillirdesappliations.Àhaqueétapeonhoisit
leouple
(a j , p j )
quiminimiseLB
,lesappliationsonsidéréesétantpourhaqueproesseurlapremière de lalisted'anité.Algorithme 3 Anité.
1: Clusteriserlegraphed'appliation
2: Trierlessous-graphesparfréquenedéroissante(puis besoinenommuniation,et besoinentravail)
3: pourtoutsous-graphefaire
4: Choisirlagrappelamoinshargée,avelesproesseurslespluspuissants
5: pour tout
a j ∈
sous-graphefaire6: Mapperuneinstane
δ j,k i
,surlep i
lemoinshargé7: pourtout
p i
faire8: pour tout
a j
faire9: Évaluer
af f inity(a j , p i )
10: Construirelalistedesanités
L(p i )
11: tantque
∃{a j | P m i=1
P nb
max j
k=1 δ j,k i < nb max j }
et∃{p i |p i
nonentièrementhargé}
faire12: pour tout
p i
nonentièrementhargéfaire13: Soit
a j
lapremièreappliationdeL(p i )
qui peutenoreêtremappée surp i
14: Évaluer
LB
sionmappea j
surp i
15: Prendreleouple
(a j , p i )
qui minimiseLB
16: Mapper
a j
surp i
5.6 Résultats de simulations
Pour omparerles diérentes heuristiques, nousavonsréalisé un simulateur enPython.
Les résultats suivants ne onernent que des appliations séquentielles. Nous générons des graphes
d'appliations de manièrealéatoire enfaisant varier lenombred'appliations, leurardinalité minimale
etmaximale,leurbesoinenalul(lemaximumdubesoinenalulétantlapuissanedealulminimum
desproesseursdisponibles)etlaquantitédeommuniations.Àpartirde300grainesnousgénéronsdes
graphesenfaisantvarierlaprobabilitéqu'ilyaituneommuniationentredeuxappliations(probabilité
égale à0,10, 30,50,80 ou100%), equi nousdonne un totalde 1800 graphes diérents.
Les simulationssont réaliséessurune plate-forme omposée de quatregrappesomprenant haune
30, 20, 20 et 10 proesseurs ave des puissanes diérentes. Les ommuniations au sein d'une grappe
sont onsidérées négligeables par rapport à des ommuniations inter-grappes. Cela se justie, ar les
latenes sontbien plusfaiblesau sein d'unegrappe àomparer desommuniations longues distanes.
Les gures 5,6(a) et 6(b) représentent les moyennes sur respetivement le débit,la variane surla
hargedesproesseurs,etlaquantitédeommuniations.Étantdonnéquelenombred'instanesesttrès
variabled'uneheuristiqueàl'autre, iln'auraitpasétééquitable deompareruniquementlevolume total
de ommuniations, 'est pourquoi la gure6(b) représente le volume de ommuniations par instane
déployée (totaldesommuniations divisépar le débitde laplate-forme).
60 80 100 120 140 160 180
Moyenne sur le nombre d’instances deployees
Heuristiques
Regroupement & rapprochement Regroupement & glouton Regroupement & liste Regroupement & aleatoire Puissance & rapprochement Puissance & glouton Puissance & liste Puissance & aleatoire Aleatoire & rapprochement Aleatoire & glouton Aleatoire & liste Aleatoire & aleatoire Affinite
Fig. 5 Débit de laplate-forme.
0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6
Moyenne variance charge des processeurs
Heuristiques
Regroupement & rapprochement Regroupement & glouton Regroupement & liste Regroupement & aleatoire Puissance & rapprochement Puissance & glouton Puissance & liste Puissance & aleatoire Aleatoire & rapprochement Aleatoire & glouton Aleatoire & liste Aleatoire & aleatoire Affinite
(a)Varianesurlahargedesproesseurs
200 300 400 500 600 700 800 900 1000 1100 1200
Communications moyennes par instance
Heuristiques
Regroupement & rapprochement Regroupement & glouton Regroupement & liste Regroupement & aleatoire Puissance & rapprochement Puissance & glouton Puissance & liste Puissance & aleatoire Aleatoire & rapprochement Aleatoire & glouton Aleatoire & liste Aleatoire & aleatoire Affinite
(b)Communiations
Fig. 6 Variane surlahargedesproesseurs etommuniations.
L'heuristique par anitéest ellequi sembleombiner le plusd'atouts. Tout d'abord 'est ellequi
déploie le plus d'instanes, ela s'explique par le fait qu'elle n'a pas le même ritère d'arrêt que les
autres heuristiques :elle ontinue de rajouter des instanes tant que laplate-forme le supporte et qu'il
reste des instanes à déployer. Malgré ela, en moyenne laquantité de ommuniations reste orrete :
elle orrespondà environlamoitié desommuniations produites par lesheuristiquesoù ledéploiement
était hoisi par liste ou aléatoirement, et également inférieure aux heuristiques rapprohement lorsque
la distribution est faite par puissane de alul et regroupement. Quant à la variane sur la harge
des proesseurs, elle se situe également dans les premières, battue uniquement par les heuristiques de
déploiement par liste,laombinaisondistribution par puissane et déploiement aléatoire.
Du point de vue uniquement des ommuniations, les déploiements gloutons sont les meilleurs, ils
ont unequantité moyenne de ommuniations par instane laplus faible,par ontre, e sont également
eux qui déploient le moinsd'instanes et qui ont le plus gros éart type sur la harge. À l'opposé, les
déploiementsparlistesontparmi euxquiengendrentleplusdeommuniations(aprèslesdéploiements
Lesheuristiquesaléatoires ontles ommuniations lesplusfortes, unéart typemoyen, etdanslesplus
hautsdébits.
Lesheuristiquesgloutonnes sontellesquisont leplusimpatéesparlehangementdelaquantitéde
ommuniations entre les appliations. Celan'est pasvisible sures graphiques 5
, maisplus laquantité
de ommuniations est élevée, et moins es heuristiques déploient d'instanes. Cela s'explique par le
fait que ette heuristique va avoir tendane à équilibrer rapidement la plate-forme, du oup l'ajout
d'une instane lorsqu'elle rajoute des ommuniations va fortement impater l'estimateur qui ne sera
pasbeauoupminimisé.Lesautresheuristiquesauront tendaneàgénérerdespointsdesurhargesurla
plate-formeen débutde déploiement,duoup l'augmentation desommuniations peutêtreompensée
par ladiminution del'éart type.
6 Conlusion
L'utilisation de ressoureshétérogènes réparties néessited'avoirdes outilssimpleseteaes pour
déployerdesappliations, ependant lesoutilsatuelsmanquent enorede maturitéauniveauxdeleurs
méthodes de séletion des ressoures. Durant e stage, nous nous sommes intéressés à proposer une
extension au modèle générique d'appliations d'un outil de déploiement pour environnement de grille :
Adage, ainsiquedesheuristiquesdedéploiementpourdesappliationsséquentiellesethiérarhiquesen
essayantdesatisfairetroisritères:laminimisationdelaquantitédeommuniationsengendrée,unbon
équilibrage dehargeentreles diérentsn÷uds dealuletmaximiserle nombred'instanesdéployées.
Notre extension de GADe propose un modèle pour des appliations hiérarhiques. Nous avons dérit
lasolution pour le asoù seules desappliations séquentiellessont à déployer àl'aide d'un programme
linéaire, etproposé un algorithmepermettant de déployer une hiérarhie. Enn nousavonsprésentéet
omparé diérentes heuristiquesde déploiement.
Unpointimportant quin'apasétéprisenomptedansesheuristiques,estlaompatibilitéentreles
appliationsetlesenvironnementsibles. Uneappliation n'est forément utilisablesurl'ensembledela
plate-forme(onditionssurlamémoirevive,ousurl'espaedisquedisponible,ouenoresurleslibrairies
installées...). Cela réduit les possibilités quant au positionnement des instanes.Il faudrait sans doute
traiteren priorité lesappliations quine peuvent être exéutées quesurpeu de proesseurs.Cetype de
ontraintesexiste déjà au sein d'Adage, etseront don àprendre en ompte lors de l'implantation des
heuristiques.
Bien que ne onnaissant pas les instants auxquels sont réalisées les ommuniations, elles-i sont
suseptibles d'engendrer des goulots d'étranglement sur les liens de ommuniation. En eet, si l'on
onsidère non plus la plate-forme omme étant un graphe totalement onneté, nous pouvons prendre
en ompte les hemins que doivent emprunter les ommuniations, et dans le as où elles sont toutes
eetuéessimultanément ilsepeutquelesliensne puissentsupporter laharge. Celanéessitetoutefois
desonnaissanes pluspréises auniveau desappliations.
L'étude quenousavonsmenéeeststritement statique:nousonsidéronsavoirdesressoures,etdes
appliations àdéployerà un instant
t
,e déploiement ne hangeant plus par lasuite. Seulement l'utili- sation desappliations déployées à un instantt
ne sera sansdoute pasreprésentative desonutilisation quelquestemps plustard. Celasoulèvele problèmeduredéploiement,'est-à-dire delamodiation dudéploiement atuel pour le faire migrer vers un déploiement plus onforme aux besoins atuels. Cela
5
Des graphiques détaillés par quantité de liens entre les appliations peuvent être trouvés sur
http://graal.ens-lyon.fr/~bdepar do/M 2.htm l
néessitedeprendre en ompte lepositionnement atuel desappliations (pour éviter deredéployer des
instanesquilesontdéjà,siellessonttoujoursutiliséesparlasuite),ainsiquelesmodiationsàapporter
(qui peuvent être uniquement deshangement defréquened'utilisation, ou bienl'ajout ousuppression
d'appliations). Comment obtenir unredéploiement à moindreoûtquisatisfassenosontraintes?Cela
posedesproblèmesde passageàl'éhelle:omment synhroniserles informationsetlesappliationssur
l'ensembledessites pour redéployereaement?
Enn, le déploiement sur un environnement réparti soulève le problème de la séurité au sein des
Grilles,maisela n'est pasl'objetde e travail.
Une version longue de e rapport présente plus en détail l'ensemble des setions de e rapport :
une desription plus préise des logiiels de déploiement, le détail de l'extension du modèle de des-
ription générique des appliations d'Adage, et des résultats de simulations. Il est disponible sur
http://graal.ens-lyon.fr/~bdepardo.
Référenes
[1℄ G. Antoniu, L. Bougé, M. Jan, and S. Monnet. Large-sale Deployment in P2P Experiments Using the
JXTA Distributed Framework. In In Euro-Par 2004 : Parallel Proessing, volume 3149 of Let.Notes in
Comp. Siene,pages10381047,Pisa,Italy, August2004.
[2℄ O. Beaumont, L. Carter, J. Ferrante, A. Legrand, and Y. Robert. Bandwidth-entri alloation of inde-
pendenttasksonheterogeneousplatforms. InInternational Parallel and Distributed Proessing Symposium
IPDPS'2002.IEEEComputerSoietyPress,2002.
[3℄ O.Beaumont,A. Legrand,L.Marhal,and Y.Robert. Steady-state shedulingonheterogeneouslusters :
whyandhow? In6th Workshop onAdvanesinParallel andDistributedComputationalModels (APDCM).
IEEEComputerSoietyPress,2004.
[4℄ D. Bertsimas and D. Gamarnik. Asymptotially optimal algorithms for job shop sheduling and paket
routing. J.Algorithms,33(2):296318,1999.
[5℄ S.Bouhenak,N.DePalma,D.Hagimont,andC.Taton.AutonomiManagementofClusteredAppliations.
September25th-28th2006.
[6℄ E.Caron,P.K.Chouhan,andH.Dail. GoDIET:Adeploymenttoolfordistributedmiddlewareongrid'5000.
InIEEE,editor,EXPGRIDworkshop.ExperimentalGridTestbedsfortheAssessmentofLarge-SaleDistri-
butedAplliations andTools. Inonjuntion with HPDC-15.,pages18,Paris,Frane,June19th2006.
[7℄ E. CaronandF.Desprez. DIET:Asalabletoolboxtobuildnetworkenabledserversonthegrid. Interna-
tional JournalofHigh PerformaneComputing Appliations, 20(3):335352,2006.
[8℄ H. Casanovaand J.Dongarra. NetSolve: anetwork serverforsolvingomputational sieneproblems. In
Superomputing'96:Proeedingsofthe1996ACM/IEEEonfereneonSuperomputing(CDROM),page40,
Washington,DC,USA,1996.IEEEComputerSoiety.
[9℄ P. K.Chouhan. Automati Deployment for Appliation Servie Provider Environments. PhD thesis,Éole
normalesupérieuredeLyon,Frane,September2006.
[10℄ W. Cirne, F. Brasileiro, D. Paranhos, F. L. W. Góes, and W. Voorsluys. On the eay, eieny and
emergent behavior of task repliation in large distributed systems. In Parallel Computing, volume 33(3),
pages213234,April2007.
[11℄ D. P.daSilva,W.Cirne,andF.V.Brasileiro.Tradingylesforinformation:Usingrepliationtoshedule
bag-of-tasksappliationsonomputationalgrids. InEuro-Par2003 Parallel Proessing,August2003.
[12℄ I. Foster and C. Kesselman, editors. The grid : blueprint for a new omputing infrastruture. Morgan
KaufmannPublishersIn.,SanFraniso,CA,USA,1999.