• Aucun résultat trouvé

1.3 Contribution et r´ esum´ e des r´ esultats obtenus

2.1.2 Pour les autres primitives

a destination d’un ou plusieurs autres processeurs voisins. Sans perte de g´en´eralit´e, on peut supposer qu’un processeurPi ne re¸coit ce messagem qu’une seule fois ; sinon cela signifie qu’un processeur Pi re¸coit le message depuis Pj, puis ensuite depuis Pk, on peut alors supprimer le transfert Pk → Pi sans perturber les autres communications et pour une occupation des ressources strictement plus petite. Si on consid`ere le trajet du message m dans le graphe, il forme donc un arbre dirig´e, enracin´e enPsource. Les figures2.1(b),2.1(c)et 2.1(d)repr´esentent les trois arbres de diffusion que le message peut emprunter sur la plate-forme pr´ec´edente. Un arbre de diffusion est un sous-graphe du graphe de plate-forme, puisque les messages ne peuvent ˆ

etre transmis que par des arˆetes du graphe initial et il couvre tous les sommets puisque chaque processeur doit recevoir une copie du message. Ainsi, les sch´emas d’allocation pour le probl`eme de la diffusion sont des arbres couvrants dirig´es, enracin´es en Psource et sous-graphes du graphe de plate-forme.

Le probl`eme souvent ´etudi´e pour les communications collectives et en particulier pour la diffusion, est celui de la minimisation du temps d’ex´ecution d’une op´eration. Pour la diffusion d’un message, on cherche ainsi g´en´eralement `a trouver le meilleur arbre, c’est-`a-dire l’arbre qui conduit `a minimiser le temps entre le moment o`u la source ´emet la premi`ere copie du message et le moment o`u le dernier processeur re¸coit une copie. Ce probl`eme est connu pour ˆ

etre difficile, mˆeme sous le mod`ele simple “du t´el´ephone”, lorsque les coˆuts de communication sont homog`enes [51, probl`eme ND49]. Notre objectif est diff´erent : nous cherchons `a optimiser le d´ebit de la diffusion d’une s´erie de messages. Il est tout `a fait possible que deux messages de la s´erie empruntent des arbres diff´erents et ceci est mˆeme souhaitable : on imagine qu’en utilisant des arbres `a arˆetes disjointes, on pourra diffuser plusieurs messages simultan´ement et donc am´eliorer le d´ebit.

Reprenons notre exemple d´ecrit sur la figure2.1. On peut par exemple vouloir utiliser l’arbre A1 de la figure 2.1(b) pour les messages impairs et l’arbre A2 de la figure 2.1(c) pour les messages pairs. On appelle A = {A1, . . . , A|A|} l’ensemble des sch´emas d’allocation possibles, donc l’ensemble des arbres de diffusion pour notre probl`eme. On note xa le d´ebit de messages diffus´es en r´egime permanent en utilisant l’arbre Aa. En ´etudiant le parcours des messages `a diffuser, on peut ainsi caract´eriser la structure g´en´erale d’un ordonnancement sous la forme d’une collection pond´er´ee de sch´emas d’allocation, {(Aa, xa), Aa ∈ A}avec P

xa =ρ le d´ebit total obtenu.

Notons ´egalement que A est potentiellement de grande taille : il peut exister un nombre exponentiel ennd’arbres de diffusion dans une plate-forme `annœuds. Nous verrons au chapitre suivant comment nous restreindre `a des ordonnancements utilisant un petit nombre d’arbres et qui peuvent ainsi ˆetre d´ecrits de fa¸con plus compacte.

2.1.2 Pour les autres primitives

Avant d’´etudier comment s’organisent les transferts intervenants lors de l’utilisation des sch´emas d’allocation, ´etudions ce que que deviennent ces sch´emas pour les autres primitives de communications collectives.

Diffusion restreinte. Le cas le plus imm´ediat est celui de la diffusion restreinte : le probl`eme est identique, sauf que les destinations des messages sont un sous-ensemble strict Vcibles de l’ensemble de processeurs. En appliquant le mˆeme raisonnement, on peut caract´eriser les sch´emas

d’allocation pour cette op´eration : ce sont des arbres dirig´es enracin´es enPsource, sous-graphes du graphe de plate-forme et couvrant les sommets deVcibles. Ces arbres couvrant un sous-ensemble donn´e de sommets sont appel´es arbres de Steiner et la recherche d’un tel arbre de poids minimal1 est un probl`eme NP-complet [65]. Mˆeme si ce r´esultat ne peut ˆetre directement transcrit pour notre probl`eme, nous verrons au chapitre suivant que l’optimisation du d´ebit de la diffusion restreinte est ´egalement un probl`eme difficile.

Distribution de donn´ees. Dans le cas de la distribution de donn´ees, le processeur source Psource souhaite envoyer des messages distincts `a un ensemble de processeurs ciblesVcibles. Pour k∈Vciblesnous appelons messages de typek les messages que la source envoie `a destination du processeur Pk. Pour ´etudier la forme des sch´emas d’allocation, nous devons nous int´eresser au parcours d’un message ´emis par la source vers chaque destination, soit|Vcibles|messages au total.

Sans perte de g´en´eralit´e, nous pouvons consid´erer qu’aucun de ces messages n’est dupliqu´e ; si ce n’est pas le cas pour une destinationPi, nous s´electionnons parmi les transferts de messages de type i uniquement ceux qui forment une route sans cycle de Psource `a Pi (une telle route existe n´ecessairement puisquePi re¸coit le message). Un sch´ema d’allocation pour la distribution de donn´ees est donc une collections de routes de Psource `a chaque processeur destination de Vcibles, empruntant les arˆetes du graphe de plate-forme. Chaque sch´ema d’allocation comporte exactement une route de Psource `a Pi, pour toute destinationPi :A =R1× R2× · · · × RVcibles en notantRi l’ensemble des routes sans cycles de Psource `aPi, pour i∈Vcibles.

Notons que deux de ces routes peuvent emprunter le mˆeme lien de communication : nous ne nous int´eressons pas ici aux contraintes de ressources mais `a la forme g´en´erale des solutions.

R´eduction. Le cas de la r´eduction est un peu plus complexe. Comme pour les autres com-munications, consid´erons une seule op´eration de r´eduction : chaque processeur Pri ∈ Reds = {Pr0, . . . , PrN} poss`ede initialement une valeur vi. Nous cherchons `a calculer la valeur r´eduite v=v0⊕v1⊕ · · · ⊕vN, o`u⊕est associatif, mais pas n´ecessairement commutatif. Le r´esultat doit au final se trouver sur le processeurPcible. Cette op´eration est plus complexe que les pr´ec´edentes

`

a cause des calculs qui interviennent lors de la r´eduction. Pour 0 6k 6 m 6N, nous notons v[k,m] le r´esultat partiel issu de la r´eduction des valeurs vk, . . . , vm :

v[k,m]=vk⊕ · · · ⊕vm.

Les valeurs initialesvi=v[i,i] vont ˆetre assembl´ees en r´esultats partiels jusqu’`a ce que la valeur finale v = v[0,N] soit atteinte. Comme ⊕ est un op´erateur associatif, v[k,m] peut ˆetre calcul´e comme suit :

v[k,m]=v[k,l]⊕v[l+1,m] pour 06k6l < m6N Nous notonsTk,l,m la tˆache de calcul associ´ee `a l’op´erationv[k,l]⊕v[l+1,m].

Consid´erons une petite plate-forme constitu´ee de trois processeurs P0, P1 et P2 et compl` e-tement connect´ee (voir figure 2.2(a)). Tous les processeurs poss`edent une valeur initialement (Pri =Pi) et le r´esultat doit se trouver au final sur Pcible = P0. Une m´ethode pour r´ealiser la r´eduction de{v0, v1, v2} consiste en les op´erations suivantes :

1. P2 envoie sa valeurv2 `aP1

2. P1 calcule la r´eduction partielle v[1,2]=v1⊕v2 (tˆache T1,1,2)

1Le poids d’un arbre est la somme des poids des arˆetes de l’arbre.

3. P0 envoie sa valeurv0 `aP1,

4. P1 calcule le r´esultat finalv[0,2]=v0⊕v[1,2] (tˆache T0,0,2), 5. P1 envoie le r´esultat finalv=v[0,2] `aP0.

Ces tˆaches s’organisent naturellement en un arbre, comme illustr´e sur la figure2.2(b): le r´esultat d’une ou de deux d’entre elles est utilis´e comme entr´ee de la tˆache suivante.

P1 P2

P0

(a) Topologie

T0,0,2 P1

P1 T1,1,2 v0

P0 →P1 P0

v0

P1

v1 v2

P2 →P1

P2

v2

P1 →P0 v[0,2]

v[0,2] sur P1 v[1,2] sur P1

v[2,2] sur P1

v[0,0] sur P1

(b) Un arbre de r´eduction

Fig. 2.2 – Exemple de r´eduction sur trois processeurs

On peut d´efinir plus formellement un sch´ema d’allocation pour la r´eduction comme – un ensemble de messages localis´es sur des processeurs :

M ⊂ {v[k,m],06k6m6N} ×V – et un ensemble de taches localis´ees (calcul ou transfert) :

T ⊂ {Tk,l,m,06k6l < m6N} ×V

| {z }

calcul sur un processeur

∪ {v[k,m],06k6m6N} ×E

| {z }

transfert sur un lien

tels que des contraintes de pr´ec´edence sont satisfaites :

– si un message est pr´esent sur un nœud, alors il existe une tˆache qui l’a produit : si (v[k,m], Pi)∈ M etk6=mou k=m6=i,

alors il existe (Tk,l,m, Pi)∈ T( pour unltel quek6l < m) ou (v[k,m],(j, i))∈ T( pour unj tel que (j, i)∈E)

– les entr´ees d’une tˆache doivent ˆetre disponibles :

si (Tk,l,m, Pi)∈ T alors (v[k,l], Pi)∈ M et (v[l+1,m], Pi)∈ M si (v[k,m],(i, j))∈ T alors (v[k,l], Pi)∈ M

primitive de communication sch´ema d’allocation correspondant

diffusion de donn´ees arbre couvrant dirig´e, enracin´e enPsource, sous-graphe de la plate-forme

diffusion restreinte arbre dirig´e, couvrant les sommet de Vcibles, enracin´e en Psource, sous-graphe de la plate-forme

distribution de donn´ees ensemble de routes dans le graphe de plate-forme : pour toute cible Pi ∈Vcibles, une route dePsource `a Pi

r´eduction arbre de r´eduction

Tab. 2.1 – Sch´emas d’allocation pour les communications collectives Un couple de tels ensembles v´erifiant ces contraintes est appel´e arbre de r´eduction.

Les sch´emas d’allocation de chacune des primitives de communication collective sont r´esum´es dans le tableau 2.1.

On peut remarquer que ce cadre de travail permet de s’int´eresser `a des primitives de com-munications complexes, mˆelant calculs et communications, du moment que l’on sait d´ecrire les sch´emas d’allocation associ´es. Notons ´egalement que les sch´emas d’allocation pour la r´eduction sont tr`es proches de la notion d’allocation pour un graphe de tˆaches. Elle est mˆeme plus g´en´ e-rale puisqu’ici, plusieurs tˆaches donnent le mˆeme message en sortie, alors qu’une seule d’entre elle est n´ecessaire pour une op´eration de r´eduction : pour construire le message v[k,m], il suffit d’effectuer une des tˆaches Tk,l,m, pour unl ∈[k, m[, et tous les v[k,m] ne sont pas calcul´es lors d’une op´eration de r´eduction.