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 +
j−1
X
k=1
cbei,k),
stockagei+
p−1
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+Pp−1
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».