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



Documents pareils
PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Algorithmes de recherche

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

(VM(t i ),Q(t i+j ),VM(t i+j ))

LE PROBLEME DU PLUS COURT CHEMIN

Algorithmes d'apprentissage

Ebauche Rapport finale

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

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

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

Chapitre 1 : Introduction aux bases de données

Recherche dans un tableau

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Pourquoi l apprentissage?

chapitre 4 Nombres de Catalan

Equilibrage de charge pour les grilles de calcul : classe des tâches dépendantes et indépendantes.

CHAPITRE VIII : Les circuits avec résistances ohmiques

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Annexe 6. Notions d ordonnancement.

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

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

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

Conception d'un réseau de transport d'électricité

L apprentissage automatique

Cours de Master Recherche

Chapitre 10. Architectures des systèmes de gestion de bases de données

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

Structure logique. Active Directory. Forêts Arborescences Domaines Unités d'organisation

SEP 2B juin 20. Guide méthodologique de calcul du coût d une prestation

2. Activités et Modèles de développement en Génie Logiciel

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Parallélisme et Répartition

Systemes d'exploitation des ordinateurs

ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE

APPLICATION DU SCN A L'EVALUATION DES REVENUS NON DECLARES DES MENAGES

Interne Forces Faiblesses Externe Opportunités Menaces

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

modélisation solide et dessin technique

Qu'est-ce que le BPM?

ORACLE TUNING PACK 11G

Date : Tangram en carré page

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Année : Team-War Jaafar AMRANI-MESBAHI Fabien GARCIA Abdelali NAIT BELKACEM Rahma NAKARA Philippe NGUYEN

BANQUES DE DONNÉES PÉDAGOGIQUES

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Sur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

Contributions à l expérimentation sur les systèmes distribués de grande taille

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

Compte-rendu de projet de Système de gestion de base de données

Aider à la décision. - La matrice d Eisenhower - Le diagramme de Pareto - Les arbres d objectifs - Le diagramme d affinités - La méthode Philips 6.

CONFÉRENCE EUROPÉENNE DES MINISTRES DES TRANSPORTS EUROPEAN CONFERENCE OF MINISTERS OF TRANSPORT

portnox pour un contrôle amélioré des accès réseau Copyright 2008 Access Layers. Tous droits réservés.

METHODOLOGIE GENERALE DE LA RECHERCHE EPIDEMIOLOGIQUE : LES ENQUETES EPIDEMIOLOGIQUES

OPTIMISATION À UNE VARIABLE

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Architecture des ordinateurs. Environnement Windows : sauvegarde

La contrefaçon par équivalence en France

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Conduite et Gestion de Projet - Cahier des charges

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Partie 7 : Gestion de la mémoire

NC 35 Norme comptable relative aux états financiers consolidés

Chapitre 2. Classes et objets

Les diagrammes de modélisation

Méthodes de développement

E.I.S : Un outil performant pour I'analyse du risque en Assurance

ORACLE DIAGNOSTIC PACK 11G

Développement rural Document d orientation


Fiche de l'awt Intégration des applications

Séance 4. Gestion de la capacité. Gestion des opérations et de la logistique

Fiche méthodologique Rédiger un cahier des charges

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

Conception des systèmes répartis

NOTIONS DE RESEAUX INFORMATIQUES

1. Vocabulaire : Introduction au tableau élémentaire

GLOBAL SUPPLY CHAIN MANAGEMENT & STRATEGIE LOGISTIQUE

COMMENT MAITRISER LA GESTION DES APPROVISIONNEMENTS ET DES STOCKS DE MEDICAMENTS

LA QUALITE DU LOGICIEL

Annexe : La Programmation Informatique

Avantages de l'archivage des s

Conception de réseaux de télécommunications : optimisation et expérimentations

Examen technique des technologies de mise en cache

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Analyse de la bande passante

Journal officiel de l'union européenne

Orientations sur la solvabilité du groupe

Fonctions de plusieurs variables

Couples de variables aléatoires discrètes

Systèmes de transport public guidés urbains de personnes

6. Les différents types de démonstrations

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

I. Introduction aux fonctions : les fonctions standards

Modélisation multi-agents - Agents réactifs

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Transcription:

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. 1.1.1 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 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. 1.1.2 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 1.2.1 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.

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). 1.2.2 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 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. 1.2 - : 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

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. 1.2.3 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. 1.2.4 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 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

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). 1.2.5 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. 1.2.6 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 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. 1.2.7 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

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

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 CHAPITRE 1. R EPARTITION DE CHARGE 1.2.9 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. 1.2.10 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.

1.3. DISTRIBUTION DYNAMIQUE DE CHARGE 13 1.3 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. 1.3.1 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 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. 1.3.2 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. 1.3 - : 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

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 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. 1.4 - : Strategie hybride et hierarchique Pour toutes ces strategies, chaque nud doit savoir vers qui envoyer son etat.

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 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. 1.5 - : 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

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