Sélection de pairs et allocation de tâches dans P2P-MPI
|
|
|
- Corinne Rondeau
- il y a 10 ans
- Total affichages :
Transcription
1 Mémoire Master 2 IFA Université Louis-Pasteur Strasbourg Sélection pairs et allocation tâches P2P-MPI Ghazi Bouabene Master 2 IFA 2005/2006 boratoire : Image et Calcul Parallèle Scientique Stage encadré par Stéphane Genaud
2 2
3 Remerciements leur Je soutien remercie quotidien. tout d'abord mes frères, Anis et Karim ainsi que Victoria pour drant Un et grand son soutien merci à Stéphane candidatures Genaud pour ses thèses. qualités bienveilntes d'enca- une"spéciale Enn merci dédicace" à tous pour membres basket-team. l'icps pour leur acceuil chaleureux, avec 3
4 4
5 Table s matières 1 Introduction Modèreprésentationsapplicationsparallè Notreproblème Approchespourrésoudreleproblèmed'allocation OrdonnancementDAG AllocationSTG Cas s ressources homogènes et graphe d'application régulier Cas s. ressources homogènes et.. graphe.... d'application irrégulier Casressourceshétérogènesetgrapherégulier Casressourceshétérogènesetgrapheirrégulier Autresheuristiquesintéressantes P2P-MPI API Middleware Mécanismes découverte s pairs et allocation P2P-MPI Recherche noeuds pour exécuter une application P2P Illustrationduproblème MPI Conventionsreprésentationsgraphes Cadre Etuducomportementl'application Constructionstraces Découvertesliensfortsentretâches Objectif Algorithmegroupementstâches Complexitél'algorithme Exempgroupements Découvertesclustersmachines État l'art 11 3 Proposition d'une métho d'allocation 25
6 6 TABLE DES MATIÈRES Objectif Représentationsinterconnexionsshôtes Algorithmegroupementsprocesseurs Complexité l'algortihme groupement s processeurs Limites Algorithmed'allocation Complexité l'algorithme d'allocation s groupes tâches Conclusion auxclusters Notregrilletests Applicationstypes Résultats Applicationàbarrièressynchronisation Applicationtypemaître-escve Applicationtypediviandconquer Exemp Validation 51 5 Conclusion 59
7 Table s gures 2.1 GrapheSTG T 1 et T 2,Graphed'interactionentre T 1 et T 2.2 GrapheDAGrésultant ungraphettig Exempleclusterisation Arbreclusterisation Exempled'applicationmaitreescve Grille5processeurs ExempleavecuneapplicationenAnneau Exempleavecuneapplicationirrégulière Exempled'uncasdéfavorableclusterisation Exempledivisiongroupe réguritél'agglomération Matriced'adjacencestaches Allocationl'applicationàbarrières Matrice d'adjacence s taches l'application maître-escve applicationdiviandconquer
8 8 TABLE DES FIGURES
9 Chapitre 1 Introduction technologies L'évolution réseau constante ont fait s émerger architectures le concept s ordinateurs ainsi que celle s Grille il vient désormais possible fédérer ressources plusieurs calcul. machines En eet bureauand'atteindrescapacitéscalculrivalisantaveccelssupercalcuteurs l'intermédiaire ou encore d'un cel middleware(intergiciel) s clusters. Ces gril qui sont a pour souvent rôle d'orir construites s services par le transfert au niveau chiers, système le aux ncement utilisateurs tâches tels que à distance, découverte etc. s ressources, ware Dans développé ce cadre pendant on trouve thèse s projets M. Choopan originaux Rattanapoka tel P2P-MPI[10], sous un direction middle- dont M. Stéphane gestion est Genaud. totalement P2P-MPI distribuée permet selon un construire mo pair-à-pair. une grille Les calcul participantàgrilleonttousunstatutd'égalàégaletpeuventbénéciers pairs ressources Cependant,vulegrandnombredésàreleverand'obtenirunintergiciel disponib ainsi que mettre leurs à disposition. plète, grille le problème able, robuste d'une aux allocation erreurs optimale et orant s une tâches API sur programmation machines formant com- plus grille dicile n'a pas par encore l'hétérogénéité pu être traité. s ressources. D'autant plus En eet que ce problème machines est formant rendu une férents grille organismes P2P-MPI (utilisateurs sont géographiquement privés, universités, distribuées entreprises et sous l'autorité.. ). Cette grille dif- est d'interconnexion. donc formée machines à architectures diérentes avec diérents débits dicilel'allocationstâchesd'uneapplicationparallèleauxressourcesd'une Nous allons donc le cadre ce mémoire nous intéresser au problème grille sier hétérogène. diérentes Pour approches ce nous proposées allons un premier littérature temps pour étudier traiter et cs- problème. Nousproposeronsensuiteune métho d'allocation quenouspensons ce adaptéeàgrillep2p-mpi,quenousvalironsennparsexpérimentations sur lè. s applications types i.e s applications fréquentes calculs paral- 9
10 10 CHAPITRE 1. INTRODUCTION
11 Chapitre 2 État l'art L'allocation menttraitélittérature,ceciétantcertainementdûàl'aspect tâches sur un ensemble ressources est un problème rge- NP-complet du cher problème. une allocation En eet optimale plusieures heuristiques diérents cas ont problématiques. été développées an d'appro- possible Le problème tâches (processus) le cadre d'une ce mémoire application est MPI d'allouer sur un le plus ensemble ecacement cesseurs formant une grille calcul. Les applications MPI sont du type SPMD pro- (Single méro du Process processus Multiple est exécuté. Data-stream) Le numéro où un d'un même processus co paramétré MPI est appelé par le son nu- rang.lesprocessusd'uneapplicationmpidémarrentenmêmetempsetpeuvent communiquerparenvoimessage,etceàtoutmomentpendantleurexécution. Le l'application. but recherche Nous allons d'une voir allocation ce chapitre est minimiser une énumération le temps s d'exécution principa techniques Une taxonomie développées s qui travaux s'approchent déjà eectués notre problème. permettra déterminer une ligne directrice pour notre le domaine travail recherche. l'allocation 2.1 Modè représentation s applications parallè d'allocation On trouve prenant en littérature entrée ux principalement modè diérents ux catégories représentation méthos applications parallè. Ces modè représentation sont: s Les DAG : cence Graph), Un est DAG un graphe (Direct Acyclic Graph), aussi appelé TPG (Task Pre- G = (N, E) où N représentant s tâches. Une tâche est une suite est calcul un ensemble i.e une séquence noeuds d'instructions ne contenant aucune primitive communication. Chaque noeud n i N est pondéré par complexité calcul w(n i ) sente. tâche qu'il repré- E est l'ensemble s arcs représentant s dépendances données (ou 11
12 12 CHAPITRE 2. ÉTAT DE L'ART communications) entre tâches. Une communication entre ux tâches n i et n estnotée: j e i,j : n i n j Chaquearc e i,j estpondéréparlevolumedonnéestransférées n i vers n Les communications, suivant le modèle DAG, ne peuvent être eectuées j. qu'au début et à n s tâches. En eet un arc e 1,2 partant d'un noeud n 1 versunautre n 2 signieterminaison n 1 avantlecommencement n Lesarcsrepésententainsiunecontrainteprécénce(dépendancetemporelle) 2. entretâches.[23],[14],[20] Les STG : Graph)estungraphe Un STG(Static Task Graph), aussi appelé TIG(Task Interaction G = (N, s tâches. Chaque noeud E)oùNestunensemblenoeudsreprésentant n i est pondéré par complexité calcul w(n i ) tâche qu'il représente. E tions inter-tâches sans donner est d'indication l'ensemble s temporelle arcs représentant sur ces communications. s communica- Pour ux noeuds n i et n j, un arc noté e i,j joignant n i à n plusieurescommunicationsentre j représente une ou n i et n j. e i,j estpondéréparlevolumetotalsdonnéestransféréesentre n i et n ux sens. j type A diérence n-début, du i.e DAG une communication communications n'induisent pas une dépendance n 1 à n terminaison 2 n'oblige pas à attendre n 1 pourcommencer n doncpasspéciéescemodèlegraphe:uxtâchesliéesparunarc 2.Lesdépendancestemporelnesont un STGestdoncadéquatpourapplicationsparallètypeSPMD,oùl'ona STG peuvent être exécutées simultanément. Le modèle représentation une tâche unique qui démarre simultanément [15]. sur plusieurs processeurs.[5],[9], 2.2 Notre problème Toutd'abord,itimportantcrierdiérenceentre ordonnancement et allocation. L'ordonnacement est recherche où et quand tâche en vue d'améliorer un critère performance, comme durée exécuter d'exécution une totale pcementstâchessurprocesseursquimaximiseuncritèreperformance l'application par exemple. L'allocation se limite quant à elle trouver le (doncle où ser parallélisation uniquement).danslecadrecemémoirenouscherchonsàoptimi- peuvent démarrer simultanément d'une application et communiquer MPI. Les tâches tout au d'une long telle application tion. Comme il n'y a pas dépendances temporel entre tâches, leur exécu- travail d'optimisation se résume donc trouver le meilleur pcement s tâches notre sur du problème processeurs. d'allocation On a donc ux aaire cas à gure un problème se présentent: d'allocation. Dans le cadre Le nombre processeurs est inférieur au nombre tâches Danscecasonretombeleproblèmel'ordonnancementcarondoit
13 2.3. APPROCHES POUR RÉSOUDRE LE PROBLÈME D'ALLOCATION13 prendre s tâches, en notamment compte pour facteurs éviter temps s situations et précénce blocage. lors Par l'allocation le cas où l'on n'assigne qu'une tâche par processeur, s tâches exemple occupenttousprocesseurspeuventresterindénémentenattented'une qui communicationpartd'unetâchenonallouée(etquinepourrajamais l'être). Le nombre processeurs est supérieur au nombre tâches cas est le plus probable le contexte ce mémoire puisqu'on dispose Ce Le d'une problème grille calcul l'allocation ayant un est grand donc nombre un cas particulier processeurs. celui l'ordonnancement, mais meure cependant NP-Complet[13]. (sous-problème) prochechoisiececaspourobtenirsallocationssatisfaisantesenuntemps L'ap- polynomial suivante, cssier est d'utiliser et détailler s méthos quelques heuristiques. heuristiques Nous d'allocations. allons, section 2.3 Approches pour résoudre le problème d'allocation Ordonnancement DAG nancer Beaucoup tâches d'heuristiques d'un DAG ont été manière développées presque optimale, littérature [4], [21], pour [7], ordon- Cette gran variété solutions, ne peut malheureusement pas être directementadoptéenotrecas,oùl'onalloueprocessusd'uneapplicationmpi. [12]. En cénce eet, puisqu'el tâches d'une commencent application toutes MPI en n'ont même pas temps. retion De ce stricte fait el sont pré- modélisées Une solution un possible STG. fomerlegraphestgenungraphedag.cecipeutêtreréaliséenpartitionnant pour pouvoir proter ces méthos serait trans- chaquetâche(noeud)dustgensesphasescalculcomprisesentreuxprimitives à leurs début communications. et n et donc On une obtient représentation ainsi s sous-tâches l'application inter-dépendantes modèle DAG. Prenons par exemple ux tâches conforme au T 1 et T graphestgfig représentées le La tâche T 1 se décompose en trois phases calcul brut (ne contenant pas communications):a 1, A 2 et A 3. T 2 sedécompose en B 1 et B détailléesuxtâchesestmontréefig L'exécution modéliséelestgentre En considérant phases calcul brut, on peut transformer l'intéraction T 1 et T précénceentre 2 enundagreprésentantscontraintes A 1, A 2, A 3, B 1 et B cette solution est loin d'être pratique 2 car:.lafig.2.2donnecedag. Cependant elle donne s graphes très gran taille ment complexité l'allocation, et donc le :cequiaugmentegran- calculer. temps nécessaire à
14 14 CHAPITRE 2. ÉTAT DE L'ART T T1 B1 B A1 A2 A3 T2 T1 Fig. 2.1GrapheSTG T 1 et T 2,Graphed'interactionentre T 1 et T 2 10 A1 10 B A2 15 B A3 Fig. 2.2 Graphe DAG résultant elle introduit une forte contrainte cohérence s'assurer que sous-tâches d'un même processus MPI soient : en eet pcées on doit lemêmeprocesseuranmaintenircohérencesdonnéesetduprogramme. sur vuespourlemodèledag. Ceci inhibe granment le fonctionnement s heuristiques pré Allocation STG quant Les à techniques el moins et nombreuses heuristiques concernant littérature. l'ordonnacement d'un STG sont El peuvent être cssiées selon ux critères principaux: La nature s ressources cib : Par exemple le cas d'un unique cluster qui peuvent avec s être machines soit homogènes; intiques; ou et liens hétérogènes sieures architectures machines le et cas s d'une connexions grappe inter-cluster cluster avec à débits plu- variab. Le graphe modélisant l'application : à dire pouvant être construit en répétant qui itérativement peut être soit un régulier; sous-graphe c'est qu'on appelle motif ses noeuds. ; ou irrégulier, avec s connexions arbitraires entre Latabuivanteindiquecssicationsméthosd'allocationsquel'on
15 2.3. APPROCHES POUR RÉSOUDRE LE PROBLÈME D'ALLOCATION15 va décrire. graphe régulier ressources OREGAMI[17] homogènes ressources PROPHET[24] hétérogènes graphe irrégulier TTIG[22] Bowen, Ghafoor[6] Cas s ressources homogènes et graphe d'application régulier GAMI, Dans[17]auteursdénissentunoutild'allocationtâchesnomméOREtectures allouant parallè. s applications parallè à passage messages sur s archi- structurel'applicationparallèleainsiquearchitecturescib. OREGAMI traite le problème l'allocation en exploitant s régurités Lesauteurssebasentsurl'hypothèsequebeaucoupd'applicationsparallèsont caractérisées tème parallèle par cible s est motifs régulière communication c'est-à-dire formée réguliers. processeurs L'architecture homogènes du sys- connectés L'allocation par une OREGAMI topologie est réseau faite en régulière trois étapes: (hypercube, mesh, Bruijn). contraction s tâches en un graphe plus petit, le cas où le nombre tâches du dépasse graphe celui s processeurs, l'aectation cesseurs et le s clusters tâches contractées à s pro- routage minimiser contentions. s messages à travers le réseau d'interconnexion an Cas s ressources homogènes et graphe d'application irrégulier risation"quiconsisteàregrouperplusieursnoeudsd'ungraphetâchesan Certainesapprochescecasguresebasentsurleprincipe"cluste- s aecter graphes à une tâches même plus ressource. simp Ce (et procédé donc plus clusterisation réguliers). Par permet exemple d'obtenir [11]auteurssepcentlecadred'ununiqueclustermachinesavecs processeurs sur ce système et interconnexions ont un graphe irrégulier. homogènes. Les Les auteurs applications dénissent qu'ils une parallélisent au modèle graphe STG, sous le nom TTIG (Temporal Task Interaction extension Graph) calcul s permettant tâches, mais préciser en plus non un gré seulement concurrence poids en entre communication el. Ils développent et on Task une depenncies) stratégie d'allocation qui tire avantage nommée MATE ce modèle (Mapping en évaluant Algorithm l'utilité based regroupement ux tâches. du modèle TTIG [22] le modèle STG à Les savoir noeuds qu'ils représentent ce modèle ont tâches même pondérées signication par leur que complexité en calcul. Un arc d'un graphe TTIG dirigé d'un noeud T i vers T représentelevolumetotalscommunicationseectuées j T i vers T cité du modèle TTIG rési le fait qu'il associe un paramètre additionnel j.laspéci-
16 16 CHAPITRE 2. ÉTAT DE L'ART aux arcs, qui correspond au gré parallélisme. Pour ux tâches T i et T j adjacentes,i.eliéesparunarc e i,j alnt T i vers T j,legréparallélisme passociéàe i,j est: p = T c p T cj où T cp T j. correspondautempspendantlequel T i et T j s'exécutentenparallèle. T cj L'appeltion estletempsd'exécutiontoal Temporal possible modéliser une retion TIG dérive précénce ce nouveau paramètre le TTIG. car En il vient retion eet T i précètotalement T parallélismeassociéàl'arcalnt j semodéliselettigparungré T i à T j égalà0. Fig. 2.3ungrapheTTIG algorithme MATE [11] temps d'exécution l'application L'objectif en utilisant cet algorithme le modèle est TTIG minimiser déni précémment.l'idéeprincipaleest"clusteriser"tâchesfortementdépendantes le c'est-à-dire tâches à exécuter en associer leur associant au même une processeur. priorité. MATE Cette liste construit est dynamique une liste s recalculée a chaque aectation d'une tâche à un processeur. i.e est L'algorithme dit initial si aucune commence contrainte par dénir communication liste s noeuds ne l'empêche initiaux. Un démarrer noeud à au une début même l'application. distance en arcs On introduit s noeuds alors initiaux une notion sont dits niveau. du même Les niveau. noeuds Pour chaque noeud t i on calcule son niveau N(T i ) minimale en nombre d'arcs d'un noeud initial quelconque. correspondant Dans le à graphe sa distance Fig.2.3, T 1 est seule tâche initiale et on a valeurs N(T 1 ) = 0, N(T 2 ) =
17 2.3. APPROCHES POUR RÉSOUDRE LE PROBLÈME D'ALLOCATION17 1, N(T 3 ) = 1, N(T 4 ) = 1 et N(T 5 ) = noeuds selon un ordre croissant s niveaux. 2. L'algorithme L'idée principale considère est d'évaluer ensuite dépendancestâchesduniveauactuel(tâchesencoursd'allocation)aveccel s fortementdépendanted'unetâchedéjàallouéealorselleestgroupéeaveccelle-ci niveaux précénts(tâches déjà allouées). Si une tâche du niveau actuel est i.e au aectée paramètre au même grès processeur. parallèlisme Cette évaluation entre tâches dépendance indiqué se le fait graphe grâce TTIG.L'algorithmeévaluele gain àassocierunetâche T aumêmeprocesseurqu'unetâche i encoursd'allocation T j déjàallouéeetadjacente à 1 T l'algorithme calcule valeurs suivantes: i.pource temps d'exécution si agrégés :qu'onnote t nécessaire pour exécuter tâche a.c'estletempsminimum T i sur le même processeur que T tempsestdonnéparformule: j. Ce t a = T ci + T cj + T aj où T ci et T cj sonttempscalculrespectifs T i et T j. T au temps accumulé aj correspond T mêmeprocesseur.cetempsaccumulésertaéviterd'aectertroptâches j dû à l'aectation d'autres tâches adjacentes au à un même processeur. temps d'exécution si disjoints : qu'on note t cution minimal s ux tâches lorsque d. C'est le temps d'exé- T i diérentcelui est aectée à un processeur T j.cetempsestégalà t d = T com + T ci + T cj T par où T com correspond au temps communication entre T i et T j, T le temps durant lequel par est T i et T grâce au gré parallélisme j indiqué s'exécutent en le graphe parallèle, TTIG. ce temps obtenu legainestalorscalculécommesuit: gain = t d t a Une valeur positive du gain indique une forte dépendance T i avec T j. T i estdoncaectéeaumêmeprocesseurque T j.silegainestnégatif, T i estalors aectée au processeur le moins chargé Cas ressources hétérogènes et graphe régulier Dans [24] auteurs proposent une pteforme d'allocation tâches sur une grappe clusters s informations sur l'application (groupement et plusieurs ressources. clusters Un modèle distants), coût guidée tenant par compte utilisant du ce calcul modèle ainsi coût que s sont communications aussi proposées. y est proposé. Des heuristiques 1 ux tâches sont dites adjacentes si elle sont reliées par un arc
18 18 CHAPITRE 2. ÉTAT DE L'ART Le modèle côut : l'interconnexionsprocesseurs,topologiescommunications,taille Le coût s communications intra-cluster dépend s communication. messages échangés Les auteurs ainsi expriment que du nombre s coûts processeurs pour s topologies participants communication à Unidimensionnelle régulièrement : trouvées fréquente applications problèmes parallè: basés sur gril et matrices. Les processeurs échangent calcul s scientique avec leurs ux voisins(nord et sud) messages Anneau:Chaqueprocesseurreçoitsonvoisingaucheetenvoitaudroit. Arbre: comme souvent réduction. utilisée applications ayant s opérations globa Cecoûtestalorsexprimécommesuit: T comm [C i, τ](mtaille, p) = (c 1 p) + (p mtaille)/c 2 où C i est le cluster sur lequel tâches sont pcées, τ communication l'application, est topologie mtaille d'octets) transmis en un cycle d'itération est l'exécution, taille messages (nombre p processeurs sélectionnés communiquants, est le nombre c 1 est tence du réseau, c ban passante. 2 est cluster. Il se La peut communication que toutes entre tâches diérents ne puissent clusters pas entraîne être pcées une pénalité sur un même tage.ilfautdoncconsidérerenplus,fonctioncoûtcommunication, rou- un coût routage. T routage [C i, C j ](mtaille) = r 1 + r 2 mtaille où r 1 est une pénalité tence, et r 2 une pénalité par octet routé C i vers C suit: j. Une fonction coût total communication est alors dénie comme T commtotal [C i, τ] = T comm [C i, τ] + k T routage [C i, C j ] où kestlenombremessagesroutésparcycle.cettefonctiondépenddonc topologie communication τ formu pour trois topologies citées précémment: l'application, auteurs donnent T comm [1 D] = max i T comm[ci,1 D] T comm [Anneau] = sum i T comm [C i, Anneau] T comm [Arbre] = T comm [C racine, Arbre] + max i feuil T [C i, Arbre] Pour topologie 1 Donc le coût communication D, tous est processeurs limité par le communiquent cluster le plus simultanément. cas lent. Pour le l envoient Anneau, processeurs reçoivent d'abord leur voisin gauche puis Arbre,feuilcommuniquentmanièresimultanéeentreelpuisenvoient au droit. Le coût communication est donc additif. Pour topologie
19 2.3. APPROCHES POUR RÉSOUDRE LE PROBLÈME D'ALLOCATION19 àleurnoeudpère.lecoûtcommunicationpourcettetopologieestdoncdéni manière récursive. Unefonctioncoûtcalcutaussidéniecommesuit: T cal = ctaille coutarchi nbp DU/p où nbp DU du domaine est le données, nombre par exemple PDU (Primitive 4 octets) Data manipulés Unit : durant plus petit phase morceau calcul, ctaille est quantité calcul exécuté sur un PDU, coutarchi coût d'exécution spécique à l'architecture du processeur. est un Le coût d'exécution total l'application est alors nalement donné par T exe = nbcyc (T cal + T comm ) où nbcyc est le nombre cyc d'itération l'exécution. Les heuristiques : H2 qui cherchent s allocations Les auteurs minimisant proposent le ensuite coût exprimé ux heursistiques, ci-ssus. H1 et Heuristique avec s capacités H1 : Cette communication heuristique se intiques pce entre le cadre ressources. d'un système cettehypothèse,ils'agitbaserrecherchesurpuissancecalculs Dans clusters. processeurs. Les On clusters commence sont donc par cssés explorer selon le meilleur puissance cluster. cumulée On attribue leurs à disponib chaque tâche et s'il un reste processeur s tâches disponible. à pcer, S'il on n'y explore a plus le cluster processeurs le cssement, et ainsi suite. suivant HeuristiqueH2: Cette communication heuristique se du pce système sont un cadre hétérogènes. plus général, Un simple où cssement capacités s routageversunclusterpuissantpeutêtretroppénalisantparrapportàun clusters selon puissance n'est alors plus approprié car le coût routageversunclustercertesmoinspuissantmaisnécessitantstemps communicationinférieurs.l'heuristiqueh2estbaséesurvaleur T dénieprécémment,quitientcompteàfoisstempscalculets exe temps d'exploration communication. s clusters. Tout En procédant d'abord, on toujours établit un nouveau l'ordre s cssement établi par H1, on cherche, pour chaque cluster pris individuellement, clusters permettant d'obtenir une valeur celui T que si un cluster ne dispose que d'un nombre exe minimale. inférieur On peut ressources remarquer rapport au nombre tâches à pcer, certaines ces tâches sont, lors par attente cette sur phase certaines d'évaluation ressources clusters rrière uniquement, s premières considérées tâches déjà comme pcées. en Lesclusterssontensuitecsséssuivantvaleurminimale T On explore chaque cluster l'ordre du cssement en exécutant exe obtenue. phases: ux
20 20 CHAPITRE 2. ÉTAT DE L'ART Phase1:OnemploiemêmestratégiequeH1.Onsélectionnetous sélectionné. processeurs disponib et on attribue une tâche à chaque processeur Phase 2 : On essaie réduire composante T comm T sommes le cas d'un pcement interclusters(toutes exe tâches. Si n'ont nous pas explorés pu être celui pcées qui engendre sur le même le plus cluster), temps on considère communication parmi clusters T On enlève une s tâches pcées sur un processeur sélectionné comm et on. pce communication sur le cluster global en diminue cours d'exploration, et tant qu'il ceci existe tant s que processeurs le temps disponib sélectionné s sur processeurs le cluster en diminuant cours d'exploration. le temps A communication ce sta, nous avons appartenantàunclustermoinsbiencssé.cesontdoncsprocesseurs mais peut calcul.ils'agitdoncconsidérerconguration,parmicelobtenues être moins puissants, engendrant ainsi une hausse du temps avant et après minimisation composante T d'obtenir un temps d'exécution minimal. comm, qui permet Cas ressources hétérogènes et graphe irrégulier qui Dans prend [6] en entrée auteurs le graphe proposent s une tâches métho ainsi que clusterisation celui s processeurs. hiérarchique tâches fortement communiquantes sont groupées ainsi que processeurs Les pologiquement proches an d'obtenir s graphes plus simp. L'algorithme to- clusterisation génère ainsi ux arbres, un pour processeurs et un pour tâches, qu'il cherche ensuite à combiner. Algorithme clusterisation hiérarchique : tionprésentél'articleestutilisépourlegraphed'applicationainsiquepour L'algorithme clusterisa- legraphedusystèmeparallèle.itunevariationsalgorithmesclusterisation par agglomération comme clusters et qu'on où groupe l'on part pour d'un former ensemble plus tâches grands que clusters. l'on considère l'algortihmeestungraphe L'entrée G = (V, F )où V un ensemble d'arcs. Un ensemble estunensemblenoeudsetf E Une notion contient poids associés aux arcs F. d'anité d'unarcreliantuxnoeudsestgrandplusleuranitéestgran.l'algorithme est utilisée pour le groupement s noeuds. Plus le poids fonctionne noeuds avec en eectuant plus gran plusieurs anité sont passes groupés intermédiaires. s clusters. Durant une La passe passe termine cluster lorsque peut ne tous contenir noeuds qu'un ont seul été noeud(noeud ajoutés à un isolé cluster. i.e ne Il communiquant est à noter qu'un avec autres). pas pivot.cenoeustceluiadjacentàl'arcleplusrge(auplusgrandpoids)du La première étape d'une passe intermédiaire est sélectionner un noeud graphe. départage Puisqu'il d'abord y a au selon: minimum ux noeuds remplissant cette condition, on le plus grand nombre d'arcs rejoignant le noeud.
21 2.3. APPROCHES POUR RÉSOUDRE LE PROBLÈME D'ALLOCATION21 Laprochaineétapepasseestalorssélectionnervoisinsnonclusterisés lepluspetitindicenoeud. seuitalorsutilisépoursélectionnercandidatsàl'inclusionuncluster. du pivot. Ceux-ci sont ordonnés par anité décroissante. Un paramètre Ce un cluster paramètre aient a approximativement pour rôle permettre mêmes que l'ensemble poids. Si s le poids arcs contenus associé à liant un voisin du pivot au pivot peut être considéré simiire (selon le paramètre l'arc au cluster. seuil) Par à ceux exemple liant prenons membres le cas du s cluster noeuds au P, pivot, A, ce voisin est ajouté B et C 2.4où gure P estlenoeudpivotet Aet B onétégroupésavec P. C ajoutéauclustercarlepoidssonlienaveclepivotestassezsembbleàceux peutaussiêtre s est aussi liens compris considéré comme le cluster. pivot. Une Donc fois si qu'un noeud est ajouté au cluster, il C ses voisins non clusterisés pour une inclusion est probable ajouté au au cluster groupe courant. on considère n passe groupes noeuds à forte anité (clusters) sont intiés A et un représentant. nouveau graphe On applique est construit ensuite en une rempcant uxième chaque passe sur cluster ce nouveau par un noeud graphe. le L'algorithme seul noeud. clusterisation s'arrête lorsque le graphe ne contient plus qu'un B 147 C 145 P 150 A Cluster Fig. 2.4 Exemple clusterisation arbre Cette retraçant clusterisation clusterisation est dite hiérarchique au l s passes. car elle Dans permet l'exemple construire gure un 2.5,premièrepassel'algorithmevaintieruxclusters,l'uncomprenant noeuds a, b, c et d, et l'autre comprenant e et f. Appelons ces clusters g et h un graphe respectivement. contenant La ux uxième noeuds passe l'algorithme prend alors en entrée g et h passe précénte. Ces ux noeuds représentants sont regroupés et clusters l'algorithme intiés clusterisation termine. Algorithme d'allocation : prennentréeunarbrerésultantclusterisationdugraphesprocesseurs L'algorithme d'allocation proposé l'article
22 22 CHAPITRE 2. ÉTAT DE L'ART e 2 c 15 b Passe 2 i 10 f d a 14 Passe 1 h g Graphe à clusteriser Etat initial f e d c b a Arbre résultant Fig. 2.5 Arbre clusterisation ainsi ciées qu'un à chaque arbre feuille résultant clusterisation du graphe s processus. Asso- k processeur donc), on trouve l'arbre valeurs clusterisation s processeurs (à chaque L k et U charge travail minimum et maximum souhaitée k dénissant pour machine. respectivement Ces valeurs sont répercutées en valeurs m i et M i, aux noeuds non feuil(clusters) R que: i tels m i = L k et M i = U k oùksontfeuildusous-arbreenracinéen R i contrainte On dénit aussi charge une valeur travail minimum: viotion Vi correspondant à viotion V i = m i c i m i où c i est charge travail courante sur R i. Avec cette valeur viotion ux ensemb peuvent être dénis: S v = {V i V i > 0}et S a = {V i V i 0} L'ensemble S contrainte v charge contient minimum. tous Lorsque processeurs n'ayant pas encore remplit leur S v est ordonné par V première machine l'ordre est celle qui est plus loin i sa décroissants, travail minimum, c'est donc à elle qu'on doit aecter du travail en priorité. charge Une fois passel'ensemble qu'une machine remplit sa contrainte charge travail minimum, elle S ayant atteint leur charge a.cetensembleappelé travail minimum et auxiliaire,regroupemachines maximum. qui sont encore en ssous L'algorithme récursif d'allocation est appelé avec paramètres (r, R) où r estunnoeudl'arbresprocessuset Runnoeudl'arbresprocesseurs.
23 2.3. APPROCHES POUR RÉSOUDRE LE PROBLÈME D'ALLOCATION23 Pourl'appelinitial (r, R) vérie faisabilité sontracinessuxarbres.acestal'algorithme entrechargetravailminimumetmaximumtousprocesseursalorsil solution. Si le nombre processus n'est pas compris n'y a pas solution. L'algorithme vérie ensuite si le noeud R processeursestunefeuille(doncunemachine).danscecastousls l'arbre rsont s assignés l'algorithme au processeur récursif R. d'allocation. Cette uxième vérication est condtition d'arrêt L'algorithmeboucletantquels r tionned'abordleclusterprocesseurs n'ontpastousétéalloués.ilsélec- R m,ls Ravecplusgranvaleur V Il i sélectionne i.e le cluster ensuite processeurs le plus loin sa charge travail minimum. r m : le ls r alloue au cluster séléctionné précémment ayant le en plus réitérant grand l'algorithme nombre ls avec qu'il paramètres(r m, R m ) Autres heuristiques intéressantes du fait D'autres qu'elle méthos aient un but ne rentrent très restreint pas mais néanmoins cssication intéressant. décrite Dans[19] ci-ssus, par coût exemple en communication auteurs d'une proposent application une métho parallèle. dont La démarche le but est consiste réduire à faire le correspondre communications au inter-tâches. mieux le graphe An d'interconnexion pouvoir estimer s le processeurs coût en communication à celui s principaux: généré par une allocation possible, auteurs dénissent trois problèmes Déterminer le besoin en communication l'application parallèle : Pour pouvoir déterminer exactement talement l'application en mesurant volumes ce besoin, données il faut échangés exécuter entre to- tâches. dant l'exécution Cependant l'application auteurs font et appel ne souhaitent à leur métho pas gaspiller d'allocation toute pen- exécution pour extraire le graphe communications. Ils se basent une une assomption régurité le graphe communication s applications sur pour une durée parallè. retivement Ils surveillent petite donc par rapport le comportement à son temps l'application total an détecter s motifs réguliers et prédire le besoin d'exécution communication. total en Déterminer ressources réseau disponib sur le système information est représentée sous forme d'une table distance où Cette coût est associé à chaque communication possible entre processeurs du un système. Dénir un sélection allocations Cecritèreestévaluéàpartirsuxtabdistancesentrestâcheset processeurs. cation l'application. La métho Ce consiste coût est à évalué minimiser comme le coût suit: total en communi- N N C = c ij.d mim j i=1 j=1
24 24 CHAPITRE 2. ÉTAT DE L'ART où c ij représente le volume d'une communication tâche T i à T j, et d mim j lecoûtd'unecommunicationduprocesseur m i associéàt i vers m j associéàt L'algorithme j proposé. aléatoire qu'il évalue, puis perturbe l'article en commence permutant par ux eectuer pcements, une allocation évaluelecoûtencommunication.silecoûtestréduitpermutationestvalidée. puis ré- Ce permutations. processus s'arrête A ce sta lorsque l'allocation le coût n'a en cours pas diminué et son coût puis sont un enregistrés nombre xé et processus précént recommence avec une nouvelle le graine départ). L'algorithme s'arrête lorsqu'un nombre souhaité (allocation graines aléatoire évalué. a été
25 Chapitre 3 Proposition d'une métho d'allocation 3.1 P2P-MPI dant, P2P-MPIpeutêtrevucommeuneimplémentationMPIenJAVA.Cepenbrairiecommunication,cequirendl'exploitationsapplicationsplusconfortable fonctionnalités P2P-MPI dépassent rgement cel d'une simple li- donnons qu'avec ici une un scription environnement rapi traditionnel s fonctionnalités programmation P2P-MPI, parallèle. le lecteur Nous intéressépeutseréférerà[10]pourplusdétails. L'objectif premier P2P-MPI est fournir un environnement en grille pour un middleware(intergiciel) programmation d'applications et a donc parallè. le voir d'orir P2P-MPI s a services ux rô au niveau : c'est système fertchiers,lencementtâchesàdistance,etc.leuxièmerôleestcelui à l'utilisateur tels que découverte s ressources mandées, le trans- l'api(applicationprogramminginterface)programmationparallèlequ'il fournit au développeur API calcul La plupart permettent s projets le calcul recherche travaux ayant constitués pour but formation tâches indépendantes d'une grille uniquement, serveur (ou RPC). avec comme L'avantage modèle ce programmation modèle estqu'it sous-jacent adéquat le pourenvi- mo clientronnementscalculdistribuémaisillimitecependantdiversitésconstructiondèle parallè programmation à s applications plus général type basé client-serveur. sur le passage P2P-MPI messages, ore dont un mo- mo client-serveur peut être vu comme un cas particulier. On trouve le distribution L'implémentation P2P-MPI une libraire spécication communication MPI est faite ressembnt en Java en à l'api suivant MPI. 25
26 26 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION recommendations à spécication C/C++/fortran[18]. MPJ [8] quel primitives ressemblent fortement sur La grille motivation qui est première par nature hétérogène. l'utilisation Java est portabilité s cos Middleware faire Un rejoindre utilisateur une souhaitant grille P2P-MPI faire partager en tapant simplement ressources sa machine peut mpiboot processus gatekeeper. Le gatekeeper joue ux rô: qui nce un ildécremachinelocalecommeétantdisponibleaurestecommunauté, lorsque et l'utilisateur déci d'accepter émet une ou requête décliner job, requêtes le gatekeeper s autres"pairs". trouver le nombre requis machines ainsi que d'organiser est le ncement chargé Le du ncement job. pour chaque tâche d'un (ou job processus) MPI requière puis l'assignation synchroniser d'un tous intiant processus unique barrière MPI_Init. à suivante. Nous détaillerons le processus découverte s machines section per Une transmet fois que à chaque susamment hôte sélectionné ressources le programme ont été sélectionnées, à exécuter ainsi le gatekee- données en entrée ou une URL pour y chercher. Lorsque tous hôtes que ont acquité est diusée, le transfert, et l'application une table peut listant alors démarrer. intiants assignés à chaque processus 3.2 Mécanismes découverte s pairs et allocation P2P-MPI [2].JXTAestunprojetOpenSourcencéparSunMicrosystemsenavril2001. Les mécanismes pair à pair P2P-MPI sont entièrement basés sur JXTA JXTA pouvoir vient interconnecter du mot angis n'importe Juxtapose quel système. Le sur but n'importe premier quel JXTA réseau. est Le peer-to-peer portable, etc. permet JXTA d'interconnecter permet donc un créer ordinateur une sorte avec un réseau PDA, applicatif un téléphone ssus s réseaux physiques. Les principaux éléments JXTA sont: au Peer : P2P. un noeud(une machine, un processeur, un utilisateur) d'un réseau Peer group : unensemblepeersorantunservicespécique Renzvous peer : couvrir d'autres peers fournit ou s à ressources s peers s peer. informations uti pour dé- Router peer : peers qui sont séparés utilisé par pour un trouver rewall. un chemin communication pour Pipe : messages. canal Un pipe communication est asynchrone. permettant d'envoyer et recevoir s
27 3.3. ILLUSTRATION DU PROBLÈME 27 Endpoint : AdresseIP:Port une stination logique à quelle un pipe est lié. Exemple : Advertisements : l'existence peer, peer un document group, pipes en XML ou qui services. nomme, décrit et publie Service : d'autres peers. fonctionnalités oertes par un peer pouvant être utilisées par service De point nommé P2P-MPI. vue JXTA, une grille P2P-MPI est un Peer group orant un joindre Un utilisateur pteforme souhaitant P2P-MPI. partager Pour ce ses il ressources sut ncer calcul un processus doit d'abord appelé re- MPD. (le Peer Dès Group que le principal MPD est ncé, JXTA), il s'enregistre et interroge auprès ensuite du JXTA le Renzvous netpeergroup pour un advertisement du peer Group P2P-MPI. S'il trouve un advertisement, peer ilrejointlepeergroup.sinon,ilcréeunnouveaupeergroupp2p-mpi,publie un pipe advertisement advertisement correspondant ainsi qu'un advertisement et rejoint le peer spécial group. : le Il publie ensuite un MPD Advertisement renseignant CPU, système sur d'exploitation). caractéristiques machine (adresse IP, taille mémoire, Recherche noeuds pour exécuter une application P2P-MPI cationparallèlecomprenant Dans l'implémentation actuelle P2P-MPI, lors du ncement d'une appli- N MPD interroge le Renzvous Peer tâchespuisunemachineexécutantunmpd,le pour N 1 à l'origine requête est obligatoirement participante Pipe advertisements( avec N-1 autres machine chines, elle a au moins le processus numéro 0). Le Renzvous Peer lui renvoie ma- liste s N 1 alors tâches aux premiers hôtes selon pipe une Advertisements métho qu'il connait. Le MPD aecte round-robin lequel hôtes sont renseignés réponse du Renz suivant vous. l'ordre comptant Par exemple 6 tâches parallè le cas où un utilisateur souhaite ncer une application T 0 à T pour trouver 5 hôtes exécutant un MPD. 5, son Si MPD le Renzvous interroge le peer Renzvous lui renvoie Peer liste {P 3, P 8, P 1, P 5, P 9 },lempdaectetâchesselonlemoround-robin: T 0 machine locale, T 1 P 3, T 2 P 8, T 3 P 1, T 4 P 5, T 5 P Illustration du problème ensemble Un programme tâches disposant parallèle s'exécutant du même co sur source grille dont P2P-MPI le comportement est formé varie d'un selon programme,unepremièreidéeintuitiveseraitd'aectertâchesduprogramme un paramètre entier appelé le rang. An d'avoir une exécution rapi du aux d'être machines optimale car plus elle puissantes ne prend sur pas du grille. tout Cependant en considération cette solution qualité est loin s
28 28 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION liens exemple réseau le cas ni s volumes tâches communications entre tâches. Prenons par T 0, T 1, T 2 et T coût en calcul s tâches est indiqué au centre 3 du s graphe cerc. STG Un arc reliant g 3.1. ux Le tâchesindiquescommunicationsdontlevolumeestindiquéàcôtél'arc.on veut suivants exécuter listés cette par ordre application décroissant sur grille puissance g : 3.2 formée s processeurs P 1, P 2, P 3, P 5 et P applique métho d'allocation proposée ci-ssus on se retrouve par exemple 4. Si on avec aectations suivantes : T 0 P 5, T 1 P 1, T 2 P 2 et T 3 P Supposons maintenant que volumes communication alnt vers 3. T importants vis-à-vis capacité du lien réseau, tences dûes au 0 réseau soient peuvent doncétéplusjudicieuxd'aecter donc inhiber l'accélération dûe à puissance s machines. Il aurait T 0 à P processeurs où s'exécutent le reste s 4 quisetrouvelemêmeréseauque l'allocation, d'optimiser en priorité tâches. communications De même, si réseau, l'on envisage, on n'a alors lors aucune cadre garantie ce mémoire sélectionner est donc s trouver machines une approche puissantes. d'allocation Le problème qui tienne le à puissance fois compte s machines s volumes an d'apporter communications une accélération et liens réseau ainsi majorité que s cas. d'allocation. Nous avons Notre évoqué approche d'allocation l'état l'art sera l'aspect donc une NP-Complet heuristique. du problème T T2 T Mo 15 T0 5 Mo 5 Mo Fig. 3.1 Exemple d'application maitre escve 3.4 Conventions représentation s graphes représentation Nous avons s évoqué applications précémment parallè, ux à savoir types graphes utilisés pour DAG avons aussi remarqué que applications MPI tombent et le modèle STG. SPMD Nous qui allouons est représenté et que nous par allons graphes donc utiliser STG. Les graphes exemp d'applications sont du modèle que STG. nous Les volumes utilisés pour pondérer arcs du STG corresponnt aux volumes
29 3.5. CADRE 29 P1 P2 P3 P4 LAN Routeur Lent P5 Fig. 3.2Grille5processeurs échangés pourpondérernoeudssugraphestgsonttempsd'exécutions communications entre tâches. Les poids que nous choisissons normalisés s tâches. Par exemple pour un noeud n i représentant une tâche T graphe STG, le poids i un w i pondérant n noeud) est le temps pris par i (inscrit le cercle représentant le T exemple graphe d'application i pour se trouve s'exécuter sur gure une machine 3.1. référence. Un complets Lesgraphesreprésentantgrilmachinessontquantàeuxsgraphes poidsd'arcnesoitnégligeable.eneet,cesgraphesnoeudsreprésentent i.e tous noeuds sont totalement interconnectés du fait qu'aucun smachinesetarcssinterconnexionsentreel.commemachinesformantunegrillep2p-mpisontconnectéesàinternet(disposentd'uneadresseip, adresse selon s JXTA) routes chaque à diérents machine débits. peut Les joindre poids toutes aectés aux autres arcs formant corresponnt grille aux débits ces routes. Par exemple pour ux noeuds n i et n respectivement ux machines j représentant P 1 et P 2 on a un arc e i,j : n i n j pondéré par d i,j ledébitroutealnt P i à P j,ainsiqu'unarc e j,i : n j n par i pondéré d j,i ledébitaroutealnt P j à P i.itanoterquesouvent d i,j d vuquerouten'estpasmêmeuxsens. j,i Lespoidsattribuésauxnoeudssontcoecientsperformancesmachines par Pour rapport obtenir à ces une valeurs machine nous standard(ayant partons l'hypothèse pour coecient que performances performance s 1). machines cutersurunemachine sont linéaires selon complexité s applications. Il sut alors d'exé- P i unetâcheprenantuntemps t Laperformance d surmachineréférence. P i estalors ti t d. 3.5 Cadre Le choix d'une allocation accélérant l'exécution l'application parallèle vrasefaireselonscritèresstrictsquel'onsexe:
30 30 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION An répartition respecter équitable granurité s charges choisie entre par pairs le programmeur on se xe une et d'avoir contrainte une plusieurs n'exécuter tâches qu'une sur une seule même tâche machine. par machine, i.e. on ne regroupe pas Un Il est autre important critère que concerne ce temps le temps soit raisonnable recherche par rapport l'allocation à l'ampleur proposée. l'application parallèle. La pair grille à pair P2P-MPI l'intergiciel. peut quant Cependant, à elle être il est fortement important hétérogène noter vue que le nature intéressé pour former une grille P2P-MPI, dispose en général d'un ensemble public du machines point assez vue interconnexion homogènes du réseau. point La vue grille architectures P2P-MPI ou serait tout donc, au moins majorité s cas, un ensemble hétérogène sous-ensemb homogènes machines, autrement dit, un groupement mini-clusters. 3.6 Etu du comportement l'application "intelligente" An pouvoir il est important allouer d'en tâches connaître d'une le application comportement parallèle exact. Ce manière comportement échangées entre peut être tâches modélisé ainsi que par un poids graphe en contenant calcul ces volumes tâches. Ces s informations peuvent données en étudiant être une obtenues exécution ux entière manières: en prédisant son comportement: i.e en l'application, plication sur une courte pério son exécution étudiant le an comportement prédire son comportement l'apthèse que pour applications le reste parallè l'exécution. présentent Cette démarche souvent se un base comportement sur l'hypo- Cependant, régulier. solution : suivre prédiction une exécution pouvant entière être incorrecte, l'application nous optons sur grille pour an première terminer son comportement. Notre métho d'allocation s'adresse donc à s dé- utilisateurs grille. souhaitant exécuter à plusieures reprises même application sur Construction s traces cation Les parallèle informations sont: nécessaires pour caractériser le comportement d'une appli- Les messages volumes envoyés données entre échangées tâches. Cette entre information tâches peut : taille être en représentée octets s sous une matrice forme carée d'une symétrique matrice d'adjacence. Cette matrice d'adjacence est M t où une valeur M t (i, j) = M t (j, i) = V signiequetâches T i et T j sesontéchangées V Le poids en calcul s tâches : ces poids corresponnt octets. cution s tâches normalisés par rapport à une machine aux standard. temps d'exé-
31 3.6. ETUDE DU COMPORTEMENT DE L'APPLICATION 31 mitives Les volumes communication communications P2P-MPI. peuvent En être eet mesurés tâches en modiant d'une application pri- P2P-MPI syntaxeressemblefortementauxprimitivescommunicationmpistandard communiquent grâce à s fonctions fournies par l'api et dont : 1 MPI.Send(java.ng.Object sendbuer, int oset, int count, Datatype datatype, int st, int tag) : type fonctiond'envoi countobjets datatype vers le processus st MPI.Recv(java.ng.Object sendbuer, int oset, int count, Datatype datatype, int src, int tag) : fonction réception count objets type datatype ou encore venant du processus src. MPI.Gather(java.ng.Object sendbuer, int sendoset,int sendcount, Datatype sendtype,java.ng.object recvbuffer, int recvoset,int recvcount,datatype recvtype,int root) : quipermetrecevoir recvcount objetstype sendt ype autres processus. venanttous cation On P2P-MPI constate donc an qu'el qu'il nous calculent sut taille modier s données primitives échangées, communi- s paramètres passés l'entête. On peut donc ainsi construire une à partir que nous mémorisons l'objet Trace, contenant tous volumes trace nées reçus et envoyés par le rang. Par exemple pour don- MPI.Send(buf, 0, 1000, MPI.BYTE,3,0), le volume données envoyé vers le rang 3 est égal à : 1000 taille(mp I.BY T E) = En plus s volumes, nous 1000octects. sectionsduco: comptabilisons temps passés certaines le n. temps entre MPI.Init(), le début du programme et MPI.Finalize(), sa le stinataire durées chaque et le volume communication transféré). type envoi (en même temps que Chaque qui s'occupera pair envoie construire ensuite ces le graphe enregistrements total l'application au pair ayant à partir le processus s traces 0, reçues Le pair tous du rang rangs. s tâches 0, peut alors facilement construire matrice d'adjacence M Par contre t poids indiquant en calcul volumes ces tâches données sont moins échangés évints entre à déterminer. processus. En le temps eet non d'exécution seulement du rang, durée i.e d'exécution diérence doit entre être son normalisée, temps terminaison mais en plus sontempscommencement,necorrespondpasàuntempscalculpurmais et prend le aussi cas d'une en compte réception s bloquante temps d'attente MPI.Recv. messages Le temps comme calcul par pur exemple êtreobtenuenadditionnantduréessphasescalculcomprisesentreux peut évènements Cette somme doit communication. En eet temps ensuite mesurés être normalisée traces par varient rapport selon à une machine performances standard. machines où ils ont été pris. An d'avoir s valeurs signicatives on doit alors s 1 El suivent le standard MPJ
32 32 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION xerunemachineréférence(standard)etattribuerauxautresmachinesunenote représentantleurfacteurpuissanceparrapportàmachinestandard.ilsut ensuitediviserletempsobtenupuistracesparcefacteurpourobtenirun temps commepoidscalcultâche.lesnotessmachinespeuventêtreattribuée d'exécution normalisé sur une machine standard que l'on pourra utiliser suite préférences. à l'exécution benchmarks ou être spéciées par l'utilisateur selon ses 3.7 Découverte s liens forts entre tâches Objectif important An d'accélérer réduire l'exécution temps d'une d'attente application ses tâches parallèle dûs sur à s grille, mauvaises il est communications(échange tâches échangeant s volumes gros volumes données sur importants s liens doivent faib). impérativement Pour ce, être aectées à s hôtes fortement interconnectés. tâchesfortementdépendantesi.eattribuertâchesfortementcommuniquantes On cherchera donc lors l'allocation à favoriser localité spatiale s à faire, s il machines est donc d'un important même d'intier réseau ou à débit groupes d'interconnexion tâches fortement fort. communiquantes Pour ce suite un algorithme an d'éviter découverte le plus possible ces groupes. séparer. Nous proposons Algorithme groupement s tâches matrice Asuitecollectestracesd'exécutionsstâches,ondisposed'une d'adjacence M diérentes tâches. Notre t indiquant algorithme prend volumes cette s matrice données en échangés paramètre entre et extrait s groupes tâches fortement interconnectées. Une dénition formelle en l'algorithme se trouve gure suivante.
33 3.7. DÉCOUVERTE DES LIENS FORTS ENTRE TÂCHES 33 Entrées: M t /* Ayant une matrice d'adjacence carrée M t (N, N) */ Soit Grouped = {}; /* Grouped est l'ensemble contenant indices s tâches groupées */ Soit G = {}; /* G est l'ensemble s groupes tâches */ Soit tolerance = 0.1; Soit maxconn; /* maxconn indique connectivité du groupe actuel */ tant que T aille(grouped) < N faire /* on cherche un pivot groupement */ Soit ligne pivot = min({i / Grouped (i, j) N tq 2 j / Groupet (x, y) N 2, M t [i][j] M onajouteunnouveaugroupeà G; t [x][y]}); maxconn = M t [ligne pivot ][j]; /* on appelle ensuite fonction récursive pour le pivot */ ClusterizeRank(ligne pivot ); n /* Fonction ClusterizeRank(pivot) récursive groupement */ Entrées:indicelignedupivotp On ajoute p au groupe actuel G[Taille(G)-1]]; /* on finit l'ensemble V p s voisins p */ Soit V p = {v i / Grouped M t [p][v i ] 0}; V p estordonnéselonsvaleursdécroissantes M t [p][v i ]; pour tous v j V p faire si maxconn (1 tolerance) < M t [p][v j ] alors ClusterizeRank(v j ); n n Algorithm 1: Algorithme Groupement s tâches Etant donné une matrice d'adjacence M t dénie comme suit : M matricesymétriquecarrée t est une (N, N)où N parallèle. La valeur estlenombretâchesl'application M t [i][j] tâches indique le volume données échangées entre T i et T donc j. Cette valeur comprend communications ux sens, M t [i][j] = M t [j][i]. l'indice L'algorithme première commence tâche par eectuant chercher le un plus pivot gros volume groupement. communication; Le pivot est il leur correspond matrice. donc à l'indice Par exemple première si ligne contenant plus gran va- M t [i][j] = M t [j][i] = V aleurmax(m t ) et i < j quel on attribue alors le une pivot valeur est i. On connectivité crée alors référence un nouveau : maxconn. groupe Cette tâches valeur au-
34 34 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION va premier être utilisée pivot pivot, et l'ajout créé le d'autres premier tâches groupe au G[0], groupe. on appelle Après avoir fonction intié récursive le un ordre clusterizerank(pivot). décroissant leur Cette volume fonction communication ordonne avec voisins le pivot. du pivot Elle selon lue ensuite voisins éva- v suivante: i l'ordre an tester s'ils vérient condition maxconn (1 tolerance) < M t [p][v i ] où 1 et toleranceestunparamètrexéaudébutl'algorithme,comprisentre0et cation.si permettant dénir un seuil simirité pour volumes communi- v fonctionrécursive i vériecetteconditiononleconsidèrecommeunpivotetonappelle clusterizerank(v terminent, tâches interconnectées par i ).Lorsquetoutesfonctionsrécursives supérieurs au reste s tâches forment le s groupe volumes courant simiires G. A ce et sta, nettement nombre tâches groupées est inférieur au nombre total tâches N, on si recommence le nouveau groupe. là même Sinon(si manoeuvre toutes à savoir tâches chercher ont été un groupées), nouveau pivot découverte et créer s un groupes tâches est alors terminée Complexité l'algorithme commune Pour évaluer algorithmes complexité traîtant l'algorithme s graphes nous à allons savoir utiliser le nombre une total mesure visitesd'arcs.dansnotrestructuredonnéesreprésentantlegraphe,unevisite d'unarcsetraduitparunaccèsàunevaleurmatrice M évaluercomplexitél'algorithmeennombred'accèsàmatrice t.nousallonsdonc M Pour déterminer un pivot groupement il faut trouver valeur maximum t. matrice matrice. Pour ce il nous sut parcourir moitié s valeurs M groupement t puisqu'elleestsymétrique.leprocessusrecherched'unpivot se fait donc après N 2 2 accès à M t où N est le nombre lignes M t. L'appel à fonction ClusterizeRank(pivot) nécessite N N 1 2 matrice accès à M décroissantes.eneet,ayantl'indicelignedupivot,oneectue t pourordonnervoisinsdupivotselonsvaleursd'interconnexion N 1 pour trouver première valeur maximale puis accès N 2 puis N 3 donnesommesuitearithmétique: ce qui nous N 1 = N N 1 2 Leprocessusformationd'ungroupeàpartird'unematricecarrée. (N, N) adoncunecomplexité )accès. N (N 1 2 appel Onpeutremarquerquelepirecaspourcetalgorithmeestceluioùàchaque fonction ClusterizeRank(pivot), on ne regroupe que le pivot voisin maximum. Dans ce cas le processus formation d'un groupe doit et son répéterpourunematricecarrée se (N 2, N 2)puis (N 4, N La complexité l'algorithme groupement s'exprime donc comme 4),etc... ceci: N 2 (N 2 k) 2 N 2 k sinestimpair 2 k=0
35 3.7. DÉCOUVERTE DES LIENS FORTS ENTRE TÂCHES 35 N 2 1 et (N 2 k) 2 N 2 k sinestpair 2 k=0 Cette somme a au plus N 2 mentstâchesestdoncen termes, complexité l'algorithme groupe- O(N ) Exemp groupements montrant Nous montrons le fonctionnement gures l'algorithme 3.3 et 3.4 aussi ux bien exemp sur s graphes groupements cation réguliers qu'irréguliers. d'appli- pivot Goupe 1 T0 T5 T1 Tolérance = Matrice d'adjacence : T4 T2 pivot T Groupe Fig. 3.3 Exemple avec une application en Anneau chons Déroulons un pivot le cas moitié gure supérieure 3.3. Pour première matrice d'adjacence. itération, nous La recher- maximum est le valeur 8 se trouvant à ligne 0. T pivotgroupement.oncréealorsunnouveaugroupe 0 est donc choisi comme premier g initialisevaleurconnectivité 0 qu'onajouteàg.on g appelons ensuite fonction Clusterizerank(0). 0 (mémorisée A ce sta maxconn)à8.nous on ajoute T 0 à g on marque 0 et T ensuite voisins 0 comme groupée en l'ajoutant au vecteur Grouped. On ordonne T échangés; ce qui nous donne 0 selon l'ordre un ordre suivant décroissant : s volumes données T 1, T 5, T 2, T 3 et T 4. T condition tolérance et peut donc être ajouté au groupe; on appelle 1 satisfait ClusterizeRank(1).Acestaonajoute donc T 1 à g Onordonneensuitesesvoisinsnongroupéscequidonne: 0 etonlemarquecommegroupé. T 2, T 3, T 4 et T 5.En
36 36 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION pivot 3 Tolérance = 0.1 Matrice d adjacence : T1 T3 18 T Groupe 3 pivot 1 T2 T T T7 T9 T pivot 2 T10 T6 Groupe 2 Groupe 1 Fig. 3.4 Exemple avec une application irrégulière examinantconnexion T 1 avec T 2 onconstatequ'ilnesatisfaitpasconditiontolérance(6 < 7.2).Onnecherchealorsplusàintégrervoisins T à 1 g 0.OnrevientalorslecontexteClusterizeRank(0). T voisinlepluscommuniquantavec 5 estleuxième T appelledoncclusterizerank(5).pareilqueprécémment, 0 etilsatisfaitconditiontolérance.on T 5 estajoutéàg l'ordresesvoisinsnongroupésest: 0 et T 4, T 3 et T 2.Comme T tolérance, ClusterizeRank(5) termine ce qui termine ClusterizeRank(0) 4 nesatisfaitpas coup nalise le groupe et du g 0. On a donc à ce sta le groupe g 0 contenant T 0, T et 1 T 2.Lesétapessuivantessont: on recherche un nouveau pivot parmi T 2, T 3 et T 4. T pivot(carligne2contientvaleurmaximale6etal'indicelignele 2 est choisi comme On plus crée petit). un nouveau groupe g 1 avec maxconn = terizerank(2). 6, puis on appelle Clus- T 2 estajoutéàg 1.Sesvoisinsnongroupésordonnés: T 3 et T 4. T 3 satisfaittolérance.onappelleclusterizerank(3). T 3 estajoutéàg 1.Sesvoisinsnongroupésordonnés: T 4.
37 3.8. DÉCOUVERTE DES CLUSTERS DE MACHINES 37 T 4 satisfaittolérance.onappelleclusterizerank(4). T 4 est ajouté à g mine. 1. Tous ses voisins sont groupés. ClusterizeRank(4) ter- ClusterizeRank(3)terminepuisClusterizeRank(2)aussi,nalisantlegroupe g 1 quicontientalors T 2, T 3 et T On revient alors le contexte 4. boucle T antque que toutes tâches ont été groupées et l'algorithme où groupement l'on constate tâches s'arrête. s 3.8 Découverte s clusters machines Objectif groupes Nous avons tâches proposé fortement dépendantes section précénte an un algorithme aecter à s détection à forte proximité. Cependant, vue nature décentralisée P2P-MPI, machines dispose à priori d'aucune information sur localité s machines. Il nous on faut ne donc connectées un moyen i.e permettant mini-clusters d'intier machines. groupes machines fortement inter Représentation s interconnexions s hôtes fort Pour débit, pouvoir il est nécessaire aecter gros connaître volumes le graphe communications d'interconnexion sur s s liens hôtes. à Le présentent graphe d'interconnexion hôtes, et arcs est un routes graphe entre orienté complet hôtes. dont noeuds re- Cegrapheestreprésentésousformed'unematriced'adjacencecarrée M unevaleur p où M p [i][j]indiqueledébitroutealntl'hôte h i vers h à noter que j.it M p n'est pas symétrique, i.e M p [i][j] M p [j][i] l'hôte car route alnt h i h j n'estpasforcémmentmêmeque h j h Les noeuds du graphe sont déterminés par un mécanisme i. exhaustif. Le point faible majeur métho découverte P2P-MPI découverte qu'elleaunevisiontrèslimitéesressourcesdisponibsurgrille.eneetle est MPD tâches ne man parallè. Il découvrir délègue que ainsi le nombre sélection requis s machines machines qui pour exécuteront exécuter l'application An pouvoir au bénécier Renzvous s peer meilleures qui renvoie machines très souvent il nous faut même découvrir liste. machinespossib.oninterrogedonclerenzvouspeerpourtousmpd le plus advertisementsqu'ilconnaît.commep2p-mpiaunearchitecturedécentralisée, on le processus ne peut pas déterminer découverte. si On l'on termine a découvert donc toutes ce processus machines à l'écoulement an d'arrêter "timeout" qu'on se xe(moins d'une dizaine secons). d'un La détermination s poids s arcs formant matrice M elleêtrefaiteuxmanières: p peut quant à
38 38 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION Par un mécanisme découverte automatique : analyse systématiquement connexions qu'il est possible un d'établir mécanisme toute paire d'hôtes et évalue leurs débits. Des travaux sur le sujet entre montré diculté cette tâche [16], qui dépasse rgement le cadre ont ce travail. Spéciée par l'utilisateur : et donc d'inuer sur l'algorithme ce d'allocation. qui lui permet dénir ses préférences Nous optons pour uxième manière : matrice M l'utilisateur. Dans ce cas, chaque MPD doit disposer d'un chier p est spéciée indiquant par liste s hôtes connnus ainsi que leur matrice d'adjacence. Après le processus découvertedumaximumpairspossib,matrice M ne contenir que hôtes connus ayant été découvert. Ceci permet p estsimpliéepour données en entrée l'algorithme clusterisation que nous allons simplier suite et donc d'en réduire complexité. voir Algorithme groupement s processeurs s L'algorithme hôtes recherche clusters prend en entrée matrice d'adjacence M contenir que p qui hôtes a été connus simpliée et disponib après le sur processus grille. Une découverte dénition pour formelle ne l'algorithme se trouve gure suivante.
39 3.8. DÉCOUVERTE DES CLUSTERS DE MACHINES 39 /* Ayant une matrice d'adjacence carrée M p (N, N) où N est le nombre d'hôtes connus découverts */ Entrées: M p Soit Clustered = {}; /* l'ensemble contenant indices s processeurs clusterisés */ Soit C = {}; /* l'ensemble s clusters machines */ Soit tolerance = 0.1; Soit maxconn; /* maxconn indique connectivité du cluster actuel */ tant que T aille(clustered) < N faire /* on cherche un pivot groupement */ Soit ligne pivot = min({i / Clustered (i, j) N tq 2 j / Clusteret (x, y) N 2, M p [i][j] M onajouteunnouveauclusterà p [x][y]}); C ; maxconn = M p [ligne pivot ][j]; /* on appelle ensuite fonction récursive pour le pivot */ ClusterizeHost(ligne pivot ); n /* Fonction ClusterizeHost(pivot) récursive groupement s machines */ Entrées:indicelignedupivotp On ajoute p au cluster actuel C[Taille(C)-1]; /* on finit l'ensemble V p s voisins p */ Soit V p = {v i M p [p][v i ] 0}; /* On cherche maintenant liste s voisins symetriques V sp Soit V sp = {}; pour tous v i V p tq v i / Clustered faire n V sp estensuiteordonnéselonsvaleursdécroissantes p */ si M p [p][v i ] (1 tolerance) < M p [v i ][p] < M p [p][v i ] (1 + tolerance) alors /* on ajoute v i aux voisins symétriques */ V sp.add(v i ); n M p [p][v i ]; pour tous v j V sp faire si maxconn (1 tolerance) < M p [p][v j ] alors n n ClusterizeHost(v j ); Algorithm 2: Algorithme Clusterisation s machines
40 40 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION Etant donné une matrice d'adjacence machines M p dénie comme suit : M p estunematricecarrée (N, N)où N verts (présents). La valeur estlenombred'hôtesconnusetdécou- M p (i, j) indique le débit route entre hôtes h i et h j. l'indicepremièremachinedisposantdulienàplushautdébit;ilcorrespond L'algorithme commence par chercher un pivot groupement. Le pivot est donc matrice; à l'indice par exemple si première ligne contenant plus gran valeur M p [i][j] = V aleurmax(m p ) et i < j i. alors le pivot est connectivité On crée alors référence: un nouveau maxconn. cluster Cette machines valeur auquel va être on utilisée attribue une l'ajout valeur d'autres premier groupe hôtes au C[0], cluster. on appelle Après avoir fonction intié récursive le premier clusterizehost(pivot). pivot pivot, et créé le Cettefonctionséléctionned'abordvoisinssymétriquesdupivot.Unvoisin v i estdit symétrique siledébitroutedupivotvers v unniveautolérance,àceluiroute i estéquivalent,selon v liste s voisins non clusterisés du pivot en testant i verslepivot.onparcourtdonc suivante: s'ils vérient condition M p [p][v i ] (1 tolerance) < M p [v i ][p] < M p [p][v i ] (1 + tolerance) On ordonne ensuite voisins symétriques du pivot selon un ordre décroissantdudébitleurlienaveclepivot.onévalueensuitevoisinssymétriques v i l'ordreantesters'ilsvérientconditionsuivante: maxconn (1 tolerance) < M p [p][v i ] où tolerance et 1 et permettant est un paramètre dénir un xé seuil au début simirité l'algorithme, pour débits compris s entre routes. 0 Si v fonction i vérie récursive cette condition on le considère comme un pivot et on appelle clusterizehost(v terminent, machines interconnectées i ). Lorsque par s toutes débits simiires fonctions et nettement récursives supérieursaurestesshôtesformentleclustercourant C[T aille(c) sta, si le nombre s hôtes groupés est inférieur au nombre total d'hôtes 1].Ace on recommence là même manoeuvre à savoir chercher un nouveau pivot et créer N, découverte un nouveau s cluster. clusters Sinon machines (si le nombre est alors d'hôtes terminée. 'clusterisés' est égal à N), Une débits fois d'interconnexion détection s clusters entre clusters. machines Cette terminée information il reste proximité à déterminer clusters s'avèrera très utile lors du processus d'allocation, notamment s cas où l'on ne dispose que clusters à petits nombres machines. Pour ce le on emploie métho suivante:
41 3.8. DÉCOUVERTE DES CLUSTERS DE MACHINES 41 /* Ayant un vecteur V c contenant liste s clusters formés */ Entrées: V Sorties: c ClusterAdjacence Soit ClusterAdjacence =unematricecarrée(n, clusters; n)où nestlenombre /* matrice d'adjacence s clusters */ pour tous c i V c faire pour tous c j V c et c j c i faire Soit t={}; /* le vecteur contenant tous débits alnt c i vers c j. */ pour tous host l c i faire pour tous host k c j faire t.add(m p [host l ][host k ]); n n On ordonne ensuite t selon un ordre croissant; ClusterAdjacence[c i ][c j ]=t[taille(t)/2]; /* valeur au milieu du tableau t correspond à valeur médiane */ n n Algorithm 3: Algorithme calcul l'adjacnce s clusters machines Pourdéterminerunevaleurdébitreliantuncluster c i à c j nouschoisissons valeurmédianetousliensalntshôtes c i versceux c médianeestcalculéeenordonnanttoutesvaleursdébits j.lavaleur c i vers cj un tableau (l'ordre peut être croissant ou décroissant). La valeur médiane trouve alors au mileu du tableau ordonné. se Complexité l'algortihme groupement s processeurs l'algorithme De même que clusterisation pour l'algorithme sera évaluée groupement en fonction s tâches, du nombre complexité d'accès aux valeursmatrice M Pour déterminer le pivot p. matrice.pourceondoitparcourirtoutesvaleursmatrice clusterisation il faut trouver valeur maximum M matrice p car M p contrairement à M unecomplexité t n'est pas symétrique. Ce processus a donc N accèoù 2 N L'appel à fonction ClusterizeHost(pivot) estlenombrelignesmatrice. nécessite 2 (N 1) trouver voisins symétriques du pivot. Ensuite si accès pour n symétriques,ilfaut est le nombre s voisins n (n+1) 2 ClusterizeHost est atteint lorsque accèspourordonner.lepirecaspourfonction tous voisins du pivot sont symétriques i.e
42 42 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION n = N 1. Dans ce cas fonction ClusterizeHost(pivot) a une complexité N 2 N (N 1) = N 2 +3N 2 2 Le processus recherche d'un accès. comprenant cluster machines une matrice carrée N lignesnécessitealors N 2 +3N N 2 = 3N 2 +3N 2 2 cas pour l'algorithme clusterisation est le même que pour celui accès. du groupement Le pire machines s sont tâches groupées. : lorsque Dans à chaque ce cas appel le processus ClusterizeHosts(), formation d'un seulement cluster ux se répéter pour une matrice d'adjacence carrée comprenant doit N 2 lignes, puis N La 4,etc.. complexité l'algorithme groupement s'exprime donc comme ceci: N 2 3 (N 2 k) (N 2 k) 2 sinestimpair 2 k=0 N (N 2 k) (N 2 k) 2 et sinestpair 2 k=0 Cettesommeaauplus N 2 sationshôtesestdoncaussien termes,complexitél'algorithmeclusteri- O(N ) Limites section L'ecacité validation détection métho s clusters d'allocation. machines Nous montrons sera montrée gure 3.5unexempleoùclusterisationpeutdonnermauvaisrésultats.Cecaspeut Tolérnance = 0.1 P1 P2 P3 P4 Matrice d adjacence : Lien rapi entre P1 et P5 (débit 8.5) LAN (Débit 9) Routeur Lent (Débit 3) P5 P6 P7 P8.4 LAN (Débit 9) Fig. 3.5 Exemple d'un cas défavorable clusterisation
43 3.9. ALGORITHME D'ALLOCATION 43 êtredûàun"bruit"(faussevaleur)matriced'adjacencesmachinesou encore cecaslorssélection un cas particulier d'interconnexion que l'on considère comme rare. Dans P 1 commepremierpivotclusterisation, P voisin vers qui leliensatisfait condition tolérance et ilsera don considéré 5 estun comme comme membres pivot à son d'un tour. unique Il s'en cluster suit que bien toutes que majorité machines d'entre seront el considérées mauvaisesinterconnexions.unesolutionàceproblèmeseraitd'eectuersprétraitements aient statistiquement sur insignicatives matrice d'adjacence et qui peuvent s machines induire an en d'en erreur enlever l'algorithme valeurs clusterisation. 3.9 Algorithme d'allocation dont Nous le but avons est découvrir ux sections dépendances précéntes fortes proposé entre tâches ux ainsi algortihmes liens forts entre machines. Ces informations sont entrées notre algorithme que d'allocation. plication Nous avons parallèle, vu précémment ux facteurs inuent que lors sur d'une performances allocation s tâches l'application: d'une ap- L'aectation s tâches aux : coup calcul aectées à s machines à faib s tâches performances nécessitant induisent beau- une dépendance lenteur d'exécution données avec en plus el. du ralentissement s tâches ayant une L'aectation s communications aux réseaux : nications volumineuses s'eectuant sur s liens à faib débits s induisent commu- Nous s avons temps aussi d'attente remarqué pouvant que bloquer l'optimisation plusieures tâches. ux facteurs en priorité pouvait détériorer gravement qualité qualité l'un l'autre ces donc amener à mauvaises performances l'application. Nous essayons et notre bonnes algorithme performances concilier une au majorité maximum s ces cas. ux facteurs an garantir L'idée plus manurs que nous proposons en calcul est aux d'allouer, clusters découverts l'ordre, plus groupes puissants tâches grille. On pourrait alors penser que ce revient au même que chercher sur optimiser en priorité le premier facteur cité ci-ssus en risquant détériorer à qualitéduuxième.orcen'estpaslecas.eneetenexécutantungroupe que tâches communications fortement dépendantes volumineuses sur se feront machines sur s d'un machines cluster, interconnectés on est assuré par La s sélection liens homogènes du cluster et disposant généralement s à meilleures fort débit. diminue donc pas qualité s communications. Cette performances stratégie calcul ne max-max locationdugroupetâchepoidsmaximumauclusterprocesseursleplus (al- puissant) lors l'allocation peut encore être utilisée sans risque détérioration s performances intra-cluster chines d'un cluster. En eet, comme i.e l'allocation liens s d'interconnexion tâches d'un groupe s machines aux ma-
44 44 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION sont nécessiteuses homogènes, en calcul on peut aux se machines permettre d'aecter, plus puissantes l'ordre, sans risquer tâches détériorer plus trouve qualité s gure communications. suivante: Une scription formelle l'algorithme se /* Ayant liste s Groupe tâches G, et liste s cluster machines C */ Entrées: G, C /* on remplit un vecteur Mapping indiquant pour chaque tache le processeur auquel elle est affectée i.e indice le vecteur = indice tâche et valeur = indice machine */ Mapping [ ]; MappedGroups [ ]; /* MappedGroups est liste s groupes affectés à s clusters */ groupmapp [ ]; /* groupmapp on mémorise l'allocation s groupes aux tâches l'indice est le numéro du groupe valeur est le numéro du cluster */ /* on affecte tâche 0 à machine locale */ Mapping[0] = id machinelocale ; /* On doit donc ensuite affecter le groupe contenant tâche 0 au cluster contenant machine locale */ Soit g Soit 0 legroupetâchescontenanttâche0; c local leclustercontenantmachinelocale; /* On appelle fonction d'allocation d'un groupe à un cluster */ MappGroupToCluster(g 0, c local ); /* puis on ajoute le groupe 0 liste groupes affectés */ MappedGroups.add(g 0 ); tant que T aille(m appedgroups) < T aille(g) faire Soit g max Glegroupeleplusnécessiteuxencalcul; si c l tq NbTaches(g max ) < NbMachines(c l ) et c l contient d'autres groupes taches alors MappGroupToCluster(g max, c l ); sinon Soit c max C leclusterlepluspuissant; MappGroupToCluster(g max, c max ); n MappedGroups.add(g max ); n Algorithm machines 4: Algorithme d'allocation s groupes tâches au clusters
45 3.9. ALGORITHME D'ALLOCATION 45 ant Nous 0àmachinelocale.Ceciestfaitpourrespecterlefonctionnementnormal remarquons que l'algorithme alloue d'oce tâche ayant pour intip2p-mpi.eneetlorsqu'unutilisateurnceunjobsurunegrillep2p-mpi, le processus ayant pour rang 0 pose donc une forte contrainte s'exécute dont on réduit toujours l'impact sur sa en machine. allouant Ceci le groupe nous im- tâchescontenant T 0 auclustermachinescontenantmachinelocale. n'ont Lasuitel'algorithmeestalorssimple.Tantquetousgroupestâches le plus pas manur été alloués en calcul. à s clusters, On cherche on cherche ensuite un d'abord cluster le contenant groupe d'autres tâches groupes défaut on et alloue disposant le groupe d'assez maximal machines au plus pour puissant contenir cluster le groupe disponible. maximal. A Nous allons détailler suite fonction MappGroupToCluster. location. Nous avons L'un xé ces précémment critères impose s qu'une critères machine stricts pour n'exécute notre métho au maximum d'al- qu'une cluster seule machines, tâche. Lors ux cas l'allocation gures s peuvent tâches apparaître: d'un groupe tâches à un Le cluster: nombre ce tâches cas le du critère groupe cité est ci-ssus inférieur est au respecté. nombre Il sut machines d'adopter du une mettre stratégie à jour d'allocation ensuite s informations tâches aux concernant machines, le type cluster. max-max, et Le nous nombre ne pouvons tâches pas aecter est supérieur toutes au nombre tâches du groupe machines au : cluster ce choisi cas sansenfreindrelecritèred'unicitétâcheparmachine.si n tâchesdugroupeet t estlenombre n aecter m lenombremachinesducluster,ondoitalors n m tâches du groupe au cluster courant puis n t n restantes au cluster le plus proche. m tâches au nombre Dansleuxièmecasgure(lenombretâchesdugroupeestsupérieur clusterdoitsefairemanièrejudicieuse.eneet,lefaitqueuxtâchesfassent machines du cluster) le choix s tâches qui s'exécuteront sur le partie semble.prenonsparexemplelecasdugroupeggure3.6quel'onveut du même groupe, ne signie pas forcémment qu'el communiquent en- allouer sur le cluster C. Si l'on choisit d'aecter tâches T 0, T 2 et T C, on eectue toutes communications du groupe 4 sur aux s machines liens externes du cluster clusters et on dégra donc performances l'application. Il faut donc une au stratégie s tâches. C'est division le rôle du groupe l'algorithme tâches qui division tienne s compte groupes s communications gure suivante. tâches décrit
46 46 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION 9 T0 9 T5 T1 9 9 T4 T2 9 T3 9 Groupe G Fig. 3.6Exempledivisiongroupe Cluster C /* Ayant un groupe tâches : G et taille du sous groupe souhaitée : t */ Entrées: G : Groupe, t : Entier Sorties: Agglomerated : V ecteur /* contient indices s tâches agglomérées */ Soit M tg matriced'adjacencestâches M t réduiteaugroupeg; /* cette matrice ne contient que adjacences entres taches G */ /* On commence par rechercher un pivot d'agglomeration */ Soit ligne pivot = min({i / Agglomerated (i, j) N 2 tq j / Agglomeratet (x, y) N 2, M tg [i][j] M tg [x][y]}); /* et on ajoute le pivot à l'agglomération */ Agglomerated.add(ligne pivot ); tant que Taille(Agglomerated)< t faire /* on cherche tâche plus communiquante avec Soit t c tq i Agglomerated M t[t c ][i]estmaximale; tâches agglomérées */ Onajoute t c àagglomerated; n Algorithm 5: Algorithme division d'un groupe tâches Danslecasgure3.6,l'algorithmeconsidère T mération car elle échange un volume maximal données(9) 0 commepivotd'agglo- plus petit indice. tout en ayant le T 1 est le premier t c choisi car il communique un volume 9 avec T 0. T 2 estleuxième t c choisicarilcommunique 9avec T donc un sous groupe tâches fortement interconnectée 1.Onobtient (T 0, T 1 et T aecter aux machines du cluster C. 2 ) an respecte On peut régurité remarquer s graphes gure d'applications 3.7 que cet en algorithme découpants. d'agglomération En eet on
47 3.9. ALGORITHME D'ALLOCATION 47 T T T T T T T T T T T T T T T Sous Groupes 5 Fig. 3.7 régurité l'agglomération remarquequesous-graphessgraphesrégulierssontsouventdumêmetype. La fonction mappgrouptocluster peut s'écrire comme ceci: Entrées: g : entier, c : entier /* g est l'intifiant du groupe tâches ; c est /* Fonction mappgrouptocluster */ l'intifiant du cluster */ /* on teste si le groupe peut être entièrement contenu le cluster */ si NbT aches(g) < NbMachines(c) alors groupmapp[g]=c; /* on agit par effet bord sur le vecteur groupmapp */ sinon Soit sousgroupe groupmapp[sousgroupe] Division(g, NbMachines(c)); Soitc'leclusterdisponibleleplusprochec; c; mappgrouptocluster(restegroupe, SoitresteGroupe gprivésousgroupe; c'); n Algorithm 6: Algorithme d'allocation d'un groupe tâches à un cluster machines. Il est important On se contente noter qu'on cette n'aecte fonction pas répertorier tâches directement l'aectation aux groupes aux tâches. Le but est d'éviter "gaspiller" meilleures machines. s Prenons par exemple le cas d'un cluster c 6 tâches machines et ux groupes g 1 et g 2 3 tâches chacun. Si lors l'appel mappgrouptocluster(g c) on alloue tâches directement selon le stratégie max-max, 1, g 1 s'exécuterait
48 48 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION sur 3 meilleures machines c et ne isserait pour g Pour éviter ce on se contente référencer quels groupes 2 sont que alloués trois à pires. clusters. Une fois que l'allocation s groupes aux clusters est terminée on quels plique stratégie max-max en considérant chaque cluster indépendamment ap- on recherche itérativement sa machine plus puissante à quelle on aecte : tâche aectés au plus cluster nécessiteuse courant. en calcul parmi cel tous groupes qui sont 3.10 Complexité l'algorithme d'allocation s groupes tâches aux clusters Soit N clusterisationet c estlenombreclustersmachinesdécouvertsparl'algorithme N groupement s g tâches. estlenombregroupestâchesintiésparl'algorithme lourncalculprend La procédure sélection du groupe tâches le plus N g puis N g 1puis N g 2etc..accèsàlistesgroupes. Ce qui donne en total Ng (Ng+1) 2 accès à cette liste. De même, sélection du clusterlepluissantnécessite Nc (Nc+1) 2 l'algorithme. Le pire cas lors l'allocation accèsàlistesclusterspourtotalité N grillecomprenant tâches parallè sur une M machinesseproduitlorsque N g = N et N c = M tâche est considérée comme un groupe et chaque machine comme un cluster. i.echaque complexitécecasestalorsen La O(max(N, M) une contrainte d'unicité tâche par machine, on ).Commenousavonsimposé 2 a donc retion suivante M N. on a donc une complexité en O(M 2 ) groupes tâches aux clusters machines. l'algorithme d'allocation s 3.11 Conclusion parenteleplusaunôtreest[6]quiestdécritsection2.3.6.l'inconvénient Dans l'ensemble s travaux présentés le chapitre 2, le travail qui s'ap- majeur cité tâche cette par métho machine d'allocation que l'on s'est est qu'elle xé pour ne respecte l'allocation pas le critère tâches d'uni- grille P2P-MPI. En eet lors du pquage l'arbre clusterisation du graphe sur s l'arbre tâches s sur tâches l'arbre (représentant clusterisation un groupe s processeurs, tâches donc) un noeud peut non être feuille alloué un noeud feuille l'arbre s processeurs (représentant une machine). L'algorithme à De plus, d'allocation le récursif cadre n'est notre donc objectif pas adapté pour pour l'allocation notre cas. ne voyons pas l'utilité d'une clusterisation hiérarchique s graphes. s tâches, En eet, nous le sant résultat pour d'une intier première groupes clusterisation tâches (une et passe machines l'algorithme à forte anité. [6]) est sufgroupespeuventêtresusammentvolumineuxpourqu'onaitbesoinnotre Ces application exemple). La réitération découper(lors l'algorithme recherche clusterisation d'un sous-groupe sur ces groupes tâche an par former s groupes plus volumineux nous est donc inutile.
49 3.11. CONCLUSION 49 Finalement en éliminant récursivité hiérarchique clusterisation ainsi que l'allocation nous obtenons une métho d'allocation à moindre complexité.
50 50 CHAPITRE 3. PROPOSITION D'UNE MÉTHODE D'ALLOCATION
51 Chapitre 4 Exemp Validation 4.1 Notre grille tests entrelecampusl'espna,etceluid'illkirch.nousdétaillonsletableau Les tests ont été eectués sur une grille composée 21 machines réparties suivantlocalitécesmachinesainsiquenotespuissancequileursont attribuées. marathon Ressource Espna Lieu nb Machines Note puissance 0.5 id dinadan Illkirch(ICPS) 0.7 A merlin Illkirch(ICPS) 0.9 C B tintagel ttice Illkirch(ICPS) Illkirch(ICPS) D icps-server Illkirch(ICPS) 0.8 E ncelot Illkirch(ICPS) 1 G F gauvain mordred Illkirch(ICPS) Illkirch(ICPS) H sekhmet Illkirch(ICPS) J I HPC(CECPV) Illkirch 11 1 K1-K11 boratoire Nousdisposonsdoncuxclustersmachines:HPCetmachinesdu ces localités ICPS, ainsi matrice que d'une d'adjacence machine suivante: distante : marathon. Nous reétons 51
52 52 CHAPITRE 4. EXEMPLES DE VALIDATION A B C 0 2 D 0 2 E 0 2 F 0 2 G 0 2 H 0 2 I 0 2 J K K2 0 2 K1 0 2 K4 0 2 K5 0 2 K2 0 2 K7 0 2 K8 0 2 K9 0 2 K10 0 K où l'on modélise grossièrement le réseau en distinguant 3 groupes: 0 Les11machinesHPC Les La machine machines du boratoire ICPS marathon ICPS. comme étant équidistante s machines HPC et Ces tihme trois groupes clusterisation. seront intiés comme clusters machines par notre algor- 4.2 Applications types d'allouer Dans s tests applications validation à graphes notre régulier métho qui sont d'allocation souvent nous utilisées avons choisi applications parallè type MPI, à savoir: Applications à barrières régulières : calculs parallè nécessitant une Ce synchronisation typed'applications fréquente est utilisé tâches comme par exemple simutions numériques où on a plusieures s générationsouétapestempsquicommencentaprèsunesynchronisation tous communication processus. quelconque. Les applications ce type peuvent avoir un graphe Applications type maître escves : rallèle est très fréquent car il permet favoriser Ce type d'applications machines plus pa- ecaces maître escves, en leur un allouant processus plus central tâches. joue En le eet, rôle maître applications s tâches à d'autres processus dits escves. Dès qu'un escve en allouant termine
53 4.3. RÉSULTATS 53 signe tâche aussitôt qui lui une a été nouvelle assignée, tâche. il renvoie Ainsi le résultat escves au maître plus performants qui lui as- exécutent souventunetopologiegraphecommunicationenétoiledontlecentre le plus tâches. Les applications type maître escve ont est le processus maître. Application type divi and conquer : permet résoudre s problèmes dici. En eet, Ce type processus d'applications telle application exécutent souvent mêmes calculs sur s espaces d'une données diérents an parcourir plus vite l'espace total s données. Ce type d'applications a souvent un graphe communication en arbre. 4.3 Résultats applications Dans nos types expériences avec l'allocation nous comparons faite par version temps d'exécution originale P2P-MPI nos trois celle faite par notre métho d'allocation. et Application à barrières synchronisation comprenant Dans ce test nous nçons une application à barrières synchronisation 13 tâches, puis machine dinadan. Allocation standard : cations diérentes, Notons pratique que on si retrouve chaque exécution très souvent peut donner mêmes s allocationsd'uneexécutuionàl'autreenraisond'unmécanismecache allo- processus découverte et d'allocation round-robin nous donne allocations JXTA.Le suivantes: [MasterofRank0]:IP= :dinadan [MasterofRank1]:IP= :hpc-n31 [MasterofRank2]:IP= :hpc-n32 [MasterofRank3]:IP= :hpc-n33 [MasterofRank4]:IP= :hpc-n34 [MasterofRank5]:IP= :hpc-n35 [MasterofRank6]:IP= :hpc-n36 [MasterofRank7]:IP= :hpc-n37 [MasterofRank8]:IP= :hpc-n38 [MasterofRank9]:IP= :hpc-n39 [MasterofRank10]:IP= :hpc-n40 [MasterofRank11]:IP= :hpc-n41 [MasterofRank12]:IP= :marathon à onpeutremarquercetteallocationqueleprocessusrang0estaecté le choix machine marathon dinadan puis qui est quelle peu judicieux l'application car elle est peut ncée. ralentir On remarque synchronisations globa. Cependant vu le grand nombre machines performantes aussi
54 54 CHAPITRE 4. EXEMPLES DE VALIDATION etc etc etc etc etc etc etc etc etc etc etc etc.. etc.. Fig. 4.1 Matrice d'adjacence s taches HPC La choisies, gure 4.1 cette donne allocation matrice donne d'adjacence un bon temps s tâches d'exécution: construite après réception s s traces. Avec notre métho d'allocation : tâches détecte ce cas un seul groupe Notre contenant algorithme toutes clusterisation tâches l'application. s [MasterofRank0]:IP= :dinadan L'allocation proposée est donc: [MasterofRank1]:IP= :mordred [MasterofRank2]:IP= :tintagel [MasterofRank3]:IP= :icps-server [MasterofRank4]:IP= :hpc-n34 [MasterofRank5]:IP= :hpc-n39 [MasterofRank6]:IP= :hpc-n35 [MasterofRank7]:IP= :hpc-n38 [MasterofRank8]:IP= :hpc-n31 [MasterofRank9]:IP= :hpc-n36 [MasterofRank10]:IP= :hpc-n33 [MasterofRank11]:IP= :hpc-n32 [MasterofRank12]:IP= :hpc-n31 Cette On remarque aectation est ce visualisée choix que certaines gure tâches 4.2(en faisant couleurs) tâche 0 sont aectées à s machines du cluster partie machine du groupe dinadan nçant ne sont pas l'application. présentes On remarque l'allocation. aussi Ceci que est toutes dû au mécanisme machines découverte ce cluster jxta qui n'a pas réussi à trouver toutes machines du boratoire ICPS.
55 4.3. RÉSULTATS 55 Fig. 4.2 Allocation l'application à barrières Cependant enréalisantuntempsd'exécution sdonc77seconsmoins.ceci cette allocation donne meilleures performances que précénte est tante certainement dû au fait qu'on ait ignoré, lors l'allocation, machine dis- marathon n'aprisquantàelleque qui ralentissait synchronisation. La recherche l'allocation 243 ms surmachine dinadan Application type Danscetestnousnçonsuneapplicationtypemaître-escvecomprenant 6 auxescvesungrosvolumedonnéessurlequelilsdoiventeectuerscalculs tâches, puis machine dinadan. Dans cette application le maître transmet et lui renvoyer le résultat. Allocation standard : robin nous donne allocations Le processus suivantes: découverte et d'allocation round- [MasterofRank0]:IP= :dinadan [MasterofRank1]:IP= :hpc-n31 [MasterofRank2]:IP= :hpc-n32 [MasterofRank3]:IP= :hpc-n33 [MasterofRank4]:IP= :hpc-n34 [MasterofRank5]:IP= :ttice aectés Nousremarquonscetteallocationque4sprocessusescvessetrouvent sur transmissions un autre cluster s gros que volumes celui du maître. données Ceci entre suppose le processus donc s maître déis s'exécutant sur dinadan Cette allocation donne un et temps ses 4 d'exécution escves s'exécutant sur s s noeuds HPC. La matrice d'adjacence cette application est suivante:
56 56 CHAPITRE 4. EXEMPLES DE VALIDATION Fig. 4.3 Matrice d'adjacence s taches l'application maître-escve Avec notre métho d'allocation : tâches détecte ce cas 4 groupes Notre tâches algorithme clusterisation s G 1 = {T 0, T 5, T 3 }, G 2 = {T 1 }, G 3 = {T 2 }et G 4 = {T L'allocation proposée 4 }. [MasterofRank0]:IP= :dinadan est: [MasterofRank1]:IP= :tintagel [MasterofRank2]:IP= :ttice [MasterofRank3]:IP= :icps-server [MasterofRank4]:IP= :mordred [MasterofRank5]:IP= :merlin machines.eneetcecasleclusterformésmachinesduboratoireicps On remarque cette allocation l'intérêt découverte s clusters peuvent favorise donc contenir localité totalement spatiale l'application s tâches parallèle. en allouant Notre toutes métho à s d'allocation l'icps. Ceci donne un temps d'exécution s soit machines moins qu'avec une allocation standard. Le temps recherche l'allocation secons n'aprisquantàluique71mssurmachine dinadan Application type divi and conquer prenant Dans ce test nous nçons une application type divi and conquer com- 15 tâches l'application tâches, puis est structuré machine en dinadan. arbre comme Le graphe le montre communication Fig 4.4. s Allocation standard : robin nous donne allocations Le processus suivantes: découverte et d'allocation round- [MasterofRank0]:IP= :dinadan [MasterofRank1]:IP= :hpc-31 [MasterofRank2]:IP= :hpc-32 [MasterofRank3]:IP= :hpc-33 [MasterofRank4]:IP= :hpc-35 [MasterofRank5]:IP= :hpc-36 [MasterofRank6]:IP= :hpc-40
57 4.3. RÉSULTATS 57 t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 t 11 t 12 t 13 t 14 Fig. 4.4 application divi and conquer [MasterofRank7]:IP= :hpc-41 [MasterofRank8]:IP= :marathon [MasterofRank9]:IP= :merlin [MasterofRank10]:IP= :dinadan [MasterofRank11]:IP= :hpc-31 [MasterofRank12]:IP= :hpc-32 [MasterofRank13]:IP= :hpc-33 [MasterofRank14]:IP= :hpc-35 respectée On remarque lors l'allocation cette allocation s tâches que aux machines, régurité ce du qui graphe implique n'a pas qu'on été eectue Cette allocation beaucoup donne communications un temps d'exécution volumineuses sur s s liens inter-clusters. Avec notre métho d'allocation : tâches reconnait l'arbre entier s tâches Notre comme algorithme étant un seul clusterisation groupe. Cependant s pouraectertotalitédugroupeàunseulcluster,ondoitdiviserlegroupe.en ne disposant pas d'assez machines sur aucun s 3 clusters découverts respectant ensous-arbresonminimisecommunicationssursliensinter-clusters.notre régurité l'arbre lors division i.e en regroupant tâches algorithme [MasterofRank0]:IP= :dinadan donne l'allocation suivante: [MasterofRank1]:IP= :merlin [MasterofRank2]:IP= :hpc-35 [MasterofRank3]:IP= :icps-server [MasterofRank4]:IP= :mordred [MasterofRank5]:IP= :hpc-31 [MasterofRank6]:IP= :hpc-32 [MasterofRank7]:IP= :tintagel
58 58 CHAPITRE 4. EXEMPLES DE VALIDATION [MasterofRank8]:IP= :ttice [MasterofRank9]:IP= :hpc-38 [MasterofRank10]:IP= :hpc-39 [MasterofRank11]:IP= :hpc-33 [MasterofRank12]:IP= :hpc-36 [MasterofRank13]:IP= :hpc-37 [MasterofRank14]:IP= :hpc-34 Cetteallocationaétéinhibéeparlemécanismedécouverte JXT n'a pu trouver toutes machines du cluster l'icps. Cette allocation donne Aqui un l'allocationaprisquantàelle temps d'exécution s soit 209mssur une amélioration dinadan s. La recherche
59 Chapitre 5 Conclusion menter Notre une but métho le d'allocation cadre ce s mémoire tâches était d'une application proposer ainsi parallèle que d'implé- grille calcul P2P-MPI. Cette grille étant nature fortement hétérogène, sur une sélection s ressources adéquates permettant d'obtenir s temps d'exécutions minimaux Nous avons est d'autant proposé plus une dicile. graphes communications s métho applications d'allocation ainsi que à base celle du clusterisation graphe d'interconnexion s plication permet s ressources d'intier formant groupes grille. tâches La clusterisation fortement communiquantes. du graphe d'ap- La elle clusterisation d'intier s du groupes graphe d'interconnexion ressources à forte s localité ressources spatiale permet (forts quant débits à d'interconnexion), l'ordre, groupes comparab tâches à s mini-clusters. plus manurs L'idée en est calcul ensuite aux d'allouer, découverts plus puissants sur grille. Ceci nous permet sélectionner clusters machines plus performantes d'un cluster en ayant comme garantie que communications débits.nousavonsimplémentécetteméthod'allocationunedistribution volumineuses entre tâches s'eetueront sur s liens à forts le graphe P2P-MPI l'application permettant parallèle. collecter Nous s avons traces ensuite d'exécution testé cette an métho construire s applications parallè types (fréquentes), que nous avons ncées sur une sur grille une amélioration formée s s machines performances disponib par rapport au boratoire. à métho Les résultats d'allocation montrent dardp2p-mpi.lapoursuitecetravailseferaparplusamptestssur stan- s En eet congurations notre grille plus diverses test (ICPS, que HPC celle ) utilisée ainsi que l'outil le cadre Grid5000 ce mémoire. noeudsfortementhomogènesetinterconnectésparsréseauxtrèsperformants, formé n'orent gène. Cependant pas un bon avec environnement s outils tels que d'expérimentation Grid explorer[1] pour premettant une grille d'imposer hétéroposer s tences s tences au niveau au niveau s routeurs s hôtes, on encore meilleurs l'outil tests Netem[3] peuvent permettant être conduits. d'im- 59
60 60 CHAPITRE 5. CONCLUSION
61 Bibliographie [1] Grid explorer: fci/gdx/. [2] Jxta project: [3] Netem: [4] Olivier and ecient Beaumont, heuristic Vincent for scheduling Bout, and with Yves heterogeneous Robert. A processors. realistic morn Technical Report ENS-Lyon - INRIA, September, [5] S.H. computing. Bokhari. Partitioning problems in parallel, pipeline, and distributed IEEE Transactions on Computers, 37:4857, [6] N.S. arbitrary Nikoou process Bowen systems and A. to heterogeneous C.N. Ghafoor. distributed On the assignment computer problem systems. of Computers, IEEE Transactions on, 41:257273, [7] F.W. gnment Burton, in parallel G.P. computing. McKeown, and V.J. Rayward-Smith. On process assi- Information Processing Letters, 29 :31,34, [8] Bryan frey Fox. Carpenter, Mpj : Mpi-like Vdimir message Getov, passing Glenn for Judd, java. Tony Skjellum, and Geof- Concurrency : Practice and Experience, 12(11), September [9] K. tems. Efe. Computer, Heuristic June:5056, mols of task assignment scheduling in distributed sys- [10] Stéphane forrobustexecutionofmessagepassingparallelprograms. Genaud and Choopan Rattanapoka. A peer-to-peer InB.DiMartino framework et al., editor, EuroPVM/MPI Springer-Verg, September , volume 3666 of LNCS, pages [11] F. using Guirado, an application-oriented A. Ripoll, C. Roig, mapping and E. tool. Luque. pdp, 00:184, Performance prediction [12] J.-J nce Hwang, graphs Y.-C. in systems Chow, with F. D. interprocessor Anger, and C.-Y. communication Lee. Scheduling times. prece- SIAM J. Comput, 18(2):244,257, April [13] E.G Coman Jr. Computer and job shop scheduling theory [14] SangCheolKimandSungguLee. for heterogeneous clusters. icpp, 00:603610, Push-pull:Guidsearchdagscheduling
62 62 BIBLIOGRAPHIE [15] S.-Y. Lee and J. K. Aggarwal. A mapping strategy for parallel processing. IEEE Trans. Comput., 36(4):433442, [16] Arnaud levelnetworkmapper. Legrand, Frédéric TechnicalReport ,EcoleNormaleSuperieure Mazoit, and Martin Quinson. An application- Lyon, February [17] Virginia A.Mohamed, M. Lo, Bill Sanjay Nitzberg, Rajpoadhye, Jan Arne Samik Telle, Gupta,, and Xiaoxiong David Keldsen, Zhong. Moataz gami : Tools for mapping parallel computations to parallel architectures. Ore- International Journal of Parallel Programming, 20(3), [18] MPIForum. University of MPI:Amessagepassinginterfacestandard. Tennessee, Knoxville, TN, USA, June Technicalreport, [19] Juan of a communication-aware Manuel Ordu na, Ferico task Sil, mapping and José technique. Duato. On the velopment Journal of Systems Architecture, [20] Choung rithm utilizing Shik Park linear and clustering Sang Bang of directed Choi. Multiprocessor acyclic graphs. scheduling icpads, 00:392, algo [21] H. arbitrarytargetmachines. El Rewini and T.G. Lewis. Scheduling parallel program tasks onto Journal of Parallel and Distributed 9:138,153, Computing, [22] C. for Roig, static A. mapping Ripoll, of M.A parallel Senar, applications F. Guirado, with and task E. Luque. and data A parallelism. new mol In Proceedings of the International and Distributed Processing Synmposium (IPDPS'02), [23] Rizos on heterogeneous Sakelriou systems. and Henan ipdps, Zhao. 02:111b, A hybrid heuristic for dag scheduling [24] J. computations B. Weissman in and heterogeneous A. S. Grimshaw. environments. A framework for partitioning parallel Concurrency : Practice and Experience, 7(5):455478, 1995.
Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1
CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste
PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES
Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.
Ebauche Rapport finale
Ebauche Rapport finale Sommaire : 1 - Introduction au C.D.N. 2 - Définition de la problématique 3 - Etat de l'art : Présentatio de 3 Topologies streaming p2p 1) INTRODUCTION au C.D.N. La croissance rapide
LE PROBLEME DU PLUS COURT CHEMIN
LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs
Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.
Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis
Algorithmes de recherche
Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème
Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes
Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction
L apprentissage automatique
L apprentissage automatique L apprentissage automatique L'apprentissage automatique fait référence au développement, à l analyse et à l implémentation de méthodes qui permettent à une machine d évoluer
Introduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Conception d'un réseau de transport d'électricité
La Fédération Française des Jeux Mathématiques et la Société de Calcul Mathématique SA avec l'appui de Réseau de Transport d'electricité Conception d'un réseau de transport d'électricité Auteurs : Florian
Chapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Algorithmes d'apprentissage
Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt
RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources
Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils
Les réseaux cellulaires
Les réseaux cellulaires Introduction Master 2 Professionnel STIC-Informatique Module RMHD 1 Introduction Les réseaux cellulaires sont les réseaux dont l'évolution a probablement été la plus spectaculaire
NOTIONS DE RESEAUX INFORMATIQUES
NOTIONS DE RESEAUX INFORMATIQUES GENERALITES Définition d'un réseau Un réseau informatique est un ensemble d'équipements reliés entre eux afin de partager des données, des ressources et d'échanger des
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Réalisation d'un seeder BitTorrent en CPC Stage de TRE sous la direction de J. Chroboczek et G. Kerneis
Réalisation d'un seeder BitTorrent en CPC Stage de TRE sous la direction de J. Chroboczek et G. Kerneis Pejman Attar Yoann Canal 30 juin 2009 1 Table des matières 1 Introduction 3 1.1 CPC................................
TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname
Département d'informatique Architecture des réseaux TP2 - Conguration réseau et commandes utiles L'objectif de ce TP est d'une part de vous présenter la conguration réseau d'une machine dans l'environnement
Conduite et Gestion de Projet - Cahier des charges
Conduite et Gestion de Projet - Cahier des charges 1 Introduction Sophie Toulouse LIPN - Université Paris 13 +33.1.49.40.40.73 99 av. Jean-Baptiste Clément [email protected] 93430 Villetaneuse
Fiche de l'awt Le modèle peer to peer
Fiche de l'awt Le modèle peer to peer L'arrivée du peer to peer (point à point) bouleverse le modèle traditionnel client-serveur. Dorénavant, toute application peut être à la fois client et serveur. Quels
Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1
Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation
chapitre 4 Nombres de Catalan
chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C
modélisation solide et dessin technique
CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir
Module 0 : Présentation de Windows 2000
Module 0 : Présentation de Table des matières Vue d'ensemble Systèmes d'exploitation Implémentation de la gestion de réseau dans 1 Vue d'ensemble Donner une vue d'ensemble des sujets et des objectifs de
Evaluation des performances de programmes parallèles haut niveau à base de squelettes
Evaluation des performances de programmes parallèles haut niveau à base de squelettes Enhancing the Performance Predictability of Grid Applications with Patterns and Process Algebras A. Benoit, M. Cole,
Migration dynamique d applications réparties virtualisées dans les fédérations d infrastructures distribuées
Migration dynamique d applications réparties virtualisées dans les fédérations d infrastructures distribuées Djawida Dib To cite this version: Djawida Dib. Migration dynamique d applications réparties
ORACLE TUNING PACK 11G
ORACLE TUNING PACK 11G PRINCIPALES CARACTÉRISTIQUES : Conseiller d'optimisation SQL (SQL Tuning Advisor) Mode automatique du conseiller d'optimisation SQL Profils SQL Conseiller d'accès SQL (SQL Access
Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application
Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces
Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager
La Solution Crypto et les accès distants
La Solution Crypto et les accès distants Introduction L'objectif de ce document est de présenter les possibilités d'accès distants à La Solution Crypto. Cette étude s'appuie sur l'exemple d'un groupement
1.5 0.5 -0.5 -1.5 0 20 40 60 80 100 120. (VM(t i ),Q(t i+j ),VM(t i+j ))
La logique oue dans les PME/PMI Application au dosage de l'eau dans les bétons P.Y. Glorennec INSA de Rennes/IRISA [email protected] C. Hérault Hydrostop [email protected] V. Hulin Hydrostop [email protected]
Guide de configuration de SQL Server pour BusinessObjects Planning
Guide de configuration de SQL Server pour BusinessObjects Planning BusinessObjects Planning XI Release 2 Copyright 2007 Business Objects. Tous droits réservés. Business Objects est propriétaire des brevets
Examen technique des technologies de mise en cache
technologies de mise en cache LIVRE BLANC Au cours des 10 dernières années, l'utilisation d'applications facilitant les processus métier a considérablement évolué. Ce qui était un plus avantageux fait
Table des matières. 1 Programmation linéaire 1
Table des matières 1 Programmation linéaire 1 2 La théorie des graphes 3 2.1 Dénitions et premières exemples................... 6 2.2 Représentation non graphique d'un graphe.............. 9 2.2.1 Représentation
Date : 18.11.2013 Tangram en carré page
Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches
Pourquoi l apprentissage?
Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage
Programmation linéaire
CHAPTER 1 Programmation linéaire 1.1. Qu'est-ce que la programmation linéaire 1.1.1. Exemple: le problème du régime de Polly [1, p.3]. Besoins journaliers: Énergie: 2000 kcal Protéines: 55g Calcium: 800
Projet : PcAnywhere et Le contrôle à distance.
Projet : PcAnywhere et Le contrôle à distance. PAGE : 1 SOMMAIRE I)Introduction 3 II) Qu'est ce que le contrôle distant? 4 A.Définition... 4 B. Caractéristiques.4 III) A quoi sert le contrôle distant?.5
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
ManageEngine IT360 : Gestion de l'informatique de l'entreprise
ManageEngine IT360 Présentation du produit ManageEngine IT360 : Gestion de l'informatique de l'entreprise Améliorer la prestation de service à l'aide d'une approche intégrée de gestion des performances
Rapport de stage en Master Recherche Informatique
Rapport de stage en Master Recherche Informatique Ordonnancement de tâches dans des grappes de calculateurs par Jérôme Gallard Équipe d'accueil : PARIS Encadrement : Christine Morin, Emmanuel Jeanvoine
NOTATIONS PRÉLIMINAIRES
Pour le Jeudi 14 Octobre 2010 NOTATIONS Soit V un espace vectoriel réel ; l'espace vectoriel des endomorphismes de l'espace vectoriel V est désigné par L(V ). Soit f un endomorphisme de l'espace vectoriel
Domain Name System. F. Nolot
Domain Name System F. Nolot 1 Domain Name System Principe F. Nolot 2 Les besoins Internet est composé de plusieurs réseaux Chaque réseau est composé de sous réseaux Les sous réseaux sont constitués de
Resolution limit in community detection
Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.
Compte-rendu de projet de Système de gestion de base de données
Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison
Télécom Nancy Année 2013-2014
Télécom Nancy Année 2013-2014 Rapport 1A Ajout du langage C dans la Programmer's Learning Machine GIANNINI Valentin Loria 615, rue du Jardin Botanique 54600, Villers-Lès-Nancy Maître de stage : QUINSON
Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation
Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul
TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts
E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond
Stratégie de groupe dans Active Directory
Stratégie de groupe dans Active Directory 16 novembre 2012 Dans ce document vous trouverez des informations fondamentales sur les fonctionnements de Active Directory, et de ses fonctionnalités, peut être
Métriques de performance pour les algorithmes et programmes parallèles
Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and
Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt
Client sur un domaine stage personnes ressources réseau en établissement janvier 2004 Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Lycée de Villaroy 2 rue Eugène Viollet Le Duc BP31 78041
Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>
Langage HTML (2 partie) «Je n'ai fait que prendre le principe d - hypertexte et le relier au principe du TCP et du DNS et alors boum! ce fut le World Wide Web!» Tim Berners-Lee
Systemes d'exploitation des ordinateurs
! " #$ % $ &' ( $ plan_ch6_m1 Systemes d'exploitation des ordinateurs Conception de Systèmes de Gestion de la Mémoire Centrale Objectifs 1. Conception de systèmes paginés 2. Conception des systèmes segmentés
TeamViewer 9 Manuel Management Console
TeamViewer 9 Manuel Management Console Rév 9.2-07/2014 TeamViewer GmbH Jahnstraße 30 D-73037 Göppingen www.teamviewer.com Sommaire 1 A propos de la TeamViewer Management Console... 4 1.1 A propos de la
Cours admin 200x serveur : DNS et Netbios
LE SERVICE DNS Voici l'adresse d'un site très complet sur le sujet (et d'autres): http://www.frameip.com/dns 1- Introduction : Nom Netbios et DNS Résolution de Noms et Résolution inverse Chaque composant
Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. [email protected]. white-paper-cluster_fr.sxw, Version 74 Page 1
Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. [email protected] white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High
Cours n 12. Technologies WAN 2nd partie
Cours n 12 Technologies WAN 2nd partie 1 Sommaire Aperçu des technologies WAN Technologies WAN Conception d un WAN 2 Lignes Louées Lorsque des connexions dédiées permanentes sont nécessaires, des lignes
Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration
Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...
Cours Langage C/C++ Programmation modulaire
Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon [email protected] «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation
Précisions à propos des services de placement. Ordres et politique d'exécution des ordres
Précisions à propos des services de placement Ordres et politique d'exécution des ordres Introduction Dans les Précisions à propos des services de placement, DEGIRO donne le contenu détaillé des accords
Info0804. Cours 6. Optimisation combinatoire : Applications et compléments
Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014 Plan de
Chapitre 6 Expérimentations
Chapitre 6 Nous avons introduit au chapitre précédent plusieurs algorithmes dédiés à l'optimisation du préordre leximin dans le cadre de la programmation par contraintes. Nous allons, dans ce chapitre,
Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V
Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V Microsoft France Division DPE Table des matières Présentation... 2 Objectifs... 2 Pré requis... 2 Quelles sont les
Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.
Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide
Rapport d activité. Mathieu Souchaud Juin 2007
Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix
Licences Windows Server 2012 R2 dans le cadre de la virtualisation
Résumé des licences en volume Licences Windows Server 2012 R2 dans le cadre de la virtualisation Ce résumé s'applique à tous les programmes de licences en volume Microsoft. Sommaire Synthèse... 2 Nouveautés
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION
LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement
Présentation du déploiement des serveurs
Présentation du déploiement des serveurs OpenText Exceed ondemand Solutions de gestion de l accès aux applications pour l entreprise OpenText Connectivity Solutions Group Février 2011 Sommaire Aucun environnement
Vers l'ordinateur quantique
Cours A&G Vers l'ordinateur quantique Données innies On a vu dans les chapîtres précédents qu'un automate permet de représenter de manière nie (et même compacte) une innité de données. En eet, un automate
Séquence de découverte de SparkAngels Logiciel d entraide numérique
Contributeurs : GUILLEZ Frédéric BANDINI Gérard DENIGOT Michaël FOLCH Janine PERILLAUD Stéphanie PLATEL Carl REANT Franck I. Matériel et préparation Pré requis matériel et logiciel : Ordinateur avec connexion
Couples de variables aléatoires discrètes
Couples de variables aléatoires discrètes ECE Lycée Carnot mai Dans ce dernier chapitre de probabilités de l'année, nous allons introduire l'étude de couples de variables aléatoires, c'est-à-dire l'étude
Introduction aux applications réparties
Introduction aux applications réparties Noël De Palma Projet SARDES INRIA Rhône-Alpes http://sardes.inrialpes.fr/~depalma [email protected] Applications réparties Def : Application s exécutant
Processus de Développement Logiciel
Processus de Développement Logiciel Cours M14 Pierre Gérard Université de Paris 13 IUT Villetaneuse Formation Continue Licence Pro SIL LA TE X Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel
Bind, le serveur de noms sous Linux
Bind, le serveur de noms sous Linux 1. Principes de fonctionnement d'un serveur de noms La résolution des noms d'hôtes sur les réseaux tcp/ip est fondée sur le principe d'une répartition de la base des
Parallélisme et Répartition
Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique [email protected] web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre
Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Partie 7 : Gestion de la mémoire
INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases
Livre Blanc WebSphere Transcoding Publisher
Livre Blanc WebSphere Transcoding Publisher Introduction WebSphere Transcoding Publisher vous permet d'offrir aux utilisateurs des informations Web adaptées à leurs besoins. Il vous permet, par exemple,
Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication
Chapitre VII : Principes des réseaux Structure des réseaux Types de réseaux La communication Les protocoles de communication Introduction Un système réparti est une collection de processeurs (ou machines)
La continuité de service
La continuité de service I INTRODUCTION Si la performance est un élément important de satisfaction de l'utilisateur de réseau, la permanence de la disponibilité des ressources l'est encore davantage. Ici
Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide
Acronis Backup & Recovery 10 Advanced Server Virtual Edition Guide de démarrage rapide Ce document explique comment installer et utiliser Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Copyright
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,
Fiche méthodologique Rédiger un cahier des charges
Fiche méthodologique Rédiger un cahier des charges Plan de la fiche : 1 : Présentation de la fiche 2 : Introduction : les grands principes 3 : Contenu, 1 : positionnement et objectifs du projet 4 : Contenu,
La classification automatique de données quantitatives
La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations
Equilibrage de charge pour les grilles de calcul : classe des tâches dépendantes et indépendantes.
Equilibrage de charge pour les grilles de calcul : classe des tâches dépendantes et indépendantes. Meriem Meddeber 1 et Belabbas Yagoubi 2 1 Université de Mascara, Faculté des sciences, Département des
Le Raid c est quoi? Comment ca marche? Les différents modes RAID :
Le Raid c est quoi? Redundant Array of Inexpensive Disks: ensemble redondant de disques peu chers. Le RAID est une technologie qui a été dévellopée en 1988 pour améliorer les performances des unités de
1. LA GESTION DES BASES DE DONNEES RELATIONNELLES
Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de
DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques
livre blanc DÉVELOPPEMENT INFONUAGIQUE MEILLEURES PRATIQUES ET APPLICATIONS DE SOUTIEN DÉVELOPPEMENT INFONUAGIQUE - MEILLEURES PRATIQUES 1 Les solutions infonuagiques sont de plus en plus présentes sur
Conception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Installation d'un serveur DHCP sous Windows 2000 Serveur
Installation d'un serveur DHCP sous Windows 2000 Serveur Un serveur DHCP permet d'assigner des adresses IP à des ordinateurs clients du réseau. Grâce à un protocole DHCP (Dynamic Host Configuration Protocol),
Annexe 6. Notions d ordonnancement.
Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. [email protected] Résumé Ce document
Initiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Programmation linéaire
1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit
Rapport d'analyse des besoins
Projet ANR 2011 - BR4CP (Business Recommendation for Configurable products) Rapport d'analyse des besoins Janvier 2013 Rapport IRIT/RR--2013-17 FR Redacteur : 0. Lhomme Introduction...4 La configuration
Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.
Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de
Les diagrammes de modélisation
L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse
CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280
FR9704668 PC CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES Jean GASSINO, Jean-Yves HENRY eci Rapport IPSN/Département d'évaluation de sûreté N 280 Octobre 1996 INSTITUT DE PROTECTION
