• Aucun résultat trouvé

Contexte et problématique

1.4 Formalisation du problème

Le problème du placement d’entités logicielles en fonction de la topologie matérielle peut être vu comme un problème de minimisation de certaines métriques. Nous allons ici formaliser ce problème.

1.4 Formalisation du problème 11

0 1

2

3

4 5

6 7

80863

33

80863

80830

33

80862 80854

80862 80863

80854 24

80830 24 80854

(a) Exemple de graphe des affinités entre entités logicielles basé sur une métrique quelconque.

Entité 0 1 2 3 4 5 6 7

0 0 80863 33 0 80863 0 0 0

1 80863 0 80830 33 0 80862 0 0

2 33 80830 0 80854 0 0 80862 0

3 0 33 80854 0 0 0 0 80863

4 80863 0 0 0 0 80854 24 0

5 0 80862 0 0 80854 0 80830 24

6 0 0 80862 0 24 80830 0 80854

7 0 0 0 80863 0 24 80854 0

(b) Matrice présentant la valeur de l’affinité entre des entités logicielles.

Figure 1.5

Posons :

A le graphe pondéré des entités logicielles tel que A= (VA, ωA) avec :

VA : l’ensemble des sommets représentant les entités logicielles ;

ωA(u, v) : une métrique d’affinité (communication, accès mémoire, etc) détermi-née entre deux entitésu, vVA.

H le graphe pondéré de l’architecture tel queH = (VH, ωH) avec :

VH : l’ensemble des nœuds de la topologie ;

ωH(u, v) : le poids de l’arête incidente des sommetsuetv,u, vVH. Certaines solutions limitent ωH(u, v) à l’ensemble binaire 0,1 de telle façon qu’une arête soit uniquement présente ou absente.

D(a, b) le débit mesuré entre les unités de calcul aetb.

dH(a, b) la distance du plus court chemin entre les unités de calculaet b

Le placement en fonction de la topologie peut alors se formaliser par la fonction σ : VAVH. Cette fonctionσ affecte chaque sommetsde l’ensembleVAdes entités logicielles à un sommet cible t de l’ensemble VH des ressources de l’architecture. Certains travaux considèrent la fonction σ comme injective ou surjective. Parler d’injectivité de la fonction σ revient à dire que, sur chaque unité de calcul, une et une seule entité logicielle peut être affectée. Ceci implique également qu’une unité de calcul peut ne pas être utilisée. Dans ce cas précis, on parlera de permutation pour évoquer la fonction σ puisqu’elle consiste à permuter les entités d’une application sur les unités de calcul. La surjectivité de la fonctionσsous-entend que toutes les unités de calcul doivent héberger au moins une entité logicielle. Ces deux caractéristiques sont cependant complémentaires. En effet, plusieurs entités du graphe A peuvent être affectées à la même ressource du graphe H, de même qu’une ressource du graphe H peut ne pas être utilisée.

1.4.1 Fonctions objectifs

À chaque placement σ est associé une fonction objectif qu’il s’agit le plus souvent de minimiser. Ces fonctions objectifs dépendent là encore de la métrique adoptée. Nous en avons défini quatre, qui se basent sur une approche visant la minimisation des coûts de communication.

La première fonction objectif consiste à minimiser le temps total passé dans les commu-nications, TempsComm. Elle se base sur le rapport entre volume de données (ici,ωA(u, v) est uniquement un volume de communication) et débit entre unités de calcul de la topologie pour estimer ce temps. Plus formellement l’objectif peut s’énoncer :

T empsComm(σ) = X

(u,v)∈VA

ωA(u, v) D(σ(u), σ(v)).

1.4 Formalisation du problème 13 Une autre approche propose de minimiser le temps maximum passé à communiquer, que nous appelons MakespanComm, en se basant sur des mesures de débit entre deux unités de calcul. Ainsi, soitT(u, v) le temps passé à échanger le volume de données ωA(u, v) entre les entitésu etv, la fonction objectif peut s’écrire :

M akespanComm(σ) = max

(u,v)∈VAT(u, v) |T(u, v) = ωA(u, v) D(σ(u), σ(v)).

Une troisième méthode a pour objectif de minimiser la somme des communications pon-dérée par le nombre de liens parcourus dans la topologie, DistComm. Cette méthode part de l’hypothèse que la topologie est un arbre équilibré et symétrique. Soit nle nombre de niveaux dans l’arbre de la topologie et En l’ensemble des couples (u, v) avecu, vVA tel que la distance du plus court chemin entre l’unité de calcul dédiée à u et l’unité de calcul dédiée à v soitdH(σ(u), σ(v)) =n×2. Alors la fonction objectif peut s’écrire :

Un exemple illustrant cette fonction objectif DistComm est présenté en figure 1.6.

L’arbre (figure 1.6(a)) représente une topologie matérielle sur laquelle chaque feuille cor-respond à une unité de calcul σ(u) accueillant l’entité logicielle uVA. Sur cet représen-tation, X est la somme des communications passant par les arêtes adjacentes au niveau 0.Y est la somme des communications passant par les arêtes adjacentes au niveau 1 mais qui ne passent pas par le niveau 0. Enfin, Z est la somme des communications des arêtes adjacentes au niveau 2 et qui ne passent pas par les niveaux supérieurs. Un exemple de modèle de communication est présenté en figure 1.6(b). D’après la fonction objectif, le but est donc de minimiserZ×2 +Y×4 +X×6. Les valeurs 2,4,6 correspondent au nombre de liens à parcourir pour deux entités communicantes à travers ce niveau de l’arborescence.

En figure 1.6(c), trois exemples de placements, c’est-à-dire de solution à la fonction objec-tif, sont présentés. Cette notation donne pour chaque σ(j), où j est une entité logicielle telle que jVA, l’unité de calcul sur laquelle l’entitéj sera affectée. Le tableau associé en figure 1.6(d) montre le résultat de ces placements en fonction du modèle de communication et de la topologie. La dernière solution est de loin la plus profitable puisque la majorité des communications sont routées sur le niveau le plus bas de l’arbre de la topologie.

Cette fonction, à la différence des deux précédentes, ne se base sur aucune valeur quan-titative expérimentale. Seule la distance dans l’arbre de la topologie est nécessaire. De notre point de vue, il s’agit d’un avantage important, tant les mesures expérimentales dépendent de contraintes fortes (congestion, concurrence, etc).

X

Y

Z

(a) Calcul de la fonction objectifDistComm.

Entité 0 1 2 3 4 5 6 7

Figure 1.6 –Exemple de calcul de la fonction objectifDistComm.

Enfin, certains travaux [28, 21] proposent de réduire les communications sur le plus haut niveau de la hiérarchie puis d’appliquer récursivement cet objectif sur les niveaux inférieurs. Cette fonction objectif CoupeMin peut s’énoncer comme suit. Soient V1 et V2 des sous-graphes de VA tels que V1VA,V2VA et V1V2 =∅. Posons Edges(V1, V2) la fonction déterminant le nombre d’arêtes incidentes entre les deux sous-graphes V1 etV2. Ainsi pour chaque niveau de la topologie on cherche :

CoupeM in= minEdges(V1, V2) | |V1|=|V2|et V1V2=VA

1.4.2 Approche algorithmique

Le problème du placement sur une topologie en fonction d’une métrique quelconque peut être réduit à plusieurs problèmes de la théorie des graphes. Deux découlent des fonctions objectif précédemment détaillées. La minimisation des deux premières fonctions (TempsComm,MakespanComm) implique un problème d’affectation quadratique. En effet, pour ces deux méthodes, il s’agit d’affecter les sommets du graphe VA sur les sommets du graphe VH tout en définissant un facteur de coût (débit, distance, etc). Ce problème est NP-Difficile [23]. La fonction CoupeMin correspond à un problème de bi-partitionnement à coupe minimum. Ce problème est NP-Complet [23]. Enfin, nous allons nous attarder sur la dernière fonctionDistComm, afin de prouver la NP-Difficulté de sa minimisation.

1.4 Formalisation du problème 15 1.4.2.1 Preuve que la minimisation de DistComm est NP-Difficile

Afin de prouver que le problème de minimiser la fonction objectif DistComm est NP-Difficile, nous allons nous baser sur une réduction vers le problème de bi-partitionnement à coupe minimum.

Soit G = (V, E) un graphe tel que son nombre de sommets est |V| = n et E est l’ensemble des arêtes pondérées. Pour les besoins de la démonstration, on suppose npair.

Dans le cas où n est impair, il suffit d’ajouter au graphe un sommet isolé. Dans le cas du placement d’entités logicielles, il s’agit d’un graphe d’affinité.

Posons la fonction τ :E→Ndéfinissant pour chaque arête la valeur de son poids.

Soit T un arbre de structure 2:n/2. C’est-à-dire un arbre dont l’arité du niveau 0 est k0 = 2 et l’arité des sommets de niveau 1 est k1 = n/2. Une illustration de cet arbre est exposée en figure 1.7. La construction de cet arbre à partir du graphe G à n sommets se fait en temps polynomial.

k0= 2

k1=n/2

Figure 1.7 –ArbreT ànfeuilles. L’ariték0du niveau 0 est de 2, l’ariték1de niveau 1 est den/2.

Soitσune affectation des sommets deGsur les feuilles deT. On remarque queσdéfinit un bi-partitionnement (V1, V2) de VV1 est affecté aux n/2 feuilles de gauche et V2 est affecté aux n/2 feuilles de droite. Pour chaque arête (a, b)E, deux cas sont possibles :

1. aetb sont dans le même sous-arbre deT. On noteC1 l’ensemble de telles arêtes.

2. a et b sont dans deux sous-arbres différents de T. On note C2 l’ensemble de telles arêtes.

Posons :

c=Pe∈C

2τ(e) la somme du poids des arêtes du cas 2;

M =Pe∈Eτ(e) la somme du poids de toutes les arêtes du grapheG.

Ainsi, nous avonsDistComm(G, σ) = 4c+ 2(M −c) = 2c+ 2M. Cette évaluation se fait en temps polynomial.

Soit σ? tel que DistComm(G, σ?) soit minimal. On appelle c? la somme du poids des arêtes du cas 2 pourσ?. Alors c? est aussi la coupe optimale pour le bi-partitionnement de G.

En effet, supposons qu’il existe ˆσ un bi-partitionnement (V1, V2) de V tel que la coupe cˆsoit inférieure àc?. Alors, en affectant les sommets deV1 au sous-arbre de droite deT et ceux deV2à son sous-arbre de gauche, on obtient que la somme des poids de toutes les arêtes entre V1 etV2 entre dans le cas 2 et sa valeur est ˆc. Ceci implique que DistComm(G,σ) =ˆ 2ˆc+ 2m <2c?+ 2m=DistComm(G, σ?), ce qui est impossible puisqu’en contradiction avec la minimalité de DistComm(G, σ?).

Ainsi, pour tout graphe G, si on possède un algorithme pour minimiser la fonction objectifDistComm, alors on a un algorithme pour minimiser le bi-partitionnement à coupe minimum de G. Ce dernier problème étant NP-Difficile, minimiser DistComm l’est égale-ment.

Dans la majorité des cas, calculer un placement efficace sur une topologie en prenant en compte une fonction de coût se réduira à un problème au moins aussi difficile qu’un problème NP-Difficile.

1.5 Gestion de la localité et du placement dans les supports