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

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

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

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

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

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

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

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

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

LE PROBLEME DU PLUS COURT CHEMIN

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

Plus en détail

Survival kit d'informatique de gestion - partie litiges, fraudes et risques informatiques 1 1 Bla bla habituel concernant la responsabilite de Luc Golvers (il n'est pas a mettre en cause) et concernant

Plus en détail

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 ))

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 glorenne@irisa.fr C. Hérault Hydrostop christophe@hydrostop.fr V. Hulin Hydrostop vincent@hydrostop.fr

Plus en détail

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

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

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

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

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

Rapport de stage. Simulation d'algorithmes auto-stabilisants

Rapport de stage. Simulation d'algorithmes auto-stabilisants Université Joseph Fourier Département Licence Sciences & Technologies Rapport de stage Simulation d'algorithmes auto-stabilisants DIAKITE Moussa Laboratoire d'accueil : Verimag Directeur du laboratoire

Plus en détail

Chapitre 5 - Placement de composants logiciels : Application à l équilibrage de charge

Chapitre 5 - Placement de composants logiciels : Application à l équilibrage de charge Chapitre 5 - Placement de composants logiciels : Application à l équilibrage de charge «La simple existence d un problème ne prouve pas qu il y ait une solution» (proverbe yiddish) Résumé L équilibrage

Plus en détail

OÙ EN EST-ON? ABANDONNER L IDÉE D AVOIR UN ALGORITHME

OÙ EN EST-ON? ABANDONNER L IDÉE D AVOIR UN ALGORITHME OÙ EN EST-ON? Que faire face à un problème dur? AAC S.Tison Université Lille1 Master1 Informatique Quelques schémas d algorithmes Un peu de complexité de problèmes Un peu d algorithmique avancée ou Que

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 1 - Introduction Qu est-ce qu un

Plus en détail

ORDONNANCEMENT DE L'UNITE DE TRAITEMENT

ORDONNANCEMENT DE L'UNITE DE TRAITEMENT ORDONNANCEMENT DE L'UNITE DE TRAITEMENT 1. OBJECTIFS... 2 2. ASSIGNATIONS ET DIAGRAMMES DE GANTT... 2 3. ALGORITHMES SANS RÉQUISITION... 4 3.1. ORDONNANCEMENT DANS L'ORDRE D'ARRIVÉE (FIFO)... 4 3.2. PLUS

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

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

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

Algorithmes d'apprentissage

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

Plus en détail

Processus de décision répartis

Processus de décision répartis Processus de décision répartis Florent Matignon Renato Matuzaki Honda Miguel Robles 30 mars 2010 Table des matières I Introduction 2 Système réparti 2 II L'état global 2 1 Introduction 2 1.1 La problématique.........................................

Plus en détail

Internet : modéliser le trafic pour mieux le gérer

Internet : modéliser le trafic pour mieux le gérer Internet : modéliser le trafic pour mieux le gérer 16/12/05 Les spécialistes des réseaux de communication s efforcent de bien comprendre les propriétés statistiques du trafic de données qu'ils doivent

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

Consultation publique sur la portabilité des numéros

Consultation publique sur la portabilité des numéros Consultation publique sur la portabilité des numéros Table des matières 1 Préambule 2 2 Cadre réglementaire 2 3 Dénitions 4 4 Système de portabilité des numéros 4 4.1 Modes de routage.................................

Plus en détail

Leçon 3. Ordonnancement : planification

Leçon 3. Ordonnancement : planification Leçon 3 Ordonnancement : planification Objectif : A l'issue de la leçon l'étudiant doit être capable : de planifier tout ou partie d'une production à partir d'un dossier de gestion des flux décrivant le

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

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

TD 2 Exercice 1. Un bûcheron a 100 hectares de bois de feuillus. Couper un hectare de bois et laisser la zone se régénérer naturellement coûte 10 kf par hectares, et rapporte 50 kf. Alternativement, couper

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

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

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP)

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Loris Marchal, Guillaume Melquion, Frédéric Tronel 21 juin 2011 Remarques générales à propos de l épreuve Organisation

Plus en détail

Huitième partie. Processus communicants CSP/Ada. Processus communicants Communication synchrone CSP/CCS/π-calcul Rendez-vous étendu Ada

Huitième partie. Processus communicants CSP/Ada. Processus communicants Communication synchrone CSP/CCS/π-calcul Rendez-vous étendu Ada Huitième partie Processus communicants CSP/Ada Systèmes concurrents 2 / 44 Synchronisation Désignation, alternatives Architecture d'une application parallèle Plan 1 Processus communicants Synchronisation

Plus en détail

Leçon 5. Ordonnancement : OPT

Leçon 5. Ordonnancement : OPT Leçon 5 Ordonnancement : OPT L'objectif principal de la leçon est de connaître et de comprendre la méthode de gestion et d'ordonnancement d'un atelier par les contraintes. A l'issue de la leçon l'étudiant

Plus en détail

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, 94235 Cachan Cedex. Resume

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, 94235 Cachan Cedex. Resume Introduction a l'algorithmique des objets partages Bernadette Charron{Bost Robert Cori Lix, Ecole Polytechnique, 91128 Palaiseau Cedex, France, charron@lix.polytechnique.fr cori@lix.polytechnique.fr Antoine

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

É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

MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE

MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE Annexe MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE L enseignement des mathématiques au collège et au lycée a pour but de donner à chaque

Plus en détail

11. Evaluation de la qualité des essais

11. Evaluation de la qualité des essais 11. Evaluation de la qualité des essais L évaluation de la qualité méthodologique d un essai thérapeutique est une tâche difficile [117]. L essai thérapeutique contrôlé randomisé est considéré comme étant

Plus en détail

Modélisation conceptuelle des Systèmes Distribués

Modélisation conceptuelle des Systèmes Distribués Modélisation conceptuelle des Systèmes Distribués 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 Systèmes

Plus en détail

Yskandar Hamam. et Informatique Industrielle (SC2I)

Yskandar Hamam. et Informatique Industrielle (SC2I) L'OPTIMISATION : UN OUTIL DE L'INGENIEUR Yskandar Hamam Laboratoire Systemes de Commande et Informatique Industrielle (SC2I) E.S.I.E.E. Cite Descartes, BP 99 93162 Noisy-le-Grand CEDEX 28 mai 1998 Table

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 Distribuée Introduction et Contexte

Algorithmique Distribuée Introduction et Contexte Algorithmique Distribuée Introduction et Contexte Laurent PHILIPPE Master 2 Informatique UFR des Sciences et Techniques 2013/2014 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 1 / 67 Introduction

Plus en détail

Exemple de projet. «Gestion de contacts»

Exemple de projet. «Gestion de contacts» Université Paul Valéry Montpellier 3 Antenne universitaire de Béziers L3 AES parcours MISASHS ECUE «Logiciels spécialisés» Exemple de projet «Gestion de contacts» G. Richomme Table des matières 1. Introduction...

Plus en détail

Ordonnancement Temps Réel. Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr

Ordonnancement Temps Réel. Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr Ordonnancement Temps Réel Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr 2 Plan de la présentation 1. Introduction aux systèmes temps réel 1.1 Différents modèles de tâches 1.2

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

DEFLATEURS ET TECHNOLOGIE : INDICES DE PRIX ET INDICES DE PERFORMANCES

DEFLATEURS ET TECHNOLOGIE : INDICES DE PRIX ET INDICES DE PERFORMANCES BULLETIN DE l'acn n 28 INSEE Association de Comptabilité Nationale 18, bd Adolphe Pinard 75675 PARIS CEDEX 14 (France) DEFLATEURS ET TECHNOLOGIE : INDICES DE PRIX ET INDICES DE PERFORMANCES Henri DUPRAT

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

Diagrammes de décisions binaires

Diagrammes de décisions binaires Diagrammes de décisions binaires Épreuve pratique d'algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l'épreuve: 3 heures 30 minutes Juillet 2009 ATTENTION! N oubliez

Plus en détail

Séance de TP 4 Lentilles minces. Romain BEL 3 janvier 2002

Séance de TP 4 Lentilles minces. Romain BEL 3 janvier 2002 Séance de TP 4 Lentilles minces Romain BEL 3 janvier 2002 1 Table des matières 1 Lentilles minces, stigmatisme, relations de conjugaison 3 1.1 Lentilles minces............................. 3 1.2 L'approximation

Plus en détail

Pourquoi l apprentissage?

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

Plus en détail

Chapitre 1 : Introduction aux bases de données

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

Plus en détail

Méthodes d optimisation pour un problème de co-voiturage couplé aux transports en commun

Méthodes d optimisation pour un problème de co-voiturage couplé aux transports en commun Méthodes d optimisation pour un problème de co-voiturage couplé aux transports en commun Aziz Amnay Encadrant : Nadia Brauner Responsable Ensimag : Florence MARANINCHI Grenoble, le 16 mai 2012 Table des

Plus en détail

Sauf mention contraire, le contenu de cet ouvrage est publié sous la licence : Creative Commons BY-NC-SA 2.0 La copie de cet ouvrage est autorisée

Sauf mention contraire, le contenu de cet ouvrage est publié sous la licence : Creative Commons BY-NC-SA 2.0 La copie de cet ouvrage est autorisée Sauf mention contraire, le contenu de cet ouvrage est publié sous la licence : Creative Commons BY-NC-SA 2.0 La copie de cet ouvrage est autorisée sous réserve du respect des conditions de la licence Texte

Plus en détail

Processus ponctuels. Olivier Scaillet. University of Geneva and Swiss Finance Institute

Processus ponctuels. Olivier Scaillet. University of Geneva and Swiss Finance Institute Processus ponctuels Olivier Scaillet University of Geneva and Swiss Finance Institute Outline 1 Processus ponctuels 2 Introduction On désire dans ce chapitre construire des modèles d'une distribution aléatoire

Plus en détail

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

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

Plus en détail

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R 2. RAPPEL DES TECHNIQUES DE CALCUL DANS R Dans la mesure où les résultats de ce chapitre devraient normalement être bien connus, il n'est rappelé que les formules les plus intéressantes; les justications

Plus en détail

Critère de terminaison sous-terme

Critère de terminaison sous-terme 2 ème année du MPRI Projet Université Paris VII Chantal Keller Critère de terminaison sous-terme Récriture Professeurs: Évelyne Contejean Xavier Urbain 9 janvier 2009 1 Introduction 1.1 Présentation Ce

Plus en détail

CHAPITRE VIII : Les circuits avec résistances ohmiques

CHAPITRE VIII : Les circuits avec résistances ohmiques CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On

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

Programmation parallèle CPU / GPU

Programmation parallèle CPU / GPU Pré-rapport de stage de Master 2 Professionnel Mention Informatique Spécalité Systèmes et Applications Répartis Parcours Systèmes répartis embarqués ou temps-réel Programmation parallèle CPU / GPU Auteur

Plus en détail

Inter'Action 2014 : Jeux de Nim sur les graphes.

Inter'Action 2014 : Jeux de Nim sur les graphes. Qu'est-ce qu'un jeu combinatoire 9 mai 204 Qu'est-ce qu'un jeu combinatoire 2 Le jeu de Nim : un exemple de partie. Le jeu de Nim : Deux joueurs : Plusieurs piles de jetons. On retire alternativement autant

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

THÈSE DE DOCTORAT. soutenue le 27/09/2013. par. Marc LETOURNEL APPROCHES DUALES DANS LA RESOLUTION DE PROBLEMES STOCHASTIQUES

THÈSE DE DOCTORAT. soutenue le 27/09/2013. par. Marc LETOURNEL APPROCHES DUALES DANS LA RESOLUTION DE PROBLEMES STOCHASTIQUES UNIVERSITE PARIS-SUD ÉCOLE DOCTORALE : Laboratoire de Recherche en Informatique. DISCIPLINE Graphes Combinatoires. THÈSE DE DOCTORAT soutenue le 27/09/2013 par Marc LETOURNEL APPROCHES DUALES DANS LA RESOLUTION

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

Métaheuristique. Jérémy CHANUT Charles BALLARINI

Métaheuristique. Jérémy CHANUT Charles BALLARINI Métaheuristique Jérémy CHANUT Charles BALLARINI 15 octobre 2012 CHAPITRE 1 INTRODUCTION Ce projet consiste en la résolution du problème des composants électroniques par deux méthodes : Recuit simulé Algorithme

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

1. INFORMATIQUE DANS LES DISCIPLINES, INFORMATIQUE DISCIPLINE

1. INFORMATIQUE DANS LES DISCIPLINES, INFORMATIQUE DISCIPLINE 29 UN PLAN DE FORMATION À L'INFORMATIQUE DE TOUS LES ÉLÈVES, DE L'ÉCOLE PRIMAIRE AU LYCÉE Note n 8 du groupe technique disciplinaire informatique - décembre 1991 - (principaux extraits) 1. INFORMATIQUE

Plus en détail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

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

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

Génération de graphes connexes aléatoires avec séquence de degrés donnée

Génération de graphes connexes aléatoires avec séquence de degrés donnée Génération de graphes connexes aléatoires avec séquence de degrés donnée Stage au LIAFA (Paris 7) sous la direction de Matthieu Latapy pour le DEA d'algorithmique ENS Paris - Paris 6 Fabien Viger fabien.viger@normalesup.org

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

chapitre 4 Nombres de Catalan

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

Plus en détail

Algorithmique des graphes quelques notes de cours. Ioan Todinca, avec le concours de Julien Tesson

Algorithmique des graphes quelques notes de cours. Ioan Todinca, avec le concours de Julien Tesson Algorithmique des graphes quelques notes de cours Ioan Todinca, avec le concours de Julien Tesson 29 avril 2008 2 Table des matières I Algorithmes de base 5 1 Généralités 7 1.1 Dénitions et notations...............................

Plus en détail

Parallélisme et Répartition

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 baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre

Plus en détail

5.1.1 La procédure pour la description d'une situation-problème

5.1.1 La procédure pour la description d'une situation-problème 5 LE CHOIX DES PARTIES DE COURS : UNE PROGRESSION DES APPRENTISSAGES Éléments du cinquième chapitre 5.1 La description de la situation-problème finale 5.1.1 La procédure pour la description d'une situation-problème

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

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

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources

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

Plus en détail

Routage dynamique et protocoles de routage. Claude Chaudet Xavier Misseri

Routage dynamique et protocoles de routage. Claude Chaudet Xavier Misseri Routage dynamique et protocoles de routage Claude Chaudet Xavier Misseri Principe du routage Configurer les tables de routage (des routeurs) afin que les paquets empruntent le meilleur chemin disponible

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

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

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

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

1 Codes linéaires. G = [I k A]. Dans ce cas on constate que la matrice. H = [ t A I n k ] est une matrice de contrôle de C. Le syndrome de x F n q

1 Codes linéaires. G = [I k A]. Dans ce cas on constate que la matrice. H = [ t A I n k ] est une matrice de contrôle de C. Le syndrome de x F n q 1 Codes linéaires Un code de longueur n est une partie de F n q. Un code linéaire C de longueur n sur le corps ni F q est un sous-espace vectoriel de F n q. Par défaut, un code sera supposé linéaire. La

Plus en détail

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013»

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» I Objectifs Niveau fondamental : «on se fixe pour objectif la

Plus en détail

Programme de l enseignement obligatoire commun de mathématiques Cycle terminal de la série sciences et technologies du management et de la gestion

Programme de l enseignement obligatoire commun de mathématiques Cycle terminal de la série sciences et technologies du management et de la gestion Programme de l enseignement obligatoire commun de mathématiques Cycle terminal de la série sciences et technologies du management et de la gestion L enseignement des mathématiques au collège et au lycée

Plus en détail

Introduction à l'algorithmique Distribuée. Exclusion mutuelle

Introduction à l'algorithmique Distribuée. Exclusion mutuelle Introduction à l'algorithmique Distribuée Exclusion mutuelle Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Exclusion mutuelle distribuée Exclusion

Plus en détail

L apprentissage automatique

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

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

Haute disponibilité et répartition de charge avec Sympa

Haute disponibilité et répartition de charge avec Sympa Haute disponibilité et répartition de charge avec Sympa David Verdin RENATER c/o Centre de Ressources Informatiques 263 Avenue du General Leclerc CS 74205 Campus de Beaulieu 35042 Rennes CEDEX Serge Aumont

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Interne Forces Faiblesses Externe Opportunités Menaces

Interne Forces Faiblesses Externe Opportunités Menaces L ANALYSE SWOT 1 Pourquoi utiliser cet outil en évaluation? L'analyse SWOT (Strengths Weaknesses Opportunities Threats) ou AFOM (Atouts Faibses Opportunités Menaces) est un outil d'analyse stratégique.

Plus en détail

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

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

Plus en détail