• 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 processeur Pi ne re¸coit ce message m 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 en Psource. 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 Pxa = ρ le d´ebit total obtenu.

Notons ´egalement que A est potentiellement de grande taille : il peut exister un nombre exponentiel en n d’arbres de diffusion dans une plate-forme `a n nœ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 en Psource, sous-graphes du graphe de plate-forme et couvrant les sommets de Vcibles. 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 cibles Vcibles. Pour k∈ Vciblesnous appelons messages de type k 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 destination Pi, 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 puisque Pi 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 destination Pi :A = R1× R2× · · · × RVcibles

en notantRi l’ensemble des routes sans cycles de Psource `a Pi, 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 processeur Pcible. Cette op´eration est plus complexe que les pr´ec´edentes `

a cause des calculs qui interviennent lors de la r´eduction. Pour 0 6 k 6 m 6 N , 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 initiales vi= 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 0 6 k 6 l < m 6 N Nous notons Tk,l,m la tˆache de calcul associ´ee `a l’op´eration v[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 valeur v2 `a P1

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

3. P0 envoie sa valeur v0 `a P1,

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

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], 0 6 k 6 m 6 N} × V – et un ensemble de taches localis´ees (calcul ou transfert) :

T ⊂ {Tk,l,m, 0 6 k 6 l < m 6 N} × V

| {z }

calcul sur un processeur

∪ {v[k,m], 0 6 k 6 m 6 N} × 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 et k 6= m ou k = m 6= i,

alors il existe (Tk,l,m, Pi)∈ T ( pour un l tel que k 6 l < m) ou (v[k,m], (j, i))∈ T ( pour un j 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 en Psource, 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 de Psource `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 comcom-munications, 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 un l∈ [k, m[, et tous les v[k,m] ne sont pas calcul´es lors d’une op´eration de r´eduction.