1.1 Introduction au probleme de la repartition de charge. Un programme parallele peut ^etre vu comme un ensemble de t^aches qui communiquent.

Dimension: px
Commencer à balayer dès la page:

Download "1.1 Introduction au probleme de la repartition de charge. Un programme parallele peut ^etre vu comme un ensemble de t^aches qui communiquent."

Transcription

1 Chapitre 1 Repartition de charge P. Bouvry (LMC-IMAG) J.M. Geib (LIFL) D. Trystram (LMC-IMAG) 1.1 Introduction au probleme de la repartition de charge Un programme parallele peut ^etre vu comme un ensemble de t^aches qui communiquent. Un des problemes principaux de l'implantation d'un algorithme sur une architecture de type MIMD a memoire distribuee est celui du contr^ole de la charge des nuds en termes de t^aches a y executer. Concevoir un algorithme parallele, c'est avant tout determiner un ordonnancement des t^aches. Cet ordonnancement peut s'eectuer a deux moments dierents : soit a la compilation (de maniere statique), soit lors de l'execution proprement dite (de maniere dynamique). Le temps global d'execution d'un algorithme parallele peut ^etre tres signicativement degrade par une mauvaise utilisation des ressources (reseau et capacite de calcul). La distribution des t^aches sur les nuds (task scheduling) s'interesse a ce probleme en mettant en place un processus permettant de decider du placement d'une t^ache avant son execution et/ou de la migration de celle-ci. Dierentes strategies existent concernant a la fois l'obtention des informations pertinentes pour la decision et la prise de decision elle-m^eme. Il serait agreable pour le programmeur de disposer d'outils automatiques (ou a defaut, d'aide a la programmation ecace) pour realiser la prise de decision. An d'assurer l'avenir industriel de ce type de machines, le developpement de tels outils s'avere indispensable. L'objet de ce cours est de presenter les principales methodes d'allocation de charge dans le cadre statique et de regulation de charge dans le cadre dynamique. Il est base sur une abondante bibliographie Organisation du chapitre Ce chapitre est consacre a la description de methodes d'allocation et de regulation de charge. Nous envisageons successivement les placements statique et dynamique. Dans le cas du placement statique, une serie d'informations doit ^etre disponible avant l'execution du programme an de pouvoir guider la repartition des t^aches parmi les 1

2 2 CHAPITRE 1. R EPARTITION DE CHARGE processeurs. Apres avoir deni le probleme et donne les principales hypotheses de travail, nous donnons les principales representations des programmes paralleles. Puis nous discutons rapidement les dierents criteres utilises et nalement nous presentons les principales methodes en insistant sur leurs qualites et defauts. Dans le cas du placement dynamique, les strategies doivent disposer d'informations en provenance des dierents nuds - informations dites de charges locales - pour ensuite prendre des decisions de localisations des t^aches. Le choix d'une localisation peut ^etre entrepris a l'occasion du lancement delat^ache, ou encore a tout moment en se basant sur des possibilites de migration des t^aches. Apres avoir introduit les dierents elements permettant la mesure d'une charge locale, cette partie decrit les dierentes strategies de distribution dynamique des t^aches par une analyse des strategies de collecte des informations locales et une analyse des strategies de prise de decision. Dans une conclusion/discussion, on examinera les caracteristiques des architectures distribuees et paralleles sous le point de vue de la distribution dynamique de la charge Statique versus dynamique Les strategies statiques utilisent des approches multiples pour calculer a priori, c'est- a-dire avant l'execution, une distribution optimale (ou au moins, ecace) des t^aches parmi les dierents processeurs. Elles se fondent essentiellement sur une connaissance prealable de dierents parametres associes aux t^aches { comme les co^uts de calcul et de communication { et n'utilisent pas ces m^emes informations en provenance directe de l'execution. Une bonne modelisation et analyse statique ne permettent d'obtenir une bonne solution qu'a condition de disposer de ces informations prealables (ce qui n'est pas toujours possible) et que le systeme soit assez stable pour que la non utilisation de l'etat dynamique du systeme reste une demarche realiste. De ce fait, les approches statiques ne sont pas toujours applicables aux systemes distribues, a la prise en compte de recongurations et de pannes, et aux applications creant dynamiquement de nombreuses t^aches ou chemins de communication telles les applications de type Divide and Conquer ou les applications a base d'objets ou d'acteurs. A l'inverse, les strategies purement dynamiques ne demandent aucun prealable a l'execution. Les decisions qu'elles sont amenees a prendre n'utilisent que des informations obtenues "en temps reel" au cours de l'execution. Elles sont donc particulierement adaptees aux architectures distribuees a grain moyen, avec possibilites de recongurations dynamiques, et aux applications qui viennent d'^etre citees. Elles s'utilisent avantageusement lorsque le systeme permet la migration de t^aches, ce qui ore plus de libertes au processus de distribution. 1.2 Placement statique Classication Devant la diversite des methodes possibles d'allocation et regulation de la charge, Casavant et Kuhl ont propose une classication tres complete des dierentes methodes dans le cadre de machines paralleles a memoire distribuee [CK88]. Ces methodes peuvent ^etre envisagees comme la description des interactions entre des ressources, des consommateurs et une politique d'attribution de ces ressources aux consommateurs.

3 1.2. PLACEMENT STATIQUE 3 Les buts recherches sont principalement l'ecacite et la performance. Dans le premier cas, le but est de satisfaire les consommateurs en utilisant peu de ressources, dans le second, il s'agit plut^ot d'obtenir le maximum de satisfaction. Ces deux criteres sont (evidemment) contradictoires. La classication proposee distingue principalement cinq caracteristiques : { Strategies statiques ou dynamique, selon que l'allocation des t^aches s'eectue une fois pour toutes avant l'execution ou est regulee pendant l'execution, { Equilibrage de la charge, { Strategies deterministes ou probabilistes, {Politiques denitives ou revisables, {Politiques d'adjudication (avec automomie de decision aux consommateurs) Representation des programmes Graphes de precedence Un algorithme peut ^etre commodement represente par un graphe oriente, constitue de l'ensemble de t^aches elementaires (sommets) reliees par des contraintes de precedence (arcs) [CD73]. Chaque t^ache est caracterisee par son temps d'execution et chaque arc par un co^ut de communication qui modelise la quantite d'informations aechanger entre les dierentes t^aches. La gure 1.1 montre une telle representation pour le calcul d'une expression arithmetique simple. Elle est communement appelee graphe de precedence. Fig. 1.1-:Exemple de graphe de Precedence z = ax +by main() { int a=5; int x=6; OutWord(Chan[0],a*x); } main() { int b=5; int y=2; OutWord(Chan[0],b*y); } main() { int z; z=inword(chan[0])+inword(chan[1]); }

4 4 CHAPITRE 1. R EPARTITION DE CHARGE Les algorithmes reguliers tels que ceux de l'algebre lineaire s'expriment naturellement sous forme de graphe de precedence aboutissant a une implementation ecace sur reseau de processeurs. Cette demarche tend a dicter une methodologie de programmation visant a construire des graphes de precedence. Il existe une litterature de plus en plus abondante sur la resolution des problemes de placement vus du c^ote de l'ordonnancement, c'est-a-dire en prenant en compte des dependances et des communications. Ces travaux sont souvent theoriques (architecture idealisee, temps d'execution constants des t^aches, communications en temps constant, etc.) et peu de realisations pratiques sont proposees, excepte [ERL90]. Graphes des t^aches #define nbre_travaux 23 #define nbre_esclave 3 extern int donne_travail(); main() /* source du ma^tre */ { int s,busy,esclave=0; int nt=nbre_travaux; while (esclave++<nbre_esclave) if (nt!=0) {OutWord(Chan[esclave],donne_travail());nt--;busy++;}; while (busy) { esclave=altblck(&chan[0],nbre_esclave); s+=inword(chan[esclave]);busy--; if (nt) { OutWord(Chan[esclave],donne_travail());nt--;busy++;}; }; } Ma^tre extern int travail(int t); main() /* source des esclaves */ { int t; while (1==1) { t=inword(chan[0]); OutWord(Chan[0],travail(t)); }; } Esclaves Fig : Exemple de graphe de t^aches Il existe une autre maniere de modeliser un algorithme en ignorant les relations de precedence entre les t^aches, une ar^ete modelise alors simplement une communication

5 1.2. PLACEMENT STATIQUE 5 sans se soucier de son sens. Cela revient en quelque sorte a ignorer le parallelisme relatif des t^aches. Nous appellerons cette representation graphe de t^aches. C'est ce modele qui sert de base a la plupart des algorithmes de placement. Dans le cadre statique, nous representons donc un programme comme un graphe de t^aches dont les nuds sont des t^aches et les ar^etes des canaux de communication entre ces t^aches. A ces nuds et ar^etes sontassocies des nombres representant respectivement des co^uts de calcul et de communication. La gure 1.2 montre l'exemple d'une telle representation pour un calcul maitre/esclave. Cas dynamique Le modele du graphe de precedence n'est pas general, car tous les algorithmes ne s'y reduisent pas. Certains algorithmes possedent une partie completement dynamique. C'est-a-dire que la generation des t^aches va dependre, entre autres, des donnees en entree. De plus, on peut envisager des outils de regulation de charge (dynamique) qui vontrepartir, lors de l'execution du programme, les charges de calcul parmi les dierents processeurs. La notion de t^ache est modiee, une t^ache est simplement vue comme une partie de la memoire Denition du probleme du placement statique Nous nous interessons dans ce paragraphe aux placements statiques, c'est-a-dire realises avant l'execution du programme parallele. Cette solution n'est envisageable que lorsque l'on connait a l'avance assez precisemment le schema d'execution de son programme ce qui est le cas dans de nombreux problemes de calcul numerique par exemple. Un placement est une application (notee alloc) qui a une t^ache associe un processeur. 8t 2 T 9p 2 P alloc(t)=p ou T est l'ensemble des t^aches a placer et P l'ensemble des processeurs. La recherche d'un placement se fait sur l'ensemble PL de tous les placements possibles. Si jp j le nombre de processeurs et jt j le nombre de t^aches, alors il existe jp j jt j placement possibles, ce qui rend trop co^uteux l'exploration de toutes les possibilites de placement (ce probleme est connu comme etant NP dicile [GJ79]). Dans la plupart des cas, toutes les t^aches communicantes n'ont pas ete placees sur des processeurs voisins. Certaines communications vont necessiter un routage. Dans le cas jt j > jp j (le plus frequent en pratique), une solution possible consiste a eectuer une phase preliminaire de regroupement et a travailler alors avec jp j groupes de t^aches. Dans le cadre de la duplication, on peut associer plusieurs processeurs a une m^eme t^ache. Selon les algorithmes consideres, on prend ou non en compte la duplication Criteres de placement Notons calc(t i ) la dure d'une t^ache t i et comm(t i t j ) la duree de la communication de la t^ache t i vers la t^ache t j. Un placement est caracterise par une fonction de co^ut qui permet de mesurer sa qualite. Elle appara^t explicitement dans tous les algorithmes de placement basees sur les techniques d'optimisation. Par contre, dans certains algorithmes heuristiques, elle est

6 6 CHAPITRE 1. R EPARTITION DE CHARGE implicite. Il existe de nombreux choix pour cette fonction de co^ut, nous nous proposons dans la suite de passer en revue celles qui nous paraissent les plus pertinantes. Le plus objectif des co^uts est le temps total d'execution du programme qui, sur une machine parallele, correspond au temps d'execution du processeur qui termine le dernier. Le calcul du temps d'execution sur un processeur depend du modele d'architecture choisi. En particulier, certains processeurs ont la possibilite d'eectuer ou non des calculs pendant qu'ils communiquent (on parle dans ce cas de recouvrement des calculs et des communications). D'autre part, des communications peuvent ou non ^etre faites simultanement sur un processeur. Nous considerons ici un modele sans recouvrement entre calculs et communications et a communications non simultanees. Le co^ut de l'execution de la t^ache t i pour le placement alloc est calcule delafacon suivante : calc(t i )+ X tjjalloc(t j)6=alloc(t j) comm(t i t j ) Autrement dit, lorsqu'une t^ache t i est placee sur le processeur alloc(t i ), le co^ut d'execution sur celui-ci est augmente duco^ut de calcul de la t^ache et du co^ut de ses communications avec les t^aches placees sur les autres processeurs (on ne compte evidemment pas les communications entre deux t^aches placees sur le m^eme processeur). Le co^ut cumule sur un processeur p k donne est egal a la somme de tous les co^uts partiels des t^aches allouees sur ce processeur. t alloc (p k )= X tijalloc(ti)=pk 2 4 calc(ti )+ X tjjalloc(tj)6=alloc(ti) comm(t i t j ) Le co^ut du placement alloc complet est le maximum des co^uts d'execution de tous les processeurs, c'est-a-dire : C alloc = max pk2p (t alloc (p k )) Le co^ut du meilleur placement est donc : C = min alloc2pl (C alloc ) Evidemment, ce critere n'est pas exact. En particulier, comme nous l'avons deja souligne, l'approximation obtenue en negligeant les precedences peut conduire a des comportements paradoxaux. Notons que l'on peut facilement modier cette fonction si l'on desire tenir compte par exemple du recouvrement calculs/communications (a ce moment la, la somme dans le calcul de devient un calcul de maximum) ou encore des communications simultanees (il sut alors de ponderer le terme des communications par le degre moyen du graphe de precedence). De plus, il est possible de distinguer les processeurs entre eux dans le cas d'une architecture heterogene, etc. Remarquons qu'un autre critere est frequemment utilise:l'equilibrage de la charge. Le but est alors de minimiser l'ecart des charges des processeurs a la moyenne. C'est- a-dire : 3 5

7 1.2. PLACEMENT STATIQUE 7 X Pp C alloc = t alloc(p k ) t l2p alloc(p l ) ; jp j pk 2P Si la charge de calcul est bien equirepartie, ce critere est grosso modo le m^eme que le precedent. On trouve dans la litterature de nombreuses autres possibilites de fonctions de co^ut (le lecteur intesse pourra se reporter par exemple a [NT93] pour une etude plus exhaustive) Les dierentes solutions Le probleme du placement de t^aches dans sa generaliteetant NP-dicile, il n'existe pas (sauf pour quelques cas simples) d'algorithme placant au mieux, en temps polyn^omial, un graphe de t^aches sur un reseau de processeurs [Bok81]. On a donc le choix entre deux grandes alternatives : chercher l'optimal en risquant l'explosion combinatoire ou bien, se contenter d'un placement approche, trouve en un temps raisonnable. De tres nombreuses strategies de placement de t^aches ont ete proposees dans la litterature, comme en temoigne la large bibliographie donnee dans ce rapport. Les resolutions possibles peuvent ^etre envisagees de dierentes manieres. Ainsi, on distingue : Les algorithmes exacts dont le principe repose sur une exploration de toutes les solutions possibles. Cette approche conduit donc a la solution optimale, mais est tres co^uteuse en pratique et inemployable pour des exemples trop grands. Les algorithmes heuristiques qui conduisent a une solution approchee, eux-m^emes se divisent en deux categories. D'une part, les algorithmes gloutons qui permettent de construire une solution de proche en proche en partant d'une solution initiale partielle que l'on complete et d'autre part, les algorithmes iteratifs qui partent d'une solution complete que l'on ameliore par transformations elementaires. Enn les heuristiques obtenues comme generalisations d'algorithmes exacts qui partent d'algorithmes qui ne sont applicables a la base que dans des cas restreints et qui en relaxant certaines contraintes fournissent des solutions sous-optimales mais valables Algorithmes exacts Dans cette classe, on trouve les algorithmes qui enumerent tous (ou presque tous) les cas pour selectionner le meilleur placement. Nous pouvons representer sous forme d'arbre la construction de toutes les solutions possibles (soit tout l'ensemble PL) en partant de la conguration ou aucune t^ache n'est placee (la racine) vers l'ensemble des t^aches placees (les feuilles). Dierentes explorations de cet arbre sont possibles : { En profondeur d'abord, on construit le plus rapidement possible une solution [Pea90]. {Endeveloppant le nud ayant la plus petite valeur, etant donnee la fonction de co^ut et les t^aches deja placees (meilleur d'abord) [Sin87] [ST85]. {En developpant le nud ayant le plus grand espoir d'^etre a la base d'une solution optimale en tenant compte des t^aches dejaplacees et en utilisant une heuristique sous-estimant les t^aches restant a placer (A*) [HNR68]. Une bonne heuristique doit pouvoir fournir une sous-estimation aussi proche que possible de la fonction

8 8 CHAPITRE 1. R EPARTITION DE CHARGE de co^ut et doit ^etre aussi simple a calculer que possible. Dans la majorite des cas, ces objectifs sont contradictoires, c'est pourquoi, le choix d'une heuristique peut se montrer tres dicile. Comme exemple d'heuristique, on peut essayer d'eectuer un placement glouton, dont on conna^trait une borne (telle que la borne de 4/3 du LPTF (Largest Processing Time First) [Lee91] dans le cas de t^aches independantes), sur les t^aches qui restent a placer. Ces algorithmes fournissent une solution optimale au probleme du placement, mais ont une complexite exponentielle dans le pire cas. Il est cependant possible d'arr^eter la recherche lorsque l'on a trouve une solution qui nous para^t satisfaisante. Ces algorithmes, assez co^uteux, devraient ^etre utilises dans le cas d'applications destinees a ^etre installees une fois pour toutes et qui possedent un petit nombre de t^aches. Il existe d'autres methodes d'enumeration de l'ensemble des solutions et de recherche de l'optimal. On peut, par exemple, decouper le probleme en sous-problemes et envisager une recherche par Branch&Bound [PS82]. Certains algorithmes optimaux existent dans des cas restreints : { Lo [Lo88] a propose un algorithme base sur un couplage maximal (donc polyn^omial) et minimisant le co^ut de communication entre t^aches a condition de respecter les contraintes suivantes : que le nombre de t^aches soit inferieur a deux fois le nombre de processeurs et qu'il y ait au plus deux t^aches placees par processeur. Cet algorithme fournit un placement optimal si les t^aches sont de durees identiques et si les contraintes sontrespectees. L'article propose aussi une adaptation de cet algorithme permettant le traitement (non optimal) du cas plus general sans contraintes mais toujours pour des t^aches de m^emes durees. {De tres nombreux travaux ont ete developpes dans le domaine du plongement de graphes et peuvent^etre employes pour le placement. Un plongement est une application qui associe une ar^ete du graphe de t^aches a un chemin dans le graphe cible (ici, le reseau de processeurs) [dr94]. Il existe quelques heuristiques generales, mais la plupart des resultats concernent le passage entre topologies determinees (par exemple, une grille (representant une matrice) dans un hypercube de processeurs, ou encore un arbre binaire representant une expression algebrique dans un anneau ou un tore de processeurs, etc.). Un article de synthese reprend les resultats connus [MS90]. Usuellement, on considere deux criteres : la dilatation qui est le maximum des longueurs des plus longs chemins et la congestion qui est le nombre maximum de chemins passant par une ar^ete donnee. { D'autres algorithmes sont envisageables dans quantite de cas restreints. Par exemple si les t^aches sont independantes et de co^ut unitaire, on sait que le bin-packing est optimal, etc Algorithmes gloutons Certaines methodes permettent de trouver un placement grossier rapidement, c'est le cas des algorithmes gloutons. Le principe consiste a construire de proche en proche le

9 1.2. PLACEMENT STATIQUE 9 placement. Ainsi, l'allocation de la q-ieme t^ache a un processeur se fait sous un certain critere a partir du placement partiel realise sur les (q-1) premieres. Il est clair que l'algorithme glouton est dependant duchoix arbitraire de la premiere t^ache. Leur principal inconvenient est qu'il est toujours possible de trouver une instance qui les mette en defaut. On trouve dans cette categorie les algorithmes proposes par [ABPV89] [Lee91] [Paz89], par exemple, LPTF (largest processing time rst), pour lequel on connait une borne theorique dans le pire des cas [Lee91], dont le seul critere est l'equilibrage de charge. Benhamamouch et Plateau [BP89] decrivent un systeme base egalement sur un equilibrage de charge dans le cas ou les communications sont negligeables et modi- ent le critere si elles deviennent importantes. Le principal avantage des algorithmes gloutons est leur co^ut tres avantageux. A titre d'exemple, l'idee de l'algorithme glouton amical est de placer au fur et a mesure les t^aches qui necessitent le minimum de routage. On part d'une t^ache arbitraire et l'on choisit la t^ache qui communique le plus avec les t^aches deja placees (en cas d'egalite, on choisit par exemple la t^ache dont le co^ut de communication est minimal). Une fois la t^ache determinee,on choisit le processeur d'accueil en minimisant une fonction de co^ut partielle. De nombreux autres algorithmes de placement de type glouton reposent sur le critere d'equilibrage de la charge. Les algorithmes gloutons sont en general peu co^uteux, mais en contrepartie, ils ne sont pas tres performants. En eet, le choix arbitraire des premieres t^aches a placer conditionne l'algorithme complet : il n'y a aucune remise en cause des solutions intermediaires. De plus, vers la n de l'algorithme, les choix de placement deviennent de plus en plus limites, ce qui fait chuter les performances Algorithmes iteratifs Tous les algorithmes iteratifs [HK72] et[paz89] partent d'une solution initiale complete (pas forcement tres bonne) que l'on cherche iterativement a ameliorer. Cette solution initiale peut, par exemple, ^etre obtenue par un algorithme glouton. Ces algorithmes sont bases sur une fonction de co^ut. Dans la plupart des solutions existantes, on procede par permutations de t^aches en ne retenant que celles qui ameliorent la fonction de co^ut. Notons que des perturbations aleatoires sont necessaires dans la plupart des algorithmes an d'eviter les minima locaux. Recuit simule Cette technique est la plus ancienne et de nombreux articles rapportentdesresultats et des comparaisons avec d'autres algorithmes [Ber89] [BM88] [HB88] [Paz89]. L'idee de la methode du recuit simule provient de l'observation de phenomenes physiques. Elle est basee sur une analogie avec la physique statistique : lorsque l'on souhaite obtenir un metal ayant la structure la plus reguliere possible, on utilise la technique dite du recuit. On chaue le metal et l'on reduit doucement sa temperature de telle sorte qu'il reste en equilibre tout en refroidissant. Arrive a une temperature susamment basse, il demeure dans un etat d'equilibre correspondant a l'energie minimale.

10 10 CHAPITRE 1. R EPARTITION DE CHARGE A haute temperature, il y a beaucoup d'agitation thermique ce qui peut localement augmenter l'energie du systeme. Ce phenomene se produit avec une certaine probabilite qui diminue avec la temperature. Cela correspond mathematiquement a s'autoriser de sortir d'un minimum local de la fonction que l'on cherche a optimiser. Souvent, l'utilisation dans le cadre du probleme du placement de cette approche est presentee de maniere intuitive. Il est dicile de la justier theoriquement par une simple analogie, et surtout de trouver une signication concrete aux parametres tels que la temperature... Nous avons choisi une interpretation plus proche du probleme a resoudre. Le placement peut ^etre vu comme un probleme d'optimisation d'une certaine fonction de co^ut. Partant d'un placement initial complet, on va chercher a l'ameliorer par un critere local tel que l'echange de paires de t^aches par l'exemple. On accepte un echange si le placement est ameliore dans le cas general et sous une certaine probabilite qui decro^t lors du deroulement de l'algorithme, on s'autorise a choisir un placement plus mauvais. Ceci peut avoir pour eet de sortir d'un minimum local de "l'energie" (fonction a optimiser). Les placements generes sont en moyenne assez bons mais d'apres la litterature et notre experience propre, certains inconvenients en limitent l'usage : { temps de calcul eleve, devenant vite disqualiant pour un nombre important de t^aches. { base sur une succession d'etapes de modications aleatoires du placement, son comportement est imprevisible. Chaque execution donne un placement dierent pour un m^eme probleme et il peut fournir de mauvais resultats de temps en temps [Ber89]. { Cet algorithme depend d'un certain nombre de parametres (temperature de depart et d'arrivee, vitesse de refroidissement etc..) qui sont diciles a ajuster et dependent en fait du placement a eectuer. Toutes ces remarques nous amenenta considerer le recuit comme co^uteux, peu able et d'emploi malaise. Neanmoins, si l'on est pr^et aaronter toutes ces dicultes, le recuit simule donne en general de tres bons resultats. L'experience acquise et les recherches eectuees depuis de nombreuses annees permettentd'inferer de bonnes valeurs ou regles pour les dierents parametres. La theorie nous fournit, par exemple, une demonstration de convergence asymptotique si la decroissance de temperature suit certains criteres [MRS86]. De m^eme l'algorithme de Metropolis se base sur les statistiques pour donner des criteres relatifs a la temperature initiale et a l'acceptation de la solution. L'algorithme de Bokhari L'algorithme de Bokhari [Bok81] utilise une fonction de co^ut (la cardinalite) qui compte le nombre d'ar^etes du graphe des t^aches correctement placees sur le graphe des processeurs. On peut l'adapter avec une fonction de co^ut plus realiste prenant en compte tous les parametres (calcul, communication). Plus precisement, l'amelioration du placement s'eectue par echanges iteratifs de paires de t^aches. Le test d'arr^et est base sur le principe qu'aucune amelioration n'a ete obtenue pendant un nombre arbitraire

11 1.2. PLACEMENT STATIQUE 11 de tentatives successives. Notons que cet algorithme est d'emploi peu aise car il repose sur l'hypothese restrictive que le nombre de t^aches est egal au nombre de processeurs. Pazat [Paz89] etudie une extension a un nombre de t^aches superieur par repliage du graphe de t^aches. A notre sens, cette hypothese n'est pas limitative car il sut de considerer directement que l'on peut placer plusieurs t^aches par processeurs. Les algorithmes genetiques Les algorithmes genetiques [MGSK87][TB91]sont bases sur une analogie avec l'evolution des especes. Ils partent d'une population initiale a partir de laquelle ils eectuent des croisements pour engendrer de nouvelles congurations. Ils gardent les meilleures des populations resultantes pour eectuer d'autres croisements. An d'eviter les minima locaux, de temps a autre, les especes sont soumises a des mutations. Comme pour le recuit, bien que l'analogie puisse para^tre assez supercielle, cette technique conduit parfois a de bons resultats comme par exemple dans le cas ou le graphe de t^aches n'est pas tres dierent de la topologie physique (par exemple dans le cas d'elements nis dans une grille). Ces algorithmes sont de m^eme assez diciles a mettre en uvre. La recherche tabu La recherche tabu [GL92] est une methode iterative qui recherche, a partir d'une solution initiale, la meilleure solution que l'on peut atteindre a l'aide d'un ensemble donne de transformations (relations de voisinage). An d'eviter de boucler (de revenir sur une solution deja exploree), on construit une liste tabu des derniers mouvements eectues et on interdit toute tentative de marche arriere. Les recherches tabu sont en general plus dicile a mettre en uvre que les recuits simules, mais constituent actuellement les algorithmes iteratifs donnant les meilleurs resultats entre autres dans les problemes de type job-shop[len93]. Dans la recherche tabu, l'experience acquise et la connaissance du probleme permettent de xer de bonnes valeurs aux dierents parametres. Les relations de voisinage vont decouler de l'etude du probleme, tandis que la taille de la liste tabu sera soit xee arbitrairement soit issue de l'experimentation (on xe tout d'abord une petite taille que l'on augmente jusqu'au moment ou le tabu permet d'eviter tous les cycles). Les enregistrements eectues dans la liste tabu ne sont pas toujours complets : on peut tomber sur une situation que la liste tabu considere comme connue alors qu'elle ne l'est pas... Dans ce cas, la mise en uvre de ce qu'on appelle un critere d'aspiration s'impose. Un exemple simple consiste a regarder si la nouvelle situation ameliore la fonction objective par rapport a la situation precedemment rencontree. Si oui, le voisin est accepte, si non, on considere qu'il s'agit bien d'une situation deja rencontree et on n'accepte pas le voisin. D'autres fonctions d'intensication ou de diversication de la recherche peuvent aussi ^etre utilisees suivant le comportement de l'algorithme.

12 12 CHAPITRE 1. R EPARTITION DE CHARGE Algorithmes exacts generalises De nombreux algorithmes exacts existent dansdescastres restreints et sont utilises de maniere sous-optimale en les generalisant en relaxant certaines contraintes. Dans cet ordre d'idees, citons : { Pellegrini et Roman [PR93] ont developpe une heuristique de type divide and conquer qui eectue un placement par bi-partition recursive du graphe de t^aches, sous-tendue par une bipartition recursive du graphe de processeurs. Ceci est a rapprocher des solutions par coupes minimales de graphes bi-partis[lo84] [Sto77]. { Certains derives d'algorithmes d'exploration d'arbres de recherche peuvent couper certaines branches de l'arbre de recherche de maniere heuristique et arbitraire an de trouver un solution approchee en un temps acceptable. { Certains resultats issus de la theorie du plongement peuvent ^etre utilises sur des topologies qui s'approchent de celle conseillee. {etc Autres solutions et conclusion Le grand nombre de solutions que nous venons de presenter montre qu'il n'y a pas de solution universelle au probleme du placement de t^aches. L'approche la plus prudente est de developper une boite a outils de methodes de placement, reglable par l'utilisateur au cas par cas. En particulier, il est possible de considerer des strategies intermediaires entre les dierentes solutions que nous avons proposees, par exemple, a mi-chemin entre les heuristiques glouton et un Branch&Bound. On peut voir cette approche mixte comme un algorithme heuristique dont certains choix peuvent ^etre remis en cause et un certain nombre de placements sont alors systematiquement passes en revue. On peut aussi l'envisager comme un Branch&Bound dont le nombre de combinaisons est tres fortement limite par une strategie de choix des branches visitees. Les strategies mixtes sont tres prometteuses. En eet, idealement, la remise en cause de certains choix permet d'eviter l'existence de cas pathogenes qui sont propres aux algorithmes ou des decisions arbitraires ont ete prises. Inversement, la limitation de l'explosion combinatoire donne a cet algorithme un temps de reponse acceptable par rapport a n'importe quel Branch& Bound simple. Kasahara et Nahira [KN84] presentent des experimentations avec un nombre de t^aches de l'ordre de 200. Malheureusement, il n'existe a notre connaissance aucune etude approfondie de ce type d'algorithmes. Une autre solution envisagee serait d'eectuer un premier placement avec un algorithme glouton et ensuite de l'ameliorer localement la ou se situent certains problemes, par exemple, on pourrait decouvrir, suite a une analyse eectuee apres une execution par des outils de monitoring qu'un lien de communication entre deux processeurs est surcharge et essayer de remedier a cela en tenant compte d'une fonction de co^ut (equilibrage de charge totale). Il existe des prototypes de tels outils [BT94] qui constitue deja une ouverture vers des approches dynamiques.

13 1.3. DISTRIBUTION DYNAMIQUE DE CHARGE Distribution dynamique de charge Les strategies de regulation de charge tendent toutes : { soit a eviter qu'un nud ne soit inactif alors que des t^aches restent en attente sur d'autres nuds (strategies de partage de charge - load sharing), { soit, de maniere plus forte, a ce que le nombre de t^aches par nud soit equilibre pour l'ensemble du systeme (strategies d'equilibrage de charge - load balancing). Il est en eet assez intuitif de penser que le systeme est utilise au mieux lorsque chaque ressource a la m^eme charge de travail Mesure de la charge locale des nuds Il y a globalement deux manieres de quantier la charge locale d'un nud. La premiere mesure la charge par le calcul d'une valeur de charge, la deuxieme utilise des seuils denissant des etats de charge du nud (comme par exemple les trois etats faiblement, moyennement et fortement charge des strategies dites a double seuil). Cette deuxieme solution, plus simple, donne souvent de bons resultats. Elle est de plus facilement utilisable lorsque l'architecture est heterogene (nuds de dierentes natures), c'est-a dire lorsqu'il est dicile d'etablir une metrique unique valable pour tous les nuds. La mesure de la charge est le plus souvent une mesure systeme de l'ensemble des t^aches actives et en attente sur un nud (c'est a dire la longueur de la queue CPU). Il a ete mesure que plus cet ensemble est important, plus le temps de reponse d'une t^ache sera grand. Ce qui montre qu'il s'agit d'un bon indicateur. Comme il s'agit en fait d'estimer la charge dans un futur proche (pour le moment reel ou seront prises les decisions), une mesure ponctuelle peut ne pas ^etre satisfaisante. En eet, entre le moment de la mesure et le moment de la decision, la valeur mesuree peut fortement changer a cause par exemple de nombreux debuts ou terminaisons de t^aches. Pour cette raison, une valeur moyenne de la longueur de la queue CPU sur un intervalle de temps donne - et parfois dynamiquement adapte - est souventavantageusement utilisee. Elle permet d'eviter une trop grand instabilite des indicateurs de charges et donc les (re)distributions inutiles. Lorsque l'activite d'une t^ache peut ^etre mesuree par le nombre de messages qu'elle doit traiter (cas des serveurs des systemes distribues, ou encore celui des objets), le nombre de messages en attente de traitement sur un nud peut ^etre utilise comme un indicateur de la charge dans un futur proche. L'age des t^aches en cours au moment de la mesure est pris en consideration par certains systemes. Cela se fonde sur l'hypothese que les t^aches actives depuis longtemps le resteront encore longtemps tandis que les t^aches jeunes ne sont pas promises a une longue activite! La charge induite par une t^ache agee dans un futur proche sera donc plus importante que par une t^ache jeune. Cette hypothese est statistiquement veriee dans les systemes distribues d'usage general. Le taux d'occupation memoire d'un nud est aussi un element d'information sur sa charge. Il n'est pas interessant d'utiliser cet indicateur de facon continue, car le temps de reponse d'une t^ache n'est pas dependant du taux d'occupation de la memoire. Mais

14 14 CHAPITRE 1. R EPARTITION DE CHARGE il peut ^etre utilise bien evidemment pour eviter de distribuer de nouvelles t^aches a des nuds qui n'ont pas de place pour les recevoir. La connaissance prealable de certaines caracteristiques des t^aches peut aussi intervenir dans le calcul de la charge. Il est en eet interessant desavoir si une t^ache entre dans la categorie de celles qui font beaucoup de calcul - et donc qui chargent beaucoup les nuds ou elles se trouvent, ou plut^ot dans celle des t^aches qui font beaucoup de communications - et qui donc sont souvent en attente. Les etudes dans ce domaine sont embryonnaires. Le dosage possible des indicateurs de charge selon ces categories n'est pas encore connu Le processus de distribution dynamique des t^aches Le processus de distribution dynamique des t^aches sur les dierents nuds d'une architecture decentralisee est un processus compose de deux etapes bien distinctes: une etape d'evaluation de l'etat du systeme et une etape de prise de decision (g.1.3). La premiere etape consiste en l'obtention de l'etat de charge des nuds et en une estimation d'un etat global ou partiel du systeme. Cette etape peut ^etre absente si les nuds decident uniquement en fonction d'un etat local. La deuxieme etape consiste a choisir un nud pour executer une t^ache, le plus souvent en fonction de l'etat estime a l'etape precedente. Pour chacune des deux etapes, dierentes strategies onteteetudiees. Bien que la deuxieme etape semble ^etre a priori liee a la premiere etape par une relation de dependance causale - on decide en fonction d'un etat estime -, les deux etapes peuvent ^etre etudiees independamment. L'espace des strategies possibles est alors le produit cartesien de l'ensemble des strategies d'estimation par l'espace des strategies de decision. Dans une premiere partie, on trouvera une analyse des dierentes strategies d'estimation de charge. Dans une deuxieme partie, on trouvera une analyse des dierentes strategies de prise de decision. Regulation Dynamique de la Charge Estimation Decisions Collecte des charges locales Calcul de l'etat global Transfert? Localisation? Fig : Processus de regulation dynamique de la charge Le processus d'estimation de la charge d'un systeme decentralise en prevision de decisions de distribution des t^aches doit d'abord obtenir les informations pertinentes en provenance des dierents nuds de l'architecture. Pour cela la strategie doit d'abord reposer sur un executif permettant d'echanger des informations entre les nuds. Le

15 1.3. DISTRIBUTION DYNAMIQUE DE CHARGE 15 plus souvent cela se fera par une possibilite d'echanges de messages entre nuds. Le processus est donc la aussi en deux etapes: collecte d'informations puis estimation. L'etape de collecte est ici la plus cruciale, l'etape d'estimation se reduisant le plus souvent, une fois les informations collectees, soit a simplement les passer au processus de decision, soit a eectuer un calcul - qui peut ^etre parfois complexe - des dierents indicateurs de la charge. L'etape de collecte d'informations Lorsqu'il s'agit de prendre une decision concernant la localisation d'une t^ache, il est necessaire de disposer d'un etat de charge des nuds potentiellement concernes par la t^ache a executer. L'architecture etant decentralisee, cet etat n'est pas disponible directement mais doit ^etre calcule apres avoir collecte lesetats locaux des nuds. Cette collecte est un processus qu'il ne faut pas negliger aussi bien en co^ut de communication (combien de messages vont ^etre echanges avant de pouvoir faire l'estimation?) que dans le degre de conance que l'on pourra avoir dans l'estimation (les informations collectees sont-elles encore pertinentes au moment ou l'estimation est faite?). Les meilleures strategies de distribution dynamique des t^aches sont le plus souvent celles qui utilisent la meilleure strategie de collecte d'informations: Des collectes trop frequentes surchargent le systeme de communication, des collectes trop espacees donnent des estimations peu ables. Les strategies de collecte des informations de charge dierent en les points suivants: { Collecte centralisee versus collecte decentralisee { Collecte par dissemination volontaire ou collecte a la demande Dit d'une autre maniere, il s'agit de repondre aux deux questions suivantes: {Vers qui les nuds envoient-ils leurs etats? { Quand les nuds envoient-ils leurs etats? 1. Collecte centralisee versus collecte decentralisee: Puisque chaque nud doit d'une certaine maniere fournir son etat local de charge au processus d'estimation global, la premiere question qui se pose est: vers qui chaque nud envoie-t-il son etat? Une strategie centralisee de collecte des charges utilise une entite unique vers laquelle toutes les informations locales de charge vont^etre dirigees. Cette entite centralisee sera donc la seule responsable de la distribution des t^aches sur l'architecture et aura donc un r^ole extr^emement sensible dans le processus global de distribution. Cette entite sera le plus souvent un nud particulier dedie a cette t^ache. Cette solution a l'avantage d'un faible sur-co^ut puisque les nuds dedies aux t^aches de l'application ne sont en rien penalises par ce travail. Elle est aussi relativement simple a implanter. Les inconvenients sont par contre ceux de toutes les solutions centralisees, c'est a dire 1) goulot d'etranglement sur ce nud et donc temps de reponse qui risque de devenir important si le nombre de nuds devient grand et 2) probleme d'eventuelles pannes de ce nud interrompant tous les autres (non tolerance aux pannes). Il est ici possible de dupliquer plusieurs fois ce nud pour accepter un nombre limite de pannes.

16 16 CHAPITRE 1. R EPARTITION DE CHARGE Dans une strategie decentralisee de collecte des charges, tous les nuds obtiennent toute l'information sur l'etat des autres nuds, et donc chaque nud est capable de faire une estimation globale du systeme. Cette solution permet un tolerance relative aux pannes de certains nuds, mais, bien qu'apparemment independante du nombre de nuds (extensibilite de la strategie) elle peut avoir une limitation severe lorsque le nombre de nuds devient grand. Deux cas peuvent se presenter: 1) le co^ut de la dissemination de l'information de charge de chaque nud vers tous les autres nuds devient trop penalisant vis a vis de l'amelioration que l'on espere obtenir par ce processus, 2) le systeme ne peut plus assurer une diusion assez rapide de l'information et les nuds n'ont plus une estimation assez precise d'un etat global pour que le processus vaille la peine d'^etre mis en place. Les strategies purement decentralisees ne sont donc exploitables que pour des architectures a grain moyen (nombre de nuds non excessif et t^aches de grain moyen). On remarquera que des solutions hardware peuvent fournir une amelioration en fournissant un dispositif rapide de diusion (voir par exemple les machines munies d'un un anneau rapide de diusion qui permet a chaque nud de disposer rapidement de toute l'information). Les strategies de collectes d'informations sont donc le plus souvent hybrides: Une maniere generale d'implanter une solution hybride est de denir dierents niveaux de regroupement des nuds (methode hierarchique) et d'utiliser des strategies dierentes dans les dierents niveaux (g.1.4): En considerant par exemple des regroupements logiques des nuds en fonction de consideration de voisinage, il est envisageable de choisir une strategie decentralisee entre les regroupements et une strategie centralisee a l'interieur des regroupements. Dans chaque regroupement, un nud est responsable de la collecte des etats de charge des nuds du groupe (centralisation), tous ces nuds particuliers maintenant aussi une estimation des charges de tous les groupes (decentralisation). Ces strategies hierarchiques peuvent ^etre bien adaptees a des architectures particulieres - pyramidales par exemple. Decentralise Centralise Fig : Strategie hybride et hierarchique Pour toutes ces strategies, chaque nud doit savoir vers qui envoyer son etat.

17 1.3. DISTRIBUTION DYNAMIQUE DE CHARGE 17 Plusieurs cas se presentent: Dans les strategies centralisees, chaque nud envoie son etat vers le ou les nuds qui centralisent les etats. Ces destinataires peuvent cependant changer dynamiquement - en particulier pour prendre en compte les pannes ou les recongurations. Dans les strategies decentralisees, deux cas se presentent: { Strategies avec diusion: Chaque nud envoie son etat a tous les autres nuds ou a tous les nuds de son groupe (cas hybride). Cette solution permet a chaque nud d'avoir une information globale de charge particulierement a jour. Mais si les diusions sont frequentes, le systeme de communication sera vite surcharge. { Strategies sans diusion ou a diusion restreinte: Les strategies decentralisees sans diusion se basent sur l'idee que chaque nud ne va envoyer son etat qu'a un nombre limite d'autres nuds, par exemple ses voisins et que cela creera des vagues de messages permettant a chaque nud de mettre a jour son etat global au passage de ces vagues. Les dierentes solutions utilisees sont: { utilisation des voisinages: un nud envoie son etat global a ses voisins, ceux-ci mettent a jour leur propre etat global et renvoient le message a leurs voisins respectifs. Cette solution peut, comme la diusion, generer un nombre important de messages. { utilisation d'un jeton circulant: Un jeton contenant l'etat global estime circule entre les nuds. Lorsqu'un nud le recoit, ce nud met a jour son propre etat global, modie la valeur de son etat local dans le jeton, et renvoie le jeton a son successeur dans la cha^ne de circulation du jeton. La vitesse de circulation du message et son itineraire sont ici des parametres importants, qui doivent ^etre le plus souvent adaptes dynamiquement en fonction de l'etat. On peut utiliser plusieurs messages circulant, par exemple a dierents niveaux d'un partitionnement hierarchique. { utilisation des communication entre t^aches: la solution est ici d'utiliser les communications entre t^aches de l'application pour y placer les informations de charge. Cela ne donne aucun sur-co^ut en nombre de messages. Un inconvenient est que l'on n'est pas s^ur de disposer d'une information globale able lorsque deux morceaux de l'application ne communiquent que tres rarement. Dans ce cas, on utilisera de temps en temps, une diusion generale de l'etat du systeme. 2. Collecte par dissemination volontaire ou a la demande La question qui se pose ici est de savoir a quel moment les nuds emettent leurs informations de charges. Des strategies s'opposent: celles qui privilegient l'autonomie des nuds, ceux-ci vont envoyer leur etat sur la base d'une decision locale d'envoi, et celles qui privilegient le r^ole des collecteurs, les nuds ne faisant que repondre a des demandes. Dans une strategie volontaire, les nuds envoient leur information de charge en fonction d'une decision locale. Ces envois peuvent se faire, soit a chaque modication de l'etat, soit au passage dans des etats particuliers (faiblement charge ou

18 18 CHAPITRE 1. R EPARTITION DE CHARGE fortementcharge par exemple), soit encore a intervalles de temps reguliers (envois periodiques). La frequence moyenne d'emission de l'etat est ici un parametre important puisqu'il regle le nombre de messages dans le systeme de communication. Elle peut ^etre dynamiquement adaptee en fonction de l'estimation de l'etat global et des variations de celui-ci. Il est en eet important que les nuds n'envoient pas d'informations inutiles, lorsque par exemple l'etat ne change pas ou encore lorsqu'il n'y a pas de decision de placement a prendre. Dans une strategie a la demande, les nuds envoient l'information lorsqu'elle leur est demandee. Ce n'est donc plus une decision locale. L'avantage est donc que seules les informations utiles au processus de distribution circulent sur le reseau. L'inconvenient est que chaque obtention d'information demande deux messages (un pour la demande, un pour la reponse), et que donc, outre le co^ut en nombre de messages, ce protocole question- reponse entraine un delai non negligeable qui peut rendre obsoletes les informations obtenues. Ici aussi les demandes peuvent ^etre emises periodiquement par le ou les collecteurs, ou aperiodiquement a l'occurrence d'un evenement particulier - par exemple lorsqu'une t^ache doit ^etre lancee. Des solutions intermediaires peuvent ^etre mises en place combinant les strategies volontaires et a la demande. On combine souvent de la maniere suivante (voir la g.1.5): Les nuds fortement charges font des envois volontaires indiquant la trop forte charge - ce qui les sort temporairement du processus de distribution, et les nuds faiblement charges font des demandes - ce qui les favorise dans le processus de distribution. Forte Charge Le nud signale une charge trop importante Le nud demande de nouvelles t^aches Moyenne Faible t Fig : Strategies a double seuil Les strategies decentralisees sans diusion peuvent ici ^etre classees dans des strategies intermediaires. Celle du jeton circulant, par exemple, est a la fois involontaire, puisque le nud doit attendre l'arrivee du jeton, et volontaire, puisque le nud peut decider du moment du renvoi du jeton. L'autonomie du nud est

19 1.3. DISTRIBUTION DYNAMIQUE DE CHARGE 19 donc ici limitee a la duree de retention du jeton. Il peut par exemple decider de le conserver plus longtemps s'il ne detecte pas de variation importante de la charge entre deux passages du jeton, mais il s'expose alors a ne pas avoir un etat tres correct du systeme. La strategie peut ne pas ^etre facile a regler. L'etape de prise de decision Lorsqu'on dispose d'une estimation de l'etat du systeme, que celui-ci laisse appara^tre un probleme de charge et/ou que de nouvelles t^aches doivent ^etre lancees, le processus de decision intervient. Globalement deux decisions doivent ^etre prises: une decision de transfert (oui ou non y-a-t-il un probleme de distribution de charge?) et une decision de localisation (ou placer les t^aches qui doivent ^etre transferees?). Les deux decisions ne sont pas toujours a prendre ou ne sont pas toujours a distinguer. On prendra ici une classication autre: {Decision centralisee versus decision decentralisee {Decision a initiative de l'envoyeur versus decision a initiative du receveur On examinera a part les strategies de localisation en aveugle qui ne se servent pas des informations de charges globales. De m^eme on citera a part des strategies particulieres qualiees de cooperatives. 1. Decision centralisee versus decision decentralisee. La question qui se pose est ici de determiner qui prend les decisions de localisations. Comme les decisions necessitent l'estimation de la charge du systeme, on retrouve les deux grandes categories de cette premiere etape: les strategies centralisees et decentralisees. Une strategie centralisee de decision utilise une ressource unique pour executer l'algorithme de choix d'une localisation. Il s'agit le plus souvent d'un processeur dedie qui a pour unique charge de trouver les bons nuds pour les t^aches. Cette strategie est a mettre en relation avec la strategie centralisee de collecte des informations de charge, le m^eme processeur estimant la charge et decidant des localisations. Cette solution ne penalise pas les processeurs de calcul, mais a les inconvenients deja cites d'une solution centralisee. Dans les strategies decentralisees, chaque nud est capable d'estimer une charge globale ou partielle et peut donc prendre des decisions de localisation de t^aches. Les strategies existantes sont pour la plupart des strategies a seuil. Lorsque la charge locale evolue - soit vers le bas vers un etat faiblement charge, soit vers le haut vers un etat fortement charge, le nud peut ^etre amene a prendre des decisions. Il s'agit de trouver soit un nud acceptable (rst t) soit le meilleur nud (best t) utilisable pour la localisation d'une ou de plusieurs t^aches. Les elements de decision sont par exemples un choix parmi les nuds les moins charges, ou parmi les nuds qui ont le moins de travail en attente, ou encore parmi les nuds ayant repondus le plus favorablement a des demandes, etc... Lorsque plusieurs nuds sont acceptables, un choix aleatoire sera utilise.

20 20 CHAPITRE 1. R EPARTITION DE CHARGE 2. Decision a initiative de l'envoyeur d'une t^ache versus decision a initiative du receveur de la t^ache Dans les strategies a l'initiative de l'envoyeur, un nud qui a des t^aches a placer cherche des nuds moins charges que lui pour les y placer. Dans les strategies a initiative du receveur, les nuds faiblement charges cherchent les nuds fortement charges pour leur demander des t^aches. Les strategies a initiative de l'envoyeur sont le plus souvent utilisees car elle ne necessitent pas obligatoirement un mecanisme de migration de t^aches. La distribution peut ne se faire qu'au lancement des t^aches. Les strategies a initiative du receveur se fondent quant a elles sur la possibilite de pouvoir prendre une t^ache a un autre nud. D'autre part, les strategies utilisant le receveur sont diciles a regler car lorsque la charge globale devient petite, les nuds faiblement charges deviennent nombreux et inondent le systeme de demandes de travail. Ce qui n'est pas la cas lorsque la charge globale est grande. Dans ce cas, ce sont les strategies utilisant l'envoyeur qui perdent de leurs performances car elles perdent du temps a chercher sans succes des nuds faiblement charges. La presence simultanee des deux strategies est envisageable. De telles strategies symetriques permettent de tirer avantage des deux strategies dissymetriques precedentes en s'adaptant a la charge. Elles entrainent globalement une plus rapide distribution equitable des t^aches en toute situation. Elles peuvent neanmoins donner des systemes instables dans lesquels les t^aches font des aller-retours inutiles entre nuds. Les seuils utilises peuvent ^etre ici dynamiquement adaptes pour eviter cette instabilite. 3. Decisions en aveugle Les strategies de distribution des t^aches les plus faciles a mettre en oeuvre sont celles qui n'utilisent pas d'etat global du systeme. Le choix d'un nud pour une t^ache se fait sans collecte d'informations. Dans une version centralisee, un processus unique place les t^aches de maniere aleatoire ou de maniere cyclique sur les dierents nuds de l'architecture. Dans une version decentralisee, chaque nud, a l'occasion d'une creation d'une nouvelle t^ache ou lorsqu'il devient trop charge, place les t^aches concernees la aussi de maniere aleatoire ou cyclique sur d'autres nuds. Une variante amelioree permet aux nuds receveurs de refuser la t^ache qui sera alors soit executee localement chez l'envoyeur (refus de transfert) soit envoyee sur un autre nud. Une memorisation des refus permet au nud de faire une sorte d'apprentissage et donc d'eviter par la suite le transfert vers les nuds ayant precedemment refuses. Les strategies aveugles donnent de bons resultats lorsque le temps d'execution des t^aches est petit. En eet dans ce cas, le sur-co^ut d'un processus complexe de decision n'est pas masque par les temps de calcul des t^aches. D'autre part, le choix d'une strategie aveugle semble interessant pour des applications particulieres, le plus souvent regulieres: lorsque par exemple le calcul est forme d'un grand nombre de t^aches identiques et concurrentes, une strategie cyclique est intuitivement adaptee car elle realise simplement un equilibrage de charge. Une troisieme utilisation possible des strategies en aveugle est celui des systemes satures: lorsque tous les nuds ont un grand nombre de t^aches a executer, il ne sert

Equilibre de charge. Equilibre de charge statique Equilibre de charge dynamique

Equilibre de charge. Equilibre de charge statique Equilibre de charge dynamique Equilibre de charge Equilibre de charge statique Equilibre de charge dynamique Approches centralisées Approches distribuées Approches semi-distribuées Jaillet Info53 - L3 Informatique - 2006 1 Equilibre

Plus en détail

Gestion d'un entrepôt

Gestion d'un entrepôt Gestion d'un entrepôt Épreuve pratique d'algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l'épreuve: 3 heures 30 minutes Juin/Juillet 2010 ATTENTION! N oubliez

Plus en détail

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce Heuristique et métaheuristique IFT1575 Modèles de recherche opérationnelle (RO) 8. Optimisation combinatoire et métaheuristiques Un algorithme heuristique permet d identifier au moins une solution réalisable

Plus en détail

1 Introduction. 2 Algorithmes sans élagage. 2.1 Minimax. Chapitre 3 : Jeux (Février 2007, Pierre Gançarski)

1 Introduction. 2 Algorithmes sans élagage. 2.1 Minimax. Chapitre 3 : Jeux (Février 2007, Pierre Gançarski) Chapitre 3 : Jeux (Février 2007, Pierre Gançarski) 1 Introduction Quatre caractérisques pour les jeux étudiés : jeux à deux : deux adversaires eectuent alternativement des coups, chaque défaillance de

Plus en détail

UNIVERSITE SAAD DAHLAB DE BLIDA

UNIVERSITE SAAD DAHLAB DE BLIDA Chapitre 5 :. Introduction aux méthodes par séparation et évaluation Les méthodes arborescentes ( Branch and Bound Methods ) sont des méthodes exactes d'optimisation qui pratiquent une énumération intelligente

Plus en détail

Introduction à la programmation en variables entières Cours 3

Introduction à la programmation en variables entières Cours 3 Introduction à la programmation en variables entières Cours 3 F. Clautiaux francois.clautiaux@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 272 Sommaire Notion d heuristique Les algorithmes gloutons

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

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.

Plus en détail

Ebauche Rapport finale

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

Plus en détail

M2 TIIR (2013-2014) Bilel Derbel

M2 TIIR (2013-2014) Bilel Derbel M2 TIIR (2013-2014) Bilel Derbel Notre but est de concevoir une application générique sur grid5000 qui permet de déployer des calculs parallèles de façon transparente Plus précisément, nous nous plaçons

Plus en détail

Table des matières I La programmation linéaire en variables continues 1 Présentation 3 1 Les bases de la programmation linéaire 5 1.1 Formulation d'un problème de programmation linéaire........... 5 1.2

Plus en détail

LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION

LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION Dans les leçons précédentes, nous avons modélisé des problèmes en utilisant des graphes. Nous abordons dans cette leçon un autre type de modélisation.

Plus en détail

Principes généraux de codage entropique d'une source. Cours : Compression d'images Master II: IASIG Dr. Mvogo Ngono Joseph

Principes généraux de codage entropique d'une source. Cours : Compression d'images Master II: IASIG Dr. Mvogo Ngono Joseph Principes généraux de codage entropique d'une source Cours : Compression d'images Master II: IASIG Dr. Mvogo Ngono Joseph Table des matières Objectifs 5 Introduction 7 I - Entropie d'une source 9 II -

Plus en détail

Algorithmique Distribuée Communication de groupes

Algorithmique Distribuée Communication de groupes Algorithmique Distribuée Communication de groupes Laurent PHILIPPE Master 2 Informatique UFR des Sciences et Techniques 2013/2014 Laurent PHILIPPE Communication de groupes 1 / 58 Les outils Les groupes

Plus en détail

Chapitre I - Introduction et conseils au lecteur

Chapitre I - Introduction et conseils au lecteur Chapitre I - Introduction et conseils au lecteur Cette partie introductive situe la place de l'algorithmique dans le développement logiciel et fournit au lecteur des conseils : conseils pour bien analyser

Plus en détail

L'APPROCHE EXPERIMENTALE EN RECHERCHE: introduction aux statistiques.

L'APPROCHE EXPERIMENTALE EN RECHERCHE: introduction aux statistiques. L'APPROCHE EXPERIMENTALE EN RECHERCHE: introduction aux statistiques 1 BUTS DU COURS : se familiariser avec le vocabulaire statistique o variable dépendante, variable indépendante o statistique descriptive,

Plus en détail

Système. Introduction aux systèmes informatiques

Système. Introduction aux systèmes informatiques Introduction aux systèmes informatiques Système Un système est une collection organisée d'objets qui interagissent pour former un tout Objets = composants du système Des interconnexions (liens) entre les

Plus en détail

INTRODUCTION AUX PROBLEMES COMBINATOIRES "DIFFICILES" : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE

INTRODUCTION AUX PROBLEMES COMBINATOIRES DIFFICILES : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE Leçon 10 INTRODUCTION AUX PROBLEMES COMBINATOIRES "DIFFICILES" : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE Dans cette leçon, nous présentons deux problèmes très célèbres,

Plus en détail

Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques. Elec 2311 : S7

Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques. Elec 2311 : S7 Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques Elec 2311 : S7 1 Plan du cours Qu est-ce l optimisation? Comment l optimisation s intègre dans la conception?

Plus en détail

HEURISTIQUES D'OPTIMISATION. Evelyne LUTTON - INRA AgroParisTech - Grignon http ://evelyne-lutton.fr/

HEURISTIQUES D'OPTIMISATION. Evelyne LUTTON - INRA AgroParisTech - Grignon http ://evelyne-lutton.fr/ HEURISTIQUES D'OPTIMISATION Evelyne LUTTON - INRA AgroParisTech - Grignon http ://evelyne-lutton.fr/ D'après Patrick Siarry, LiSSi, Univ. de Paris-Est Créteil MÉTA-HEURISTIQUES Du grec : méta :au-delà,

Plus en détail

Résumé du chapitre 8 Ressources et interblocage

Résumé du chapitre 8 Ressources et interblocage Résumé du chapitre 8 Ressources et interblocage Jacques Mossière 12 août 2004 1 Introduction Ce chapitre est consacré à l étude d un problème classique dans les systèmes, l interblocage, c est à dire l

Plus en détail

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI Chapitre 6 Modélisation en P.L.I. 6.1 Lien entre PL et PLI (P) problème de PL. On restreint les variables à être entières : on a un problème de PLI (ILP en anglais). On restreint certaines variables à

Plus en détail

M2 MPRO. Optimisation dans les Graphes 2014-2015

M2 MPRO. Optimisation dans les Graphes 2014-2015 M2 MPRO Optimisation dans les Graphes 2014-2015 Programmation linéaire et problèmes d'optimisation dans les graphes 1 Problèmes d'optimisation dans les graphes : quelles méthodes pour les résoudre? Théorie

Plus en détail

Problème: si les tableaux que l'on trie sont déjà à peu près triés, l'algorithme n'est pas efficace.

Problème: si les tableaux que l'on trie sont déjà à peu près triés, l'algorithme n'est pas efficace. Traonmilin Yann traonmil@enst.fr MOD Algorithmique Probabiliste 1. Deux exemples 1.1. Quicksort randomisé. Dans l'algorithme de tri classique Quicksort, le pivot est choisi au début du tableau puis on

Plus en détail

Placement de centres logistiques

Placement de centres logistiques Master 1 - Spécialité Androide Année 2014/2015 Module RP Résolution de Problèmes Projet Placement de centres logistiques On considère dans ce projet la résolution du problème de placement de centres logistiques

Plus en détail

Exploration informée

Exploration informée Exploration informée Jerôme Champavère jerome.champavere @ lifl.fr http://www.grappa.univ-lille3.fr/~champavere/?page=enseignement Stratégies d'exploration informée Exploration «meilleur d'abord» Best-first

Plus en détail

Le client/serveur repose sur une communication d égal à égal entre les applications.

Le client/serveur repose sur une communication d égal à égal entre les applications. Table des matières LES PRINCIPES DE BASE... 1 Présentation distribuée-revamping...2 Présentation distante...3 Traitements distribués...3 données distantes-rd...4 données distribuées-rda distribué...4 L'ARCHITECTURE

Plus en détail

Algorithmes de recherche

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

Plus en détail

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Architecture des calculateurs

Architecture des calculateurs Chapitre 1 Architecture des calculateurs 1.1 Introduction Ce paragraphe n a pas la prétention de présenter un cours d informatique. D une manière générale, seuls les caractéristiques architecturales qui

Plus en détail

Recherche dans un tableau

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

Plus en détail

CH.1 COMPLEXITÉ. 1.1 Les ordres de grandeur 1.2 Les récurrences linéaires 1.3 Des exemples

CH.1 COMPLEXITÉ. 1.1 Les ordres de grandeur 1.2 Les récurrences linéaires 1.3 Des exemples CH.1 COMPLEXITÉ 1.1 Les ordres de grandeur 1.2 Les récurrences linéaires 1.3 Des exemples L2-2 ch1 1 1.1 Les ordres de grandeur Chaque problème peut être résolu de différentes manières par des algorithmes

Plus en détail

Cours Systèmes d exploitation 1

Cours Systèmes d exploitation 1 Cours Systèmes d exploitation 1 Achraf Othman Support du cours : www.achrafothman.net 1 Plan du cours Chapitre 1 : Gestion des processus Chapitre 2 : Ordonnancement des processus Chapitre 3 : La communication

Plus en détail

Intelligence Artificielle. Dorra BEN AYED

Intelligence Artificielle. Dorra BEN AYED Intelligence Artificielle Dorra BEN AYED Chapitre 2 Résolution de problème en IA Par recherche Introduction Résoudre un pb c est chercher un chemin qui permet d aller d une situation initiale à une situation

Plus en détail

SOMMAIRE. II L organisation du projet. 15 II.1 La place du projet dans la structure de l entreprise. 15 II.2 Les acteurs. 18

SOMMAIRE. II L organisation du projet. 15 II.1 La place du projet dans la structure de l entreprise. 15 II.2 Les acteurs. 18 SOMMAIRE CHAPITRE 1 INTRODUCTION I Définition du projet et de la gestion de projets. 7 I.1 Définition du projet. 7 I.2 Définition de la gestion des projets. 10 I.3 Interaction formulation - résolution

Plus en détail

GESTION DES PROCESSUS

GESTION DES PROCESSUS CHAPITRE 2 : GESTION DES PROCESSUS Objectifs spécifiques Connaître la notion de processus, Connaître les caractéristiques d un processus ainsi que son contexte Connaître la notion d interruptions et de

Plus en détail

Multiplication par une constante entière

Multiplication par une constante entière Multiplication par une constante entière Vincent Lefèvre Juin 2001 Introduction But : générer du code optimal à l aide d opérations élémentaires (décalages vers la gauche, additions, soustractions). Utile

Plus en détail

Les systèmes RAID Architecture des ordinateurs

Les systèmes RAID Architecture des ordinateurs METAIS Cédric 2 ème année Informatique et réseaux Les systèmes RAID Architecture des ordinateurs Cédric METAIS ISMRa - 1 - LES DIFFERENTS SYSTEMES RAID SOMMAIRE INTRODUCTION I LES DIFFERENTS RAID I.1 Le

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

ORDRE DE RÉACTION : MÉTHODES DE

ORDRE DE RÉACTION : MÉTHODES DE ORDRE DE RÉACTION : MÉTHODES DE RÉSOLUTION Table des matières 1 Méthodes expérimentales 2 1.1 Position du problème..................................... 2 1.2 Dégénérescence de l ordre...................................

Plus en détail

LE PROBLEME DU FLOT MAXIMAL

LE PROBLEME DU FLOT MAXIMAL LE PROBLEME DU FLOT MAXIMAL I Exemple d introduction Deux châteaux d'eau alimentent 3 villes à travers un réseau de canalisations au sein duquel se trouvent également des stations de pompage. Les châteaux

Plus en détail

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème.

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème. Mathématiques - classe de 1ère des séries STI2D et STL. 1. Analyse On dote les élèves d outils mathématiques permettant de traiter des problèmes relevant de la modélisation de phénomènes continus ou discrets.

Plus en détail

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce Année 2007-2008 Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce B. Monsuez Projet informatique «Voyageur de commerce» Résolution

Plus en détail

Analyse abstraite de missions sous PILOT

Analyse abstraite de missions sous PILOT Analyse abstraite de missions sous PILOT Damien Massé EA 3883, Université de Bretagne Occidentale, Brest damien.masse@univ-brest.fr Résumé Nous étudions la possibilité de réaliser un analyseur par interprétation

Plus en détail

La hiérarchie du système DNS

La hiérarchie du système DNS LA RÉSOLUTION DE NOMS 1. PRÉSENTATION DU SYSTÈME DNS 1.1 INTRODUCTION À LA RÉSOLUTION DE NOMS Pour pouvoir communiquer, chaque machine présente sur un réseau doit avoir un identifiant unique. Avec le protocole

Plus en détail

De nombreux processus sont gérés par le SE L'efficacité théorique serait maximale si le nombre de processeurs était comparable à celui des processus

De nombreux processus sont gérés par le SE L'efficacité théorique serait maximale si le nombre de processeurs était comparable à celui des processus De nombreux processus sont gérés par le SE L'efficacité théorique serait maximale si le nombre de processeurs était comparable à celui des processus Dans la plupart des cas la machine possède quelques

Plus en détail

Groupe. Chapter 1. Félix Abecassis (CSI) Christopher Chedeau (CSI) Gauthier Lemoine (SCIA) Julien Marquegnies (CSI)

Groupe. Chapter 1. Félix Abecassis (CSI) Christopher Chedeau (CSI) Gauthier Lemoine (SCIA) Julien Marquegnies (CSI) Chapter 1 Groupe Félix Abecassis (CSI) Christopher Chedeau (CSI) Gauthier Lemoine (SCIA) Julien Marquegnies (CSI) Nous avons choisi d implémenter le projet avec le langage Javascript. L avantage offert

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Couples de variables aléatoires discrètes

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

Plus en détail

Optimisation en nombres entiers

Optimisation en nombres entiers Optimisation en nombres entiers p. 1/83 Optimisation en nombres entiers Michel Bierlaire michel.bierlaire@epfl.ch EPFL - Laboratoire Transport et Mobilité - ENAC Optimisation en nombres entiers p. 2/83

Plus en détail

COMMENT DÉFINIR L ORIENTÉ OBJET

COMMENT DÉFINIR L ORIENTÉ OBJET COMMENT DÉFINIR L ORIENTÉ OBJET De manière superficielle, le terme «orienté objet», signifie que l on organise le logiciel comme une collection d objets dissociés comprenant à la fois une structure de

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

Problème combinatoire sur le réseau de transport de gaz. Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS

Problème combinatoire sur le réseau de transport de gaz. Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS Problème combinatoire sur le réseau de transport de gaz Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS Au programme Présentation du problème Un problème d optimisation

Plus en détail

2B La résolution de modèles linéaires par Excel 2010

2B La résolution de modèles linéaires par Excel 2010 2B La résolution de modèles linéaires par Excel 2010 Nous reprenons ici, de façon plus détaillée, la section où est indiqué comment utiliser le solveur d'excel 2010 pour résoudre un modèle linéaire (voir

Plus en détail

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Projet Informatique Philippe Collet Licence 3 Informatique S5 2014-2015 http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Réalisation d'un développement de taille conséquente? r Firefox? Ph.

Plus en détail

choisir H 1 quand H 0 est vraie - fausse alarme

choisir H 1 quand H 0 est vraie - fausse alarme étection et Estimation GEL-64943 Hiver 5 Tests Neyman-Pearson Règles de Bayes: coûts connus min π R ( ) + ( π ) R ( ) { } Règles Minimax: coûts connus min max R ( ), R ( ) Règles Neyman Pearson: coûts

Plus en détail

Algorithmique et Programmation Projets 2012/2013

Algorithmique et Programmation Projets 2012/2013 3 Dames 3. Objectif Il s agit d écrire un programme jouant aux Dames selon les règles. Le programme doit être le meilleur possible. Vous utiliserez pour cela l algorithme α β de recherche du meilleur coup

Plus en détail

Prévision de la demande

Prévision de la demande But : Pour prendre des décisions relatives à la structure et au fonctionnement opérationnel de tout système logistique; il faut s appuyer sur un système de prévision fiable. Concerne le long, moyen et

Plus en détail

Le protocole TCP /IP

Le protocole TCP /IP Le protocole TCP /IP Définition d'une URL : URL : ( Uniform Ressource Locator ) Http:// www. wanadoo.fr / public / index.htm Protocole Nom d ordinateur Sous domaine Domaine racine répertoire Fichier Prococole

Plus en détail

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre Recherche opérationnelle Programmation linéaire et recherche opérationnelle Ioan Todinca Ioan.Todinca@univ-orleans.fr tél. 0 38 41 7 93 bureau : en bas à gauche Tentative de définition Ensemble de méthodes

Plus en détail

Compte-rendu de projet de Cryptographie

Compte-rendu de projet de Cryptographie Compte-rendu de projet de Cryptographie Chirement/Déchirement de texte, d'images de sons et de vidéos LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Pallo Table des matières

Plus en détail

Programmation récursive

Programmation récursive Année 2004-2005 F. Lévy IUT De Villetaneuse Dép t informatique Cours d'algorithmique 2 éme Année Cours 8 Programmation récursive 1. Qu'est-ce que la programmation récursive Définition : la programmation

Plus en détail

Algorithmique distribuée. Exclusion mutuelle

Algorithmique distribuée. Exclusion mutuelle Algorithmique distribuée Exclusion mutuelle Eric Cariou Master Technologies de l'internet 1 ère année Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Exclusion

Plus en détail

Programmation avancée

Programmation avancée Programmation avancée Chapitre 1 : Complexité et les ABR (arbres binaires de recherche) 1 1 IFSIC Université de Rennes-1 M2Crypto, octobre 2011 Plan du cours 1 2 3 4 5 6 7 8 9 10 Algorithmes Définition

Plus en détail

Notion de complexité

Notion de complexité 1 de 27 Algorithmique Notion de complexité Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www-igm.univ-mlv.fr/ hivert Outils mathématiques 2 de 27 Outils mathématiques : analyse

Plus en détail

Optimisation de la performance. d un processus d usinage à commande numérique

Optimisation de la performance. d un processus d usinage à commande numérique Jacques ALEXIS 20 Novembre 2001 Optimisation de la performance d un processus d usinage à commande numérique 1 Exposé du problème à résoudre L exemple utilisé pour cette présentation a été présenté par

Plus en détail

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES Sommaire 1 Méthodes de résolution... 3 1.1. Méthode de Substitution... 3 1.2. Méthode des combinaisons linéaires... 6 La rubrique d'aide qui suit s'attardera aux

Plus en détail

Modélisation et résolution du problème de transport de gaz: application au réseau principal français

Modélisation et résolution du problème de transport de gaz: application au réseau principal français Modélisation et résolution du problème de transport de gaz: application au réseau principal français Présentation des travaux de thèse GDF SUEZ - INPT - ENSIACET - LGC EMN 24 mars 2011 Le gaz en Europe

Plus en détail

La recherche locale. INF6953 La recherche locale 1

La recherche locale. INF6953 La recherche locale 1 La recherche locale INF6953 La recherche locale 1 Sommaire Recherche locale et voisinage. Fonction de voisinage, optimum local Fonction de voisinage et mouvements Fonction de voisinage et mouvements Exemples

Plus en détail

ANNEXE 1 BTS AGENCEMENT DE L'ENVIRONNEMENT ARCHITECTURAL Programme de mathématiques

ANNEXE 1 BTS AGENCEMENT DE L'ENVIRONNEMENT ARCHITECTURAL Programme de mathématiques ANNEXE BTS AGENCEMENT DE L'ENVIRONNEMENT ARCHITECTURAL Programme de mathématiques L'enseignement des mathématiques dans les sections de techniciens supérieurs Agencement de l'environnement architectural

Plus en détail

P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S

P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S POUR L ENSEIGNEMENT DE L INFORMATIQUE MPSI première année I. Objectifs de la formation II-1 Développement de compétences et d aptitudes

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 11 : Arbre couvrant Prétraitement Benjamin Wack 2015-2016 1 / 32 La dernière fois Rappels sur les graphes Problèmes classiques Algorithmes d optimisation

Plus en détail

CH.5 MÉTHODES APPROCHÉES

CH.5 MÉTHODES APPROCHÉES CH.5 MÉTHODES APPROCHÉES 5.1 Les voisinages 5. Les méthodes de descentes 5. Le recuit simulé 5.4 La Méthode Tabou 5.5 Les algorithmes génétiques Opti-comb ch 5 1 5.1 Les voisinages Dans les problèmes de

Plus en détail

Chapitre n 3 : Présentation des méthodes agiles et Scrum

Chapitre n 3 : Présentation des méthodes agiles et Scrum Chapitre n 3 : Présentation des méthodes agiles et Scrum I. Généralités sur les méthodes agiles I-1. Définition Les méthodes agiles sont des méthodologies essentiellement dédiées à la gestion de projets

Plus en détail

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

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

Plus en détail

Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources

Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources Jonathan Lejeune LIP6-UPMC/CNRS, Inria 19 septembre 2014 Directeur : Pierre Sens Encadrants : Luciana Arantes et

Plus en détail

1 Exercice 1 Question de cours (4 points)

1 Exercice 1 Question de cours (4 points) Info32B Systèmes d'exploitation année 2013-2014 Examen (1ère session) 16 décembre 2014 N. Sabouret L'épreuve dure 2h30. Tous les documents sont autorisés. Les exercices sont indépendants. 1 Exercice 1

Plus en détail

Problèmes et Algorithmes Fondamentaux III Algorithme distribué probabiliste

Problèmes et Algorithmes Fondamentaux III Algorithme distribué probabiliste Problèmes et Algorithmes Fondamentaux III Algorithme distribué probabiliste Arnaud Labourel Université de Provence 12 avril 2012 Arnaud Labourel (Université de Provence) Problèmes et Algorithmes Fondamentaux

Plus en détail

CH.2 CODES CORRECTEURS

CH.2 CODES CORRECTEURS CH.2 CODES CORRECTEURS 2.1 Le canal bruité 2.2 La distance de Hamming 2.3 Les codes linéaires 2.4 Les codes de Reed-Muller 2.5 Les codes circulaires 2.6 Le câblage des codes circulaires 2.7 Les performances

Plus en détail

Épreuve n 11 : contrôle de gestion

Épreuve n 11 : contrôle de gestion Épreuve n 11 : contrôle de gestion Nature : épreuve écrite portant sur l étude d une ou de plusieurs situations pratiques et/ou un ou plusieurs excercices et/ou une ou plusieurs questions. Durée : 4 heures.

Plus en détail

Ordonnancement des processus. Didier Verna. didier@lrde.epita.fr http://www.lrde.epita.fr/ didier. Systèmes d Exploitation. Didier Verna EPITA

Ordonnancement des processus. Didier Verna. didier@lrde.epita.fr http://www.lrde.epita.fr/ didier. Systèmes d Exploitation. Didier Verna EPITA 1/16 Ordonnancement des processus didier@lrde.epita.fr http://www.lrde.epita.fr/ didier 2/16 Table des matières 1 Ordonnancement et réquisition d ordonnancement 2 d ordonnancement Premier arrivé premier

Plus en détail

Classification Exemple : Enquête d opinion sur les OGM. Pauline Le Badezet Alexandra Lepage

Classification Exemple : Enquête d opinion sur les OGM. Pauline Le Badezet Alexandra Lepage Classification Exemple : Enquête d opinion sur les OGM Pauline Le Badezet Alexandra Lepage SOMMAIRE Introduction Méthodologie Méthode de partitionnement Classification Ascendante Hiérarchique Interprétation

Plus en détail

INTRODUCTION. A- Modélisation et paramétrage : CHAPITRE I : MODÉLISATION. I. Paramétrage de la position d un solide : (S1) O O1 X

INTRODUCTION. A- Modélisation et paramétrage : CHAPITRE I : MODÉLISATION. I. Paramétrage de la position d un solide : (S1) O O1 X INTRODUCTION La conception d'un mécanisme en vue de sa réalisation industrielle comporte plusieurs étapes. Avant d'aboutir à la maquette numérique du produit définitif, il est nécessaire d'effectuer une

Plus en détail

Service combinators for farming virtual machines

Service combinators for farming virtual machines Master d Informatique Fondamentale École Normale Supérieure de Lyon Sémantique du parallélisme Chantal Keller Service combinators for farming virtual machines K. Bhargavan, A. D. Gordon, I. Narasamdya

Plus en détail

Génération automatique d un décodeur d instruction efficace. Nadir AMAIOUA

Génération automatique d un décodeur d instruction efficace. Nadir AMAIOUA Ecole nationale supérieure d'informatique et des mathématiques appliquées Grenoble INP Initiation à la recherche au laboratoire au sein de laboratoire TIMA. Encadrants : Frédéric Pétrot et Nicolas Fournel

Plus en détail

Bases de données nationales en matière de valeur comme outil d'évaluation des risques

Bases de données nationales en matière de valeur comme outil d'évaluation des risques Bases de données nationales en matière de valeur comme outil d'évaluation des risques Parlons-en... Les directives Directives concernant l'élaboration et l'utilisation des bases de données nationales en

Plus en détail

Étapes du développement et de l utilisation d un modèle de simulation

Étapes du développement et de l utilisation d un modèle de simulation Étapes du développement et de l utilisation d un modèle de simulation Étapes du développement et de l utilisation d un modèle de simulation Formulation du problème Cueillette et analyse de données Conception

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

PLANIFICATION ET SUIVI D'UN PROJET

PLANIFICATION ET SUIVI D'UN PROJET Centre national de la recherche scientifique Direction des systèmes d'information REFERENTIEL QUALITE Guide méthodologique PLANIFICATION ET SUIVI D'UN PROJET Référence : CNRS/DSI/conduite-projet/developpement/gestion-projet/guide-planfi-suivi-projet

Plus en détail

L approche Bases de données

L approche Bases de données L approche Bases de données Cours: BD. Avancées Année: 2005/2006 Par: Dr B. Belattar (Univ. Batna Algérie) I- : Mise à niveau 1 Cours: BDD. Année: 2013/2014 Ens. S. MEDILEH (Univ. El-Oued) L approche Base

Plus en détail

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population.

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population. Première STMG1 2014-2015 progression. - 1 Table des matières Fil rouge. 3 Axes du programme. 3 Séquence : Proportion d une sous population dans une population. 3 Information chiffrée : connaître et exploiter

Plus en détail

Annexe 6. Notions d ordonnancement.

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. Sophie.Demassey@mines-nantes.fr Résumé Ce document

Plus en détail

Algorithmique Distribuée Exclusion mutuelle distribuée

Algorithmique Distribuée Exclusion mutuelle distribuée Algorithmique Distribuée Exclusion mutuelle distribuée Laurent PHILIPPE Master 2 Informatique UFR des Sciences et Techniques 2013/2014 Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 1 / 68

Plus en détail

Calcul rapide des puissances

Calcul rapide des puissances Calcul rapide des puissances Par Mathtous Il s'agit de puissances à exposant entier naturel (avec la convention a 0 = 1, et a 1 = a). Si on applique la dénition pour calculer a n, on calcule de proche

Plus en détail

Algorithmique et programmation. Cours d'algorithmique illustré par des exemples pour le picbasic

Algorithmique et programmation. Cours d'algorithmique illustré par des exemples pour le picbasic Algorithmique et programmation Cours d'algorithmique illustré par des exemples pour le picbasic Même s'il est possible d'écrire un programme petit à petit par touches successives, le résultat est souvent

Plus en détail

L enseignement de l algorithmique au Lycée

L enseignement de l algorithmique au Lycée L enseignement de l algorithmique au Lycée Sisteron 12 novembre 2009 Fernand Didier didier@irem.univ-mrs.fr Approche naïve C est une méthode, une façon systématique de procéder, pour faire quelque chose

Plus en détail

L INFORMATION GEOGRAPHIQUE

L INFORMATION GEOGRAPHIQUE Champs sur Marne ENSG/CERSIG Le 19-nove.-02 L INFORMATION GEOGRAPHIQUE Archivage Le Système d information géographique rassemble de l information afin de permettre son utilisation dans des applications

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail