• Aucun résultat trouvé

Minimisation m´emoire : assemblage « sur place »

Dans cette section, nous d´ecrivons des variantes des algorithmes d´ecrits pr´ec´edem-ment. Nous supposons que l’assemblage du dernier fils, le p`eme fils, avant l’allocation du p`ere est fait «sur place» dans la matrice frontale du p`ere. Ainsi, la zone m´emoire cor-respondant au bloc de contribution du p`eme fils recouvre la zone de stockage du nœud p`ere. En pratique, ce sch´ema est impl´ementation-d´ependant, certains codes permettent ce genre d’assemblage alors que d’autres ne le permettent pas.

3.9.1 M´ emoire active

Nous nous pla¸cons dans le cadre o`u l’assemblage du bloc de contribution correspondant au dernier fils avant l’allocation du p`ere est fait «sur place». Ainsi le besoin en m´emoire

3.9. MINIMISATION M ´EMOIRE : ASSEMBLAGE «SUR PLACE» 51

(a) AMD. Les gains par rapport `a l’algorithme3.2sont

´egaux `a 6.57, 6.78 et 4.12 pour les matrices 8, 9, 10, respectivement.

(b) AMF. Les gains par rapport `a l’algorithme3.2sont

´egaux `a 4.26, 4.30 et 1.25 pour les matrices 8, 9, 10, respectivement.

(c) PORD. Les gains par rapport `a l’algorithme 3.2 sont ´egaux `a 26.08, 8.95 et 8.09 pour les matrices 8, 9, 10, respectivement.

(d) METIS. Les gains par rapport `a l’algorithme 3.2 sont ´egaux `a 9.99, 7.30 et 3.61 pour les matrices 8, 9, 10, respectivement.

Fig. 3.6 – Comparaison des pics de m´emoire totale entre l’algoritme 3.4 (optimal, nor-malis´e `a 1), l’algoritme 3.2, et l’allocation anticip´ee du p`ere.

active d’un nœud i de l’arbre est donn´e par la formule suivante :

Ai = max( max

j=1,p(Aei,j +

j1

X

k=1

cbei,k),

stockagei+

p1

X

j=1

cbei,j, stockagei+ max

j=p+1,ni

(Aei,j))

(3.14)

La principale diff´erence entre cette formule et la formule (3.8) vient du terme stockagei+Pp1

j=1cbei,j. En effet, cette diff´erence est due `a notre hypoth`ese sur l’assemblage du bloc de contribution correspondant au p`eme fils.

La conception d’un algorithme qui minimise la m´emoire active avec cette nouvelle hypoth`ese est ´equivalente `a ce qui a ´et´e fait dans la section 3.5. La principale diff´erence provient de la recherche de l’ordre optimal sur l’ensembleE1. En effet, pour les ´el´ements appartenant `a cet ensemble, nous devons utiliser l’algorithme de Liu [41] pr´esent´e dans la section 3.4.1.1 qui produit un ordre de traitement des fils optimal avec l’hypoth`ese que l’assemblage du bloc de contribution du dernier fils avant l’activation du p`ere est fait

«sur place». Ainsi, nous devons classer les fils appartenant `a E1 dans l’ordre d´ecroissant de max(Aei,j, stockagei)−cbei,j. Il suffit alors de modifier l’algorithme 3.3 pour que les fils appartenant `a E1 soient class´es dans cet ordre.

Dans la figure3.7nous donnons les r´esultats des mesures de la taille de la m´emoire ac-tive en utilisant le nouvel algorithme (algorithme 3.3,«sur place»). Nous avons comparer les r´esultats obtenus avec :

– L’algorithme de Liu dans le cas o`u l’assemblage du bloc de contribution du der-nier fils est fait «sur place». Nous noterons cet algorithme (Liu, «sur place»). Une description de cet algorithme est donn´ee dans la section 3.4.

– L’algorithme d’activation anticip´ee du p`ere, «sur place» pr´esent´e dans la sec-tion 3.4.1.2.

– L’algorithme 3.3 tel que pr´esent´e dans la section 3.5 (l’assemblage du dernier fils avant l’allocation du p`ere n’est pas faite «sur place»).

Nous pouvons constater que des gains significatifs peuvent ˆetre obtenus par rapport

`a la version originale de l’algorithme 3.3. En effet, avec le nouvel algorithme, les gains dus `a l’assemblage «sur place» du dernier fils avant l’activation du p`ere vont modifier le parcours global de l’arbre en autorisant les nœuds p`ere `a ˆetre activ´es plus tˆot. Ceci explique pourquoi les gains d´epassent le coˆut m´emoire du plus gros bloc de contribution de l’arbre d’assemblage.

3.9. MINIMISATION M ´EMOIRE : ASSEMBLAGE «SUR PLACE» 53 Algorithme d’allocation anticipée du père, sur−place Algorithme 3.3 Algorithme d’allocation anticipée du père, sur−place Algorithme 3.3 Algorithme d’allocation anticipée du père, sur−place Algorithme 3.3 Algorithme d’allocation anticipée du père, sur−place Algorithme 3.3 Algorithme 3.3, sur−place

(d) METIS

Fig. 3.7 – Comparaison des pics de m´emoire active entre algorithmes «sur place» et l’algorithme3.3. La m´emoire est normalis´ee `a la valeur du pic m´emoire mesur´e en utilisant la version «sur place»de l’algorithme 3.3.

3.9.2 M´ emoire totale

Tout comme dans le cas de la m´emoire active, si l’assemblage du bloc de contribution du dernier fils avant l’activation du p`ere (p`eme fils) est fait «sur place», la taille de la m´emoire totale n´ecessaire au traitement d’un nœud i est donn´ee par :

Ti = max³

La principale diff´erence entre cette formule et la formule (3.8) (cas standard) vient du calcul du pic de m´emoire totale pour l’ensembleE1. En effet, dans le second terme du max dans la formule 3.15, le bloc de contribution du p`eme fils n’est pas pris en compte lors pour le calcul de la taille de la m´emoire totale n´ecessaire `a l’assemblage du p`ere.

En ce qui concerne le th´eor`eme 3.3, il est possible dans le cadre «sur place» de l’´etendre. En effet, la seule diff´erence, tout comme dans le cas de la minimisation de la m´emoire active (voir la section 3.9.1), vient de l’ordre de traitement des fils apparte-nant `a E1. Ainsi, l’ordre introduit dans le lemme 3.4 n’est plus optimal dans ce nouveau cadre et il est n´ecessaire de g´en´erer un ordre qui minimise l’expression suivante :

P1 = max( max

o`u P1 repr´esente le pic sur l’ensemble E1 en prenant en compte l’allocation du p`ere.

Il est `a noter que l’expression de P1 peut ˆetre r´e´ecrite de la mani`ere suivante :

P1 = max³

3.9. MINIMISATION M ´EMOIRE : ASSEMBLAGE «SUR PLACE» 55

ainsi :

P1 = max

j=1,p

³j

1

X

k=1

(cbei,k +fei,k) + max(Tei,j, stockagei+fei,j

Cette transition derni`ere transition est expliqu´ee par le fait que si le pic m´emoire est atteint lors du traitement de l’un des fils, la valeur du terme max(Tei,j, stockagei+fei,j) sera ´egale `aTei,j. Dans le cas contraire, c’est `a dire que le pic m´emoire est atteint au niveau de l’assemblage du p`ere, le pic sera atteint apr`es le traitement du dernier fils. Ainsi, la valeur de max(Tei,j, stockagei+fei,j) sera ´egale `a stockagei +fei,j. Il est important de signaler que dans ce cas les valeurs interm´ediaires du pic m´emoire pour chacun des fils sont forc´ement inf´erieures `a celle obtenue apr`es le traitement du dernier fils.

En appliquant le th´eor`eme de Liu (voir la section 3.4.1.1), nous obtenons que la valeur minimale pour P1 est obtenue en classant les fils dans l’ordre d´ecroissant de leur max(Tei,j, stockagei+fei,j)−(cbei,j +fei,j) respectif (le th´eor`eme est appliqu´e avec xi = max(Tei,j, stockagei+fei,j) et yi =cbei,j +fei,j).

De ce fait en utilisant l’ordre d´ecrit pr´ec´edemment pour traiter E1 dans l’algo-rithme 3.4, nous obtenons un algorithme qui produit un parcours donnant un pic de m´emoire totale optimal. Dans ce qui, nous appellerons cet algorithme algorithme 3.4,

«sur place».

La figure 3.8 repr´esente une comparaison entre cette approche et :

– L’algorithme d’activation anticip´ee du p`ere, «sur place» dans lequel le p`ere est syst´ematiquement allou´e apr`es le premier fils. De plus les fils sont ordonn´es dans l’ordre d´ecroissant de leur Tei,j −fei,j respectif.

– Le sch´ema multifrontal classique, dans lequel le p`ere est allou´e apr`es que tous ses fils aient ´et´e trait´es. De plus l’assemblage du bloc de contribution du dernier fils est fait «sur place». Ainsi les fils sont class´es dans l’ordre d´ecroissant de leur max(Tei,j, stockagei+fei,j)−(cbei,j+fei,j) respectif. Nous appellerons cet algorithme Sch´ema classique, «sur place» dans la figure 3.8.

– L’algorithme 3.4 dans lequel l’assemblage du dernier fils n’est pas fait «sur place». Cette comparaison permet d’appr´ecier l’impact sur le pic m´emoire du m´ecanisme d’assemblage du dernier bloc de contribution «sur place».

Signalons que les r´esultats correspondant aux matrices 8, 9, et 10 ne sont pas donn´es dans les figures mais dans les l´egendes de la figure 3.8 pour des raisons d’´echelle.

Nous pouvons constater que des gains peuvent ˆetre obtenus par rapport `a la version originale de l’algorithme 3.4. De plus, nous pouvons constater que l’algorithme d’activa-tion anticip´ee du p`ere,«sur place» donne de moins bons r´esultats par rapport `a ceux de l’algorithme 3.4. Ceci peut ˆetre expliqu´e par le fait que l’assemblage sur «sur place» du bloc de contribution du dernier fils permet permet de diminuer le pic m´emoire `a chaque niveau de l’arbre. De ce fait, l’algorithme 3.4 b´en´eficie sur le haut de l’arbre de plus de souplesse pour g´en´erer l’ordre optimal.

0.9

(a) AMD. Les gains par rapport auSch´ema classique,

«sur place» sont ´egaux `a 6.55, 7.64 et 4.09 pour les

(b) AMF. Les gains par rapport auSch´ema classique,

«sur place» sont ´egaux `a 4.49, 4.74 et 1.44 pour les

(c) PORD. Les gains par rapport auSch´ema classique,

«sur place» sont ´egaux `a 28.42, 9.21 et 8.34 pour les

(d) METIS. Les gains par rapport auSch´ema classique,

«sur place» sont ´egaux `a 10.79, 9.31 et 3.57 pour les matrices 8, 9, 10, respectivement.

Fig. 3.8 – Comparaison du pic de m´emoire totale pour plusieurs algorithmes de par-cours d’arbre. La taille m´emoire est normalis´ee par rapport au r´esultat obtenu par l’al-gorithme 3.4, «sur place».