• Aucun résultat trouvé

Dans cette partie, nous concentrons notre ´etude sur le mod`ele de communication un-port bidirectionnel, dans lequel un processeur peut effectuer simultan´ement une ´emission et une r´ e-ception de messages. Dans ce mod`ele, nous allons voir qu’il est possible de d´ecoupler la recherche de couplages de la recherche de sch´emas d’allocation.

3.2.1 Recherche de couplages sous le mod`ele bidirectionnel

Pour ceci, nous rempla¸cons la contrainte (3.1b) du programme lin´eaire3.1, qui indiquait que toutes les communications n´ecessaires aux sch´emas d’allocation devaient ˆetre “recouvertes” par des couplages, par les contraintes suivantes :

∀(i, j)∈E, X

Aa∈A (i,j)∈Aa

xa·ci,j 6Ti,j (3.5)

∀Pi ∈V, X

(i,j)∈E

Ti,j 61 (3.6)

∀Pi ∈V, X

(j,i)∈E

Tj,i61 (3.7)

Rappelons quexa est le nombre moyen de messages empruntant le sch´ema d’allocationAa, ci,j le temps n´ecessaire `a la transmission d’un message sur l’arˆete (i, j). On note Ti,j est le temps d’occupation d’une arˆete. La premi`ere contrainte (3.5) d´ecrit l’occupation d’une arˆete : le temps n´ecessaire `a transmettre tous les messages qui passent par cette arˆete doit ˆetre inf´erieur au temps d’occupation de l’arˆete. Les contraintes suivantes sont les contrainte un-port pour l’´emission de messages et pour la r´eception : la contrainte (3.6) indique que le temps moyen que passe le processeurPi`a ´emettre des messages sur une de ses arˆetes sortantes et inf´erieur `a 1 unit´e de temps. Comme les ´emissions doivent ˆetre s´erialis´ees, c’est la somme des temps d’occupation

des arˆetes sortantes qui est consid´er´ee. La derni`ere contrainte (3.7) impose la mˆeme restriction, mais pour les communications entrantes en Pi.

Nous allons montrer que si les communications n´ecessaires aux sch´emas d’allocation res-pectent ces contraintes, alors nous pouvons construire un ensemble de couplages dans le graphe biparti GB qui permettent d’effectuer ses communications.

Th´eor`eme 3.9. Soit {(Aa, xa), Aa ∈ A} une collection pond´er´ee de sch´emas d’allocation, v´ e-rifiant les contraintes (3.5), (3.6) et (3.7). On peut alors construire un ensemble d’au plus |E|

couplages d´ecrivant les communications pour le mod`ele un-port bidirectionnel qui v´erifient les contraintes (3.1a), et (3.1b) du programme lin´eaire 3.1 en temps polynomial.

D´emonstration. Nous construisons le graphe bipartiGB = (Vout∪Vin, EB, cB) comme introduit au chapitre pr´ec´edent :

– Chaque nœud Pi de G est transform´e en un nœud de Vout et un nœud de Vin, l’un Piout ∈ Vout repr´esentant l’activit´e d’´emission et l’autrePiin ∈ Vin repr´esentant l’activit´e de r´eception.

– Pour toute arˆete (Pi, Pj) dansG, on construit une arˆete (Piout, Pjin) dansEB.

– Les arˆetes sont pond´er´ees par les temps des communications n´ecessaires aux transferts des messages pour les sch´emas d’allocation :

cB(i, j) = X

Aa∈A (i,j)∈Aa

xa·ci,j

D’apr`es le th´eor`eme de K¨onig pour les graphe bipartis [88, vol.A chapitre 20], il est pos-sible de d´ecomposer le graphe biparti GB en une somme pond´er´ee d’au plus |EB| cou-plages (C1, y1), . . . ,(C|E|, y|E|), o`u |EB| repr´esente le nombre d’arˆetes dans le graphe biparti (|EB|6|E|). On a en particulier :

∀(i, j)∈E, X

Cc∈C (i,j)∈Cc

yc=cB(i, j) (3.8)

De plus, le poids cumul´e des couplages (donc le temps n´ecessaire pour r´ealiser l’ensemble des communications) est inf´erieur ou ´egal au degr´e maximal de chaque nœud du graphe biparti :

|EB|

X

i=1

yi 6∆max

Le degr´e d’un nœud Piout de Vout est P

(i,j)∈EcB(j, i), et le degr´e d’un nœud Piin de Vin est P

(j,i)∈EcB(i, j), donc on peut r´e´ecrire l’in´egalit´e pr´ec´edente en :

|EB|

X

i=1

yi 6 max

Pi∈P rocs

 X

(j,i)∈E

cB(i, j), X

(i,j)∈E

cB(j, i)

 (3.9)

Par construction de cB et grˆace `a (3.8), on sait que l’ensemble pond´er´e de couplages (C1, y1), . . . ,(C|E|, y|E|) v´erifie la contrainte (3.1b) sur les arˆetes, du programme lin´eaire3.1.

De plus, comme l’ensemble de sch´emas d’allocation v´erifie (3.5), (3.6) et (3.7) , on acB(i, j)6

donc avec (3.9), on sait que la contrainte (3.1a) est v´erifi´ee.

On peut donc se contenter chercher les sch´emas d’allocation ind´ependamment des couplages pour le cas bidirectionnel. Ceci pourrait se faire en r´esolvant le programme lin´eaire suivant, o`u les contraintes (3.9) et (3.1a) du programme lin´eaire3.1ont ´et´e remplac´ees par les contraintes (3.5), (3.6) et (3.7) :

Cependant, ce programme lin´eaire est encore de trop grande taille : mˆeme si on a supprim´e les variables correspondant aux couplages, il reste une variable par sch´ema d’allocation, ce qui repr´esente potentiellement un nombre de variables exponentiel en la taille de la plate-forme.

Dans le chapitre suivant, nous pr´esentons d’autres techniques qui permettent de r´eduire la taille du programme lin´eaire, en fonction des primitives de communications ´etudi´ees.

3.2.2 Cas du un-port unidirectionnel

Nous avons vu que dans le cas du mod`ele un-port bidirectionnel, on pouvait d´ecoupler la recherche de couplages et celles de sch´emas d’allocation. Voyons maintenant ce qu’il en est pour le cas du mod`ele un-port unidirectionnel.

En s’inspirant des contraintes que nous avons ´elabor´ees pour le mod`eles bidirectionnel (´ equa-tions (3.5), (3.6) et (3.7)), nous pouvons ´ecrire des contraintes pour le cas unidirectionnel :

∀(i, j)∈E, X

Ici encore, Ti,j repr´esente le temps d’occupation de l’arˆete (i, j). L’´equation (3.11) indique que ce temps est suffisant pour effectuer les communications n´ecessaires et l’´equation (3.12)

indique la congestion sur le processeur Pi : l’unique port de communication ne peut pas ˆetre occup´e pendant plus d’une unit´e de temps, que ce soit pour envoyer des messages ou pour en recevoir.

Dans le cas bidirectionnel, nous avons vu qu’il ´etait possible de reconstruire un ensemble de couplages pour des sch´emas d’allocation v´erifiant ces contraintes. Malheureusement, ce n’est plus possible pour le mod`ele unidirectionnel. Consid´erons le plate-forme d´ecrite par le graphe suivant.

Supposons que l’on veuille envoyer un message le long des trois arˆetes, par exemple avec un sch´ema d’allocationA1={(P0, P1),(P1, P2),(P2, P0)}de poidsx1= 1. Les contraintes ci-dessus sont bien v´erifi´ees : chaque arˆete est utilis´ee pendant un temps 1/2, donc chaque processeur re¸coit un message pendant un temps 1/2 et ´emet un message pendant un temps 1/2.

Si on cherche maintenant `a organiser les communications sous forme de couplages pour le mod`ele un-port unidirectionnel, on est oblig´e de former trois couplages de chacun une seule arˆete, ce qui conduit au d´ecoupage suivant :

Ainsi on ne peut organiser les communications en couplage en moins de 3/2 unit´es de temps, au lieu de une unit´e de temps comme n´ecessaire.

Au vu de l’exemple pr´ec´edent, nous ne pouvons pas utiliser la m´ethode pr´ec´edente pour d´ecoupler la recherche de couplages et de sch´emas d’allocation pour le mod`ele un-port unidi-rectionnel. Le th´eor`eme de K¨onig permet, dans le mod`ele bidirectionnel, d’avoir ´egalit´e entre le temps n´ecessaire `a organiser les communications en couplages, et le degr´e maximal d’un nœud, qu’on peut facilement contraindre dans le programme

Nous n’avons pas d’´equivalent dans le cas unidirectionnel. Tout au plus pourrions-nous citer l’´equivalent du th´eor`eme de Vizing pour les multigraphes, qui montre que χ(G) 6 ∆(G) + µ(G), o`u χ(G) est le nombre chromatique de G, ∆(G) son degr´e et µ(G) sa multiplicit´e. Le temps n´ecessaire pour effectuer toutes les communications, c’est-`a-dire le nombre chromatique de GA, est alors li´e au degr´e du graphe et aux pond´erations des arˆetes. Mais la borne n’est pas n´ecessairement optimale, donc ce r´esultat n’est pas utilisable pour obtenir une organisation optimale des communications.