• Aucun résultat trouvé

chacun des fils par rapport au travail total. Ainsi, l’algorithme affecte le sous-arbre le plus coˆuteux au processeur le moins charg´e. Ce processus est ensuite r´ep´et´e r´ecursivement jusqu’`a atteindre les nœuds de la strateS0. Ainsi, `a chaque nœud de l’arbre est affect´e un ensemble deprocesseurs pr´ef´erentielsqui guide la s´election des processeurs candidats dans un second parcours en remont´ee (´etape 3 de l’algorithme 4.2). Le processus de remont´ee a pour but de s´electionner les processeurs candidats et de choisir le processeur maˆıtre de chacun des nœuds detype 2. Le principal objectif de cette ´etape est d’´equilibrer la charge de travail entre les processeurs.

Algorithme 4.2 Affectation des tˆaches pendant l’analyse.

(1) ´Etant donn´e l’arbre d’assemblage d’une matrice

(2) Etape de descente´ : affectation proportionnelle relˆach´ee pour la s´election des pro-cesseurs pr´ef´erentiels

(3) Etape de remont´ee (uniquement sur le haut de l’arbre)´ : Pour chacun des nœuds – D´ecider du type du nœud

– Choisir le processeur maˆıtre correspondant – S´electionner les processeurs candidats associ´es

En ce qui concerne le choix du type des nœuds du haut de l’arbre, ils sont de type 2 si leur matrice frontale est suffisamment grande, i.e. taille de la matrice est sup´erieure

`a un seuil. En pratique, sur des matrices de taille suffisamment grande, la plupart des nœuds du haut de l’arbre sont detype 2 et, sur un grand nombre de processeurs, le travail associ´e aux esclaves constitue l’essentiel du travail global (typiquement 80%).

Nous allons maintenant nous int´eresser aux aspects dynamiques de l’ordonnancement dans la m´ethode multifrontale parall`ele.

4.3 Ordonnancement dynamique

La partie dynamique de l’ordonnancement dans la m´ethode multifrontale parall`ele est une combinaison de deux ordonnanceurs. Le premier concerne la s´election des processeurs esclaves pour les nœuds de type 2. Le second, quant `a lui, concerne la gestion des tˆaches statiquement assign´ees aux diff´erents processeurs (nœuds de type 1, tˆaches maˆıtres pour les nœuds detype 2 et nœud de type 3).

4.3.1 Strat´ egie de s´ election d’esclaves

Quand un processeur active une tˆache maˆıtre detype 2, il doit s´electionner des proces-seurs esclaves. Le processeur essaye alors de choisir uniquement les esclaves moins charg´es que lui avec des contraintes de granularit´e. Le coˆut de la tˆache correspondant `a chacun des processeurs s´electionn´es est le mˆeme, et la s´election est faite de telle sorte que le coˆut des tˆaches esclaves ne d´epasse pas, si possible, le coˆut de la tˆache maˆıtre correspondante.

Ainsi, pour le cas non-sym´etrique le d´ecoupage de la matrice frontale d’un nœud detype 2

est r´egulier par blocs de lignes entre les esclave (voir la figure 4.3). En ce qui concerne le cas sym´etrique, le d´ecoupage est plus irr´egulier `a cause de la structure ”triangulaire”

de la matrice (voir la figure 4.3). Enfin, une fois les esclaves s´electionn´es, le processeur maˆıtre les informe qu’ils ont ´et´e d´esign´es en leur envoyant un message.

Maître (P0)

Esclave 1 (P2)

Esclave 2(P1)

Maître (P0)

Esclave 1 (P2)

Esclave 2(P1) Esclave 3 (P3)

Symétrique Non-symétrique

Fig. 4.3 – Structure d’un nœud de type 2.

Il est important de signaler que pour la s´election d’esclave, chaque processeur ne d´esigne comme esclave que des processeurs appartenant `a l’ensemble des processeurs candidats du nœud courant.

Pour le choix d’esclaves, le processeur maˆıtre doit avoir des informations relatives `a la charge de ses processeurs candidats. Ceci est fait `a l’aide d’un m´ecanisme bas´e sur des

´echanges de messages dans lequel chaque processeur envoie sa charge `a tous les autres d`es que la variation de sa charge d´epasse un seuil arbitraire. Une description plus d´etaill´ee de ce m´ecanisme sera donn´ee dans le chapitre 5.

4.3.2 Gestion des tˆ aches locales

Chaque processeur a localement un ensemble de tˆaches, qui lui ont ´et´e assign´ees sta-tiquement, et qui sont activables. Pour un processeur particulier, cet ensemble contient initialement les feuilles des sous-arbres qui lui ont ´et´e affect´es. Ces derni`eres sont re-group´ees en ensembles contigus correspondant `a chacun des sous-arbres, i.e. les feuilles appartenant au mˆeme sous-arbre sont stock´ees les unes `a cot´e des autres (voir la fi-gure 4.4). Une fois qu’une tˆache (nœud) est activ´ee, elle est enlev´ee de l’ensemble. De plus, d`es qu’une tˆache devient activable (i.e. tous les fils de la tˆache ont fini d’ˆetre trait´es), elle y est ins´er´ee. Enfin la strat´egie de s´election de la prochaine tˆache `a traiter consiste `a extraire de l’ensemble la tˆache la plus jeune (gestion LIFO). Ceci est fait pour favoriser la remont´ee dans l’arbre, de mani`ere `a ne pas stocker trop de blocs de contribution si-multan´ement. Une repr´esentation d’un ensemble de tˆaches activables est donn´ee dans la figure 4.4.

4.3. ORDONNANCEMENT DYNAMIQUE 67

. . . Sous-arbre 1

. . . Sous-arbre 2

T2 T1 F

F F

F

F : Noeud feuille (Type 1) T1 : Noeud de type 1 appartenant à un sous-arbre séquentiel

T2 : Noeud de type 2 (tâche maître) Fig. 4.4 – Exemple d’un ensemble de tˆaches activables.

Il est important de signaler que dans l’ensemble des tˆaches activables, les nœuds appartenant `a un mˆeme sous-arbre sont contigus. Autrement dit, un sous-arbre ne peut pas ˆetre trait´e si le traitement du sous-arbre pr´ec´edent n’est pas termin´e.

Algorithme 4.3 S´equenceur des tˆaches durant la factorisation.

Tant que il reste un nœud `a traiter:

Si ensemble des tˆaches activable est videAlors attente bloquante d’un message

traiter le message re¸cu Sinon

Siun message est disponible Alors recevoir le message

traiter le message Sinon

S´electionner une tˆache de l’ensemble des tˆaches activables traiter la tˆache extraite

L’algorithme4.3d´ecrit le d´eroulement de la factorisation. Il est `a noter qu’une priorit´e est donn´ee `a la r´eception de messages. Les principales motivations pour ce choix sont premi`erement que le nouveau message peut g´en´erer de l’activit´e suppl´ementaire ainsi que du parall´elisme et deuxi`emement pour ´eviter de bloquer le processeur ´emetteur dans le cas o`u son tampon d’envoi est plein.

Dans le chapitre suivant, nous allons nous int´eresser `a l’´etude des m´ecanismes qui fournissent les informations n´ecessaires aux ordonnanceurs statiques. Ainsi, des protocoles bas´es sur des ´echanges de messages seront propos´es et ´etudi´es exp´erimentalement. Ce travail sera utilis´e par la suite pour toutes les ´etudes pr´esent´es dans les chapitres suivants.

Chapitre 5

M´ ecanisme d’´ echange d’information et de maintien de la coh´ erence des vues

L’ordonnancement dans la m´ethode multifrontale parall`ele est un point cl´e dans l’op-tique d’avoir de bonnes performances et un bon comportement m´emoire. Dans le cha-pitre 4, nous avons d´ecrit les principes de l’ordonnancement dans la m´ethode multifron-tale parall`ele. La partie dynamique de l’ordonnancement et particuli`erement la strat´egie de s´election d’esclaves n´ecessite au niveau de chaque processus une vue de l’´etat (charge de travail, taille de la m´emoire occup´ee,. . . ) des autres processus. Ainsi, ces strat´egies sont tr`es sensibles `a la qualit´e de l’image du syst`eme. Partant du m´ecanisme existant dans la m´ethode multifrontale parall`ele telle qu’impl´ement´ee dansMUMPS, nous proposons dans ce chapitre des m´ecanismes visant l’am´elioration de la qualit´e et de la coh´erence des informations au niveau de chaque processus. Ce probl`eme est proche d’un probl`eme d’algorithmique distribu´ee appel´e probl`eme de la photographie distribu´ee ousnaphot pro-blem[16]. Plusieurs solutions ont ´et´e propos´ees pour ce probl`eme. Cependant, elles ne sont pas applicables au cas d’applications haute-performance car elles n´ecessitent un gel de l’activit´e des processeurs du syst`eme pendant la photographie.

Le probl`eme que nous ´etudions dans ce chapitre n’est pas sp´ecifique `a la m´ethode mul-tifrontale parall`ele et peut ˆetre g´en´eralis´e `a toutes les applications distribu´ees ayant des ordonnanceurs dynamiques locaux `a chaque processus (notons que nous parlons d´esormais de processus et non de processeur) prenant part `a l’ex´ecution. Ainsi, nous commencerons dans la section5.1par donner une d´efinition g´en´erale du probl`eme que nous allons ´etudier.

Puis dans la section 5.2, nous d´ecrirons l’algorithme initial de la m´ethode multifrontale parall`ele. Ensuite, nous pr´esenterons dans les sections 5.3 et 5.4 des m´ecanismes dont le but est d’am´eliorer la coh´erence des vues du syst`eme au niveau de chaque processus. Une

´etude exp´erimentale de l’impact de ces m´ecanismes sur le comportement de la m´ethode mutlifrontale parall`ele est alors pr´esent´ee dans la section 5.5. Enfin, nous proposerons dans la section 5.6 un m´ecanisme visant la r´eduction du nombre de messages ´echang´es pour le maintien d’une vue au niveau de chacun des processus.

69

5.1 Contexte

Consid´erons un syst`eme distribu´e asynchrone compos´e deN processus qui ne peuvent communiquer que par passage de messages. Une application compos´ee de plusieurs tˆaches (d´ependantes ou ind´ependantes) est ex´ecut´ee sur ce syst`eme. De plus, il peut arriver qu’un processus p, appel´e maˆıtre, ait `a envoyer des tˆaches `a d’autres processus. Le choix des processus, appel´es esclaves dans ce cas, qui vont recevoir les tˆaches provenant de p est bas´e sur une estimation que pa de la charge (charge de travail, m´emoire,. . . ) des autres processus. De ce fait, l’estimation des charges doit ˆetre la plus pr´ecise et la plus coh´erente possible. Il est `a noter que l’information relative `a la charge d’un processus p varie dans les deux cas suivants :

i) Quand le processus ptraite une tˆache (diminution de la charge de travail, r´eduction de la taille de la m´emoire apr`es la terminaison du traitement de la tˆache).

ii) Quand une tˆache «apparaˆıt» sur le processus p. Cette tˆache peut provenir de l’ap-plication ou avoir ´et´e envoy´ee par un autre processus.

Ce probl`eme est proche du probl`eme dela prise de photographie distribu´ee du syst`eme

«snapshot problem»[16,17]. Dans ce genre d’approches, le processus ayant besoin d’une photographie du syst`eme initie l’algorithme. De ce fait, nous ne pouvons pas utiliser ce genre d’approches dans un environnement o`u la performance est un crit`ere dominant : nous voulons passer le moins de temps possible dans la phase de r´ecup´eration des informa-tions relatives `a l’´etat des autres processus. De plus, avec un grand nombre de processus, les algorithmes classiques deprise de photographie distribu´ee du syst`eme, vu qu’ils portent sur l’´etat des processus, doivent assurer que la charge des processus ne varie pas pendant la phase de photographie ce qui serait ´equivalent `a arrˆeter l’activit´e des processus d`es la r´eception d’un message relatif `a une photographie.

Dans notre cas, nous avons la propri´et´e que les informations que nous voulons estimer (charge de travail, m´emoire,. . . ) sont tr`es li´ees `a l’ordonnancement dynamique. Les al-gorithmes pr´esent´es dans ce chapitre ont pour principal objectif de maintenir, au niveau de chaque processus, une approximation de la vue de l’´etat des autres processus qui sera utilis´ee pour les choix dynamiques. Nos algorithmes sont bas´es sur l’´echange de messages entre les processus. Ainsi, `a chaque variation de l’´etat d’un processus, ce dernier diffuse l’information relative `a cette variation vers les autres processus. Une condition n´ecessaire au maintien de la coh´erence des vues dans le syst`eme est qu’il est n´ecessaire de recevoir tous les messages en attente relatifs `a la charge avant de prendre une d´ecision dynamique au niveau de chaque processus.