• Aucun résultat trouvé

1 2

3 4

(a) arbre A – profond

1 2 3

6

4 5

7

(b) arbre B – large

Fig. 2.1 – Exemples d’arbres d’assemblage.

Puis la matrice frontale est assembl´ee `a partir des valeurs de la matrice initiale et des blocs de contribution des nœuds fils. L’espace occup´e par les blocs de contribution peut alors ˆetre lib´er´e (“´Etape d’assemblage pour le nœud 3” dans la figure 2.2(a)). Ensuite, la matrice frontale est factoris´ee (“Factorisation du nœud 3” dans la figure 2.2(a)). Les facteurs sont alors stock´es dans l’espace de gauche et le nouveau bloc de contribution est empil´e (“Stockage du bloc de contribution du nœud 3” dans la figure2.2(a)). Le processus continue jusqu’`a la factorisation du (des) nœud (s) racine. On observe clairement un comportement m´emoire diff´erent entre un arbre large (Figure 2.2(b)) et un arbre profond (2.2(a)) : le pic de m´emoire active (voir figure 2.2(b)) est plus grand pour des arbres larges.

Il faut noter que dans notre description, tous les blocs de contribution pour un nœud sont assembl´es en mˆeme temps (dans le cas s´equentiel). Une autre approche serait de pr´e-allouer la matrice frontale du nœud p`ere et d’effectuer l’assemblage chaque fois qu’un bloc de contribution est produit. Cette approche qui n’est en g´en´eral pas employ´ee dans les solveurs multifrontaux implique une gestion plus complexe de la m´emoire, surtout en cas de pivotage num´erique. Ce dernier point sera rediscut´e dans le chapitre 3dans lequel une ´etude d´etaill´ee des algorithmes d’optimisation de la m´emoire est pr´esent´ee.

Dans la suite, nous distinguons seulement deux zones m´emoire principales : les facteurs et la m´emoire active, o`u la m´emoire active inclue la pile des blocs de contribution et l’espace de stockage pour la matrice frontale courante.

2.3 Techniques de renum´ erotation

Renum´eroter les variables d’un syst`eme lin´eaire creux, c’est-`a-dire permuter les lignes et les colonnes a pour objectif principal de r´eduire le remplissage (fill-in). Ici, nous

consi-Mémoire

Étape d’assemblage pour le noeud 3

Étape de factorisation du noeud 3 +

Stockage du bloc de contribution du noeud 3

espace mémoire inutilisé

espace mémoire des facteurs mémoire utiliséepile des blocs de contribution (a) Occupation m´emoire pour l’arbre A

Mémoire

espace mémoire des facteurs mémoire utiliséepile des blocs de contribution

(b) Occupation m´emoire pour l’arbre B

Fig. 2.2 – ´Evolution de la m´emoire pour les arbres pr´esent´es dans la figure 2.1.

2.3. TECHNIQUES DE RENUM ´EROTATION 21

d´erons les techniques de renum´erotation sym´etrique qui peuvent aussi ˆetre appliqu´ees `a une matrice non-sym´etriqueAen consid´erant la structure deA+AT (apr`es permutation de colonnes dans le cas de matrices tr`es asym´etriques [25]). Remarquons qu’en cas de pivotage num´erique, la permutation sym´etrique peut ne pas ˆetre respect´ee totalement, induisant un remplissage suppl´ementaire.

Deux sch´emas populaires de renum´erotations sym´etriques sont les heuristiques locales telle que le degr´e minimum (AMD [6], MMD [39]) ou le remplissage minimum (AMF, MMF) [44,48] et les heuristiques globales bas´ees sur le partitionnement du graphe de la matrice, comme les dissections emboˆıt´ees [30]. Une autre classe d’algorithmes a aussi ´et´e con¸cue qui combine les heuristiques locales avec les heuristiques globales.

Dans une ´etude th´eorique [54] sur diff´erentes topologies d’arbres en particulier cor-respondant `a des probl`emes 2D ou 3D r´eordonn´es avec des dissections emboˆıt´ees, les auteurs ont donn´e des bornes th´eoriques de l’occupation m´emoire des diff´erentes familles d’algorithmes de factorisation de matrices creuses. Leurs travaux se sont arrˆet´es `a l’´etude des topologies simples et `a des probl`emes r´eguliers. Dans le cas des probl`emes irr´eguliers, l’´etude th´eorique devient plus complexe du fait de la diversit´e et de l’irr´egularit´e des topo-logies. Dans les sections suivantes nous ´etudierons de mani`ere exp´erimentale la topologie et le comportement m´emoire de la m´ethode multifrontale sur des probl`emes irr´eguliers avec diff´erentes techniques de renum´erotation.

Dans ce qui suit, nous utiliserons simplement les termes AMD, AMF, METIS, SCOTCH et PORD pour identifier les heuristiques pr´esent´ees dans dans le chapitre 1 et dans l’annexeC. Il faut aussi noter que pour AMD, AMF, SCOTCH et PORD, l’arbre d’assemblage et construit en mˆeme temps par les algorithmes de renum´erotation, tandis que pour METIS, seule la permutation est retourn´ee et nous utilisons la factorisation symbolique du logiciel MUMPS pour construire l’arbre d’assemblage.

Nous avons aussi ´etudi´e une heuristique purement globale, les dissections emboˆıt´ees [30], mais il s’est av´er´e qu’elle n’´etait en fait efficace que sur des exemples bien pr´ecis, et seulement pour des probl`emes tr`es r´eguliers, aussi nous avons d´ecid´e de ne pas la consid´erer dans ce qui suit.

Matrice Ordre NZ Type BMWCRA 1 148770 5396386 SYM GRID 109744 1174048 SYM GUPTA3 16783 4670105 SYM MSDOOR 415863 10328399 SYM SHIP 003 121728 4103881 SYM PRE2 659033 5959282 NS RMA10 46835 2374001 NS TWOTONE 120750 1224224 NS XENON2 157464 3866688 NS

Tab. 2.1 – Description des probl`emes de test. “SYM” signifie que la matrice est sym´e-trique, “NS” signifie que la matrice est non-sym´etrique.

La figure 2.4 donne le rapport entre le pic de la m´emoire active et la taille finale des facteurs dans le cas s´equentiel (la taille finale des facteurs pour tous les probl`emes

´etudi´es et pour toutes les techniques de renum´erotation est donn´ee dans figure 2.3.) Les matrices consid´er´ees sont pr´esent´ees dans le tableau 2.1 et sont d´ecrites plus en d´etails dans l’annexe C. Nous pouvons observer que le pic de m´emoire active peut ˆetre significatif en comparaison de la taille des facteurs (le ratio est proche de 1). De plus, pour certains probl`emes comme la matrice GUPTA3, le pic de la m´emoire active est largement sup´erieur `a la taille des facteurs. Cela illustre parfaitement qu’il faut aussi tenir compte de la gestion de la m´emoire active lors de l’´evaluation de la consommation m´emoire des solveurs multifrontaux, s´equentiels ou parall`eles.

Taille des facteurs (en millions de réels)

METIS SCOTCH PORD AMF AMD

Fig. 2.3 – Taille des facteurs (millions de r´eels).

0

Pic de mémoire active / Taille des facteurs

METIS

Pic de mémoire active / Taille des facteurs

(b)

Fig. 2.4 – Rapport entre la taille de la m´emoire active et la taille des facteurs.

2.4 Impact des techniques de renum´ erotation sur la structure des arbres d’assemblage

Dans cette section, nous ´etudions l’impact des techniques de renum´erotation sur la structure de l’arbre d’assemblage correspondant. Nous consid´erons les probl`emes tests d´ecrits par le tableau 2.1 et les techniques de renum´erotation introduites dans la section pr´ec´edente 2.3 (METIS, SCOTCH, PORD, AMF et AMD).