• Aucun résultat trouvé

Laboratoire de l’Informatique du Parallélisme

N/A
N/A
Protected

Academic year: 2022

Partager "Laboratoire de l’Informatique du Parallélisme"

Copied!
42
0
0

Texte intégral

(1)

École Normale Supérieure de Lyon

Unité Mixte de Recherche CNRS-INRIA-ENS LYON-UCBL no5668

Résolution out-of-core de systèmes linéaires creux de grande taille

Emmanuel Agullo

June 2005

Research Report NoDEA2005-08

École Normale Supérieure de Lyon

46 Allée d’Italie, 69364 Lyon Cedex 07, France Téléphone : +33(0)4.72.72.80.37 Télécopieur : +33(0)4.72.72.80.80 Adresse électronique :lip@ens-lyon.fr

(2)

Résolution out-of-core de systèmes linéaires creux de grande taille

Emmanuel Agullo June 2005

Abstract

We describe an out-of-core extension of a parallel sparse multifrontal solver, MUMPS. In a first implementation factors are written to disk as soon as com- puted whereas the stack memory remains in-core. We then design an asyn- chronous mechanism to increase the overall performance. Finally we study in the sequential case and from a theoritical point of view how to minimize theI/Ovolume when active memory is also handled in anout-of-corefashion.

Results on large real-life problems illustrate our discussion.

Keywords: out-of-core, parallel, multifrontal method.

Résumé

Nous présentons une extension out-of-core d’un logiciel parallèle de résolu- tion de systèmes linéaires creux de grande taille par la méthode multifrontale.

Dans un premier temps, nous écrivons les facteurs sur disque aussitôt qu’ils sont calculés tandis que nous gardons la mémoire activein-core. Nous mettons ensuite en place un mécanisme asynchrone afin d’améliorer les performances.

Enfin, nous étudions de manière théorique, dans le cas séquentiel, comment minimiser le volume d’E/Slorsque la mémoire active peut également être trai- téeout-of-core. Des expérimentations sur de gros problèmes issus du monde académique et industriel illustrent nos travaux.

Mots-clés: out-of-core, parallèle, méthode multifrontale.

(3)
(4)

Remerciements

Je remercie Jean-Yves pour tout le temps qu’il m’a accordé, pour la clarté de ses explications, pour sa gentillesse, pour tout le plaisir que j’ai eu à travailler avec lui, et pour toutes les démarches que nous avons entreprises afin que je puisse effectuer un doctorat. Merci également à Abdou pour cette collaboration intense, pour ta disponibilité et pour m’avoir fait découvrir les coins sympas de Toulouse. Merci à Patrick Amestoy et à toute son équipe de m’avoir aussi bien reçu à Toulouse.

Merci à tous les membres de l’équipe GRAAL pour leur bonne humeur et pour tous leurs bons conseils. Merci à Fred de m’avoir accepté dans l’équipe. Merci à Hélène : ça a été vraiment génial de partager le bureau avec toi. Merci à Antoine pour ses astuces sur Linux, à Eddy pour nos discussions sur l’out-of-core, à Yves Robert pour ses conseils de “chef”, à Cédric et Yves Caniou pour nos discussions tardives. Merci également à Alan, Frédo, Holly, Jean-François, Karima, Loris, Pushpinder et Raphaël. Merci à Paul Feautrier pour nos discussions sur le parallélisme et la combinatoire.

Merci à tous les élèves du DEA : vive la machine à café !

Je remercie Richard Mitanchey qui m’a soutenu dans ma démarche depuis ma première an- née à l’ENTPE et qui m’a permis d’effectuer mon DEA dans de bonnes conditions. Je remercie également les élèves de la VA Informatique de l’ENTPE, et tout particulièrement Gilles, qui m’ont permis de suivre au mieux ce double cursus.

Enfin, merci à ma famille pour leur soutien au combien important pendant cette année intense en travail et en émotions !

2

(5)
(6)

Contents

1 Introduction au domaine 8

1.1 Méthodes directes . . . 8

1.1.1 Introduction . . . 8

1.1.2 Matrices creuses et remplissage. . . 9

1.1.3 Arbre d’élimination . . . 9

1.1.4 Techniques de renumérotation . . . 10

1.2 Méthode multifrontale . . . 11

1.2.1 Introduction . . . 11

1.2.2 Considérations mémoires . . . 12

1.3 Position du problème . . . 13

2 État de l’art 15 2.1 Introduction . . . 15

2.2 Méthodes directesout-of-core. . . 15

2.2.1 Pagination adaptative . . . 15

2.2.2 Techniques explicites. . . 16

2.3 Mécanismes d’entrées/sorties (E/S). . . 18

2.3.1 Librairies C et Fortran . . . 18

2.3.2 AIO. . . 18

2.3.3 MPIIO . . . 18

2.3.4 FG . . . 18

2.3.5 Bilan . . . 18

3 Traitementout-of-corede la zone facteur 19 3.1 Étude préalable . . . 19

3.1.1 Introduction . . . 19

3.1.2 Environnement expérimental . . . 19

3.1.3 Résultats . . . 20

3.2 Mise en place d’un mécanisme de traitementout-of-coredes facteurs. . . 22

3.2.1 Factorisation synchrone . . . 22

3.2.2 Factorisation asynchrone . . . 22

3.2.3 Résolution synchrone . . . 22

3.3 Résultats . . . 22

3.4 Performances de l’étape de factorisation . . . 22

3.5 Performances de l’étape de résolution . . . 23

4 Modélisation du traitementout-of-corede la mémoire active dans le cas séquentiel 26 4.1 Motivation . . . 26

4.2 Position du problème . . . 26

4.3 Étude duquoi écrireà parcours fixé . . . 27

4.4 Mesure du volume d’E/Soptimal à parcours fixé . . . 27

4.4.1 Premier cas :( 8 i2f1;::: ;n g)( pii<M0) . . . 28 4

(7)

4.4.2 Deuxième cas : cas général . . . 29 4.5 Détermination du parcours optimal de l’arbre . . . 29 4.6 Simulation . . . 30

5 Cas des matrices frontales de grande taille 31

5.1 Cadre . . . 31 5.2 De la nécessité de s’intéresser aux fronts de grande taille . . . 31 5.3 Proposition. . . 32

6 Conclusion 33

6.1 Contribution . . . 33 6.2 Perspectives . . . 33 6.3 Intérêts académiques et industriels . . . 34 A Preuve du théorème 2 : étude duquoi écrireà parcours fixé 37

(8)

Introduction générale

Les systèmes linéaires creux de grande taille sont au cœur de nombreux codes de simulation numérique. En raison de leur robustesse et de leur performance, les approches directes sont des méthodes de choix pour la résolution de tels systèmes. Il apparaît que ces approches, bien que très performantes, utilisent souvent une quantité de mémoire significative, qui peut souvent dépasser la mémoire disponible sur la plate-forme cible considérée (cluster, grappe de SMP, cal- culateur haute-performance). Afin de répondre aux besoins croissants de la simulation, il est donc nécessaire de mettre en place des approchesout-of-core, où le disque est utilisé pour secon- der la mémoire centrale. En opposition, une méthode est ditein-coresi l’ensemble des données peuvent tenir en mémoire.

L’algorithme qui nous intéresse s’appuie sur un ordonnancement dynamique des tâches de calcul avec un schéma distribué, dans le cadre de la méthodemultifrontale- une forme particulière de méthode directe. La performance est en particulier liée à la capacité d’ordonnancer et de placer efficacement les tâches générées au cours du calcul. La structure des accès mémoire de l’application dépend fortement de l’ordonnancement des tâches de calcul. Notre objectif général sera d’obtenir les meilleures performances possibles avec une mémoire physique donnée, plus petite que la quantité de mémoire nécessaire à la résolution du problème considéré.

La présentation des méthodes directes - et plus particulièrement de la méthode multifrontale - ainsi que de leurs accès mémoire mettra en évidence, dans le chapitre1, le fait qu’entre autres la mémoire utilisée par les solveurs peut se décomposer en deux parties :

une zone mémoire où sont stockés les facteurs de la matrice ;

des blocs de mémoire temporaire, qui sont réutilisés au cours de la factorisation.

L’état de l’art sur les méthodes directesout-of-coreexistantes soulignera notamment les problè- mes spécifiques auxquels la méthode multifrontale se confronte. De plus, les accès aux disques étant cruciaux dans une telle approche, une étude bibliographique sur les différents mécanismes d’entrées/sorties (E/S) envisageables permettra de choisir les outils les mieux adaptés. C’est l’objet du chapitre2.

Dans l’approche multifrontale, qui est une forme particulière de factorisationright-looking, les facteurs une fois calculés ne sont pas réutilisés lors de la factorisation et peuvent donc être stockés sur disque au plus tôt. Dans le chapitre3, après une étude expérimentale préalable qui montrera l’opportunité d’une factorisation pour laquelle seuls les facteurs seraient donc écrits, nous pro- poserons un algorithme de factorisation dont le but sera de recouvrir les écritures disque et les calculs autant que possible, en choisissant de manière adéquate quand effectuer les opérations d’écriture. L’étude préalable montrera que l’hypothèse du traitementin-core(i.e.sans recourir aux disques) de la zone de travail temporaire est réaliste dans la plupart des cas, tout en dévoilant les limites de ce cadre. Nous étudierons également la phase de résolution et montrerons qu’il s’agit de la phase la plus critique du point de vue de la dégradation des performances par lesE/S, dans la mesure où les calculs sont de faible coût et risquent alors de ne pouvoir recouvrir lesE/S.

6

(9)

Lorsque l’écriture des facteurs sur disque ne suffit pas pour résoudre le système donné, il faut envisager de surcroît une gestion out-of-core de la zone de mémoire temporaire. Ainsi nous traiterons dans le chapitre4du problème théorique consistant à minimiser le volume d’E/Socca- sionné en fonction d’une quantité de mémoire donnée.

Enfin, quand bien même facteurs et zone de mémoire temporaire seraient écrits sur disque aussitôt calculés, la granularité intrinsèque à la méthode multifrontale peut empêcher la résolu- tion de certains systèmes particulièrement importants. Le chapitre5montrera que dans le cas séquentiel, ou bien il faut diminuer cette granularité, au risque de perdre les propriétés d’accès mémoire qui font l’efficacité de la méthode multifrontale ; ou bien, comme le suggère l’état de l’art, il faut envisager d’autres approches directes, comme la méthodeleft-looking, dont la gran- ularité peut être réduite à moindre coût. Nous verrons dans quelle mesure il est en revanche possible de repousser cette limite dans un schéma distribué.

(10)

Chapter 1

Introduction au domaine

1.1 Méthodes directes

1.1.1 Introduction

Nous nous intéressons à la résolution du système linéaire, d’inconnuex, suivant :

Ax=b (1.1)

où :

Aest une matrice, pour l’instant simplement supposée inversible, d’ordreN ;

xetbsont des vecteurs colonnes.

Les méthodes directes sont basées sur l’élimination de Gauss-Jordan. Plutôt que de résoudre directement le système, on factorise la matriceAsous la forme :

A=LU (1.2)

L est une matrice triangulaire inférieuredont les valeurs diagonales sont égales à 1 etU est triangulaire supérieure.

L’intérêt est que ce procédé est indépendant du second membreb. Ainsi, si l’on veut résoudre le système pour plusieursbdonnés, il suffit de réitérer la phase de résolution triangulaire - peu coûteuse par rapport à la factorisation - composée des deux temps suivants :Ly=bpuisUx=y. Nous admettons qu’une telle décomposition existe toujours, à une permutation de colonne près. Les matricesLetU vérifient : Aij = ( LU)ij, pour( i;j)dansf1;::: ;Ng2. En considérant les propriétés detriangularitédeLetU, on a :aij =Pmin( i;j)k=1

l

ik u

kj. En remarquant de plus que

l

ii

1, on obtient finalement :

a

ij

= P

i 1

k=1 l

ik u

kj +u

ij siij

a

ij

= P

j 1

k=1 l

ik u

kj +l

ij u

jj sii>j (1.3)

On en déduit l’expression suivante des facteurs :

I

K (

u

Kj

=a

Kj P

K 1

k=1 l

Kk u

kj pourjdansfK;::: ;Ng

l

iK

= 1

uKK ( a

iK P

K 1

k=1 l

ik u

kK

) pouridansfK+1;::: ;Ng (1.4) qui permet leur calcul explicite en itérantIKpourKcroissant de1àN.

8

(11)

Données: MatriceAd’ordreN;

Résultat: FacteursLetU:aijreprésente finalement ou bienlij sii>j, ou bienuijsiij; début

pour chaqueKde1àNfaire pour chaquejdeKàNfaire

pour chaquekde1àK 1faire

a

Kj a

Kj a

Kk a

kj/*Mise-à-jour deL*/;

sij 6=Kalors

a

jK a

jK a

jk a

kK /*Mise-à-jour deU*/;

fin fin

a

jK a

jK

=a

KK/*Factorisation deL*/;

fin fin

fin Algorithme 1: FactorisationLUd’une matriceA.

1.1.2 Matrices creuses et remplissage

Définition 1. Unematrice creuseAest une matrice dont le nombre de coefficients non nulsNZvérifie :NZN2.

Généralement, les facteursLetU sont plus denses que la matrice originaleA, dans le sens où ils possèdent plus de coefficients non nuls. C’est le phénomène de remplissage. En effet, l’expression 1.4montre que peut être engendré un facteur lij (ou uij) non nul à partir d’une valeur initialeaijnulle, lorsqu’il existekdansf1;::: ;minfi;jggtel queliketukjsont non nuls. En pratique, pour diminuer la consommation mémoire, seules les valeurs non nulles sont stockées.

La figure1.1illustre le phénomène de remplissage. La matriceF contient les valeurslij etuij après factorisation.

a b

c d

e f

g h

i j

remplissage

A = F =

a b

c d

e f

g h

i j

matrice initiale

Figure 1.1: Phénomène de remplissage.

1.1.3 Arbre d’élimination

Aest a priori non symétrique mais on considère que sa structure est symétrique en ajoutant si besoin des zéros explicites (qu’on traite comme des entrées non nulles) à sa structure. La structure obtenue est alors celle deA+tA.

La définition2établit unerelation de dépendance, notée!, sur l’ensemble colonnesfCk jk 2

f1;::: ;NggdeA.

(12)

10 E. Agullo

Définition 2. Soit( i;j)dansf1;::: ;Ng2tel quej<i.

C

j

! C

i ssile calcul de l’élément diagonal ou de l’un des éléments sous-diagonaux deCi nécessite le calcul préalable de l’un des facteurs deCj.

Lemme 1. Cj!Cissilij 6=0. De même :Cj!Cissiuji6=0(par symétrie de la structure).

Proof. D’après l’expression1.4,Cj ! Ci ssiil existekdansfi ;::: ;Ngtel quelkjuji 6= 0. Donc

C

j

!C

iimplique en particulier queuji 6=0. Réciproquement, siuji 6=0, alors, par symétrie de la structure,lij6=0et donclijuji6=0:k=iconvient.

Définition 3. On peut alors construire un graphe orienté, appelégraphe de dépendances rempli, dont les nœuds sont les colonnes deAet dont les arcs sont l’ensemble des couples( Cj;Ci)tels queCj!Ci. Lemme 2. Soienti<j<kvérifiantCi !CjetCi!Ck. On a alorsCj!Ck.

Proof. Par hypothèse, on aljiuik6=0. Selon1.4, on obtientujk6=0,i.e.Cj!Ck.

Définition 4 (Rappel). Dans un graphe orienté, uncircuitest un chemin fermé (ex:C1!C2!C3!

C

1

); uncycleest une chaîne (abstraction de l’orientation des arcs) fermée (ex:C1!C2 C3!C1).

Théorème 1 (Théorème-définition). La réduction transitive [1] du graphe de dépendance rempli est un arbre appeléarbre d’élimination[26,21].

Proof. Il s’agit de montrer qu’elle est unique et que c’est un arbre. Le graphe orienté Gest par construction sans circuit puisqueCj !Ciimpliquej<i. Il possède donc une unique réduction transitive,G , qui représente la plus petite structure d’ordonnancement des calculs.

Il reste à prouver queG est sans cycle (puisqu’alors chacune de ses composantes connexes, représentant un sous-problème indépendant, est un arbre par définition). Par l’absurde, soitC un cycle deG . Soitile plus petit indice des colonnes appartenant à C. Il existe alorsj etk (i < j < k) tels que( Ci;Cj)et( Ci;Ck)soient dansC. On a donc en particulierCi ! Cj et

C

i

!C

k. D’après le lemme2, on obtientCj !Ck. Mais alors l’arc( Ci;Ck)est réduit par les arcs

( C

i

;C

j

)et( Cj;Ck). Donc( Ci;Ck)n’est pas dansG , contradiction qui achève la preuve.

Notons qu’en prenant la colonne d’indice maximal comme racine, l’arbre ainsi défini respecte le sens induit par la relation!: siCfest fils deCpalorsCf !Cp(c’est un corollaire du lemme2).

Remarquons encore que les lemmes1et2sur lesquels repose la preuve utilisent la symétrie de la structure. Dans le cas d’une structure non symétrisée, on pourrait seulement affirmer que

G est sans circuit.

La figure1.2illustre le processus de construction de l’arbre d’élimination. Différentes branches filles d’un même père doivent être traitées avant celui-ci et peuvent être traitées parallèlement en- tre elles.

En pratique, les colonnes consécutives deAayant la même structure sous-diagonale de non- zéros après remplissage sont fusionnées afin de travailler sur de plus gros blocs de données et ainsi d’accroître les performances. L’arbre correspondant est alors appeléarbre d’assemblage[5].

Une telle fusion de colonnes s’appelle unsupernœud.

1.1.4 Techniques de renumérotation

Renuméroter les variables d’un système linéaire creux,i.e. permuter ses lignes et ses colonnes, a pour but de réduire le remplissage ainsi que la quantité de calcul. On ne considère ici que les techniques de renumérotation symétriques qui peuvent aussi s’appliquer à une matrice non symétriqueAen considérant la structure deA+tA(après certaines permutations de colonnes pour des matrices très asymétriques [11]).

Le problème consistant à trouver la numérotation minimisant la quantité de calcul étantNP- complet [29] , plusieurs heuristiques sont utilisées, dont deux schémas classiques de renuméro- tation symétrique :

(13)

les heuristiquesbas-en-hauttelles que ledegré minimal(AMD [2], MMD [19]) ou leremplissage minimal(AMF [22], MMF [24]) ;

et les heuristiques globales, ouhaut-en-bas, basées sur le partitionnement du graphe de la matrice, telles que lesdissections emboîtées[15,14].

Ce sont souvent des heuristiques hybrides entre ces deux schémas, telles que METIS [18] et PORD [27], qui permettent d’obtenir les meilleurs résultats.

1.2 Méthode multifrontale

1.2.1 Introduction

Le traitement d’une colonneCicorrespond aux deux étapes suivantes :

1. ensemble des contributions de la part des colonnesCjtelles queCj!Ci, notées Mise-à-jour(Cj,Ci) ;

2. division de la colonneCipar un scalaire, notéeFactorisation(Ci)

L’arbre d’assemblagefournit les contraintes minimales d’ordonnancement du traitement : si

C

j

!C

ialorsFactorisation(Cj) doit précéderMise-à-jour(Cj,Ci). La liberté restante sur l’ordonnancement donne lieu à plusieurs algorithmes. Les plus connus sont les algorithmesleft- lookingetright-lookingcorrespondant respectivement à effectuer les opérations deMise-à-jour:

au plus tard où, juste avant d’entamerFactorisation(Ci), on effectueMise-à-jour(Cj,Ci) pour tous lesjtels queCj!Ci;

au plus tôt où, dès queFactorisation(Cj) est terminée, on effectueMise-à-jour(Cj,Ci) pour tous lesitels queCj !Ci.

Dans laméthode multifrontaledont une description complète est donnée dans [12,13], la fac- torisation d’une matrice est effectuée en réalisant une succession de factorisations partielles de petites matrices denses, appeléesmatrices frontales(oufronts) et associées aux nœuds de l’arbre.

L’ordre de la matrice frontale est déterminé par le nombre de non-zéros sous la diagonale de la première colonne du supernœud correspondant. Chaque matrice frontale est divisée en deux parties :

d 4

i 9

e

5 b 2

a

1

c 3

g 7

8 h

f 6

j 10

Graphe orienté rempli

d 4

i 9

e

5 b 2

a

1

c 3

g 7

8 h

f 6

j 10

Réduction transitive

h

8 4 d

e 5

b 2

6 f 3 c

1 a

i 9

7 g j 10

Arbre d’élimination

remplissage matrice initiale

Figure 1.2: Construction de l’arbre d’élimination de la matrice de la figure1.1

(14)

12 E. Agullo

le blocfacteurqui correspond aux variables factorisées lorsque l’algorithme de factorisation traite la matrice frontale ;

le bloc decontributionqui correspond aux variables mises à jour et qui contribueront à la factorisation des nœuds ascendants de l’arbre.

Une fois la factorisation d’un front terminée, le bloc de contribution est stocké jusqu’à ce qu’il soit transmis au nœud père. Quand les contributions de tous les fils sont disponibles, ils peuvent être assemblés, i.e. sommés avec les valeurs de la matrice frontale du nœud père. Après cet assemblage du front du père, les blocs de contribution de tous les fils sont définitivement libérés

; ils peuvent donc être stockés sous la forme d’une pile où les derniers d’entre eux produits sont les premiers consommés (et donc retirés de la pile).

La figure1.3illustre le schéma d’accès aux données des trois méthodes décrites. Ainsi, dans

left-looking right-looking multifrontale

Figure 1.3: Schéma d’accès aux données pour les méthodes left-looking, right-looking et multi- frontale.

la méthode multifrontale, la transmission d’information est locale - des fils vers leur père -, et se traduit par la seule transmission du bloc de contribution de chacun des fils, les facteurs n’étant plus utilisés jusqu’à l’étape de résolution.

1.2.2 Considérations mémoires

Dans le casséquentiel, comme expliqué précédemment, la mémoire utilisée par la méthode mul- tifrontale est constituée de deux parties (cf. fig.1.4). Nous appelleronszone facteurla partie de la mémoire qui sert au stockage des facteurs etmémoire activecelle contenant la pile des blocs de contribution (créés mais non consommés) ainsi que la matrice frontale courante. Notons que les

contribution) Pile Matrice

frontale courante

Zone facteur (blocs de

Mémoire active

Figure 1.4: Composition de la mémoire pour la méthodemultifrontale.

méthodesright-looking(left-looking) n’utilisent que lazone facteurmais doivent en contre-partie, lors du traitement d’un nœud, mettre à jour toute l’ascendance (respectivement relire les facteurs de toute la descendance). Déterminer le parcours d’arbre minimisant le pic de consommation mémoire pendant la factorisation est une étape préalable au calculout-of-core, dans la mesure où elle maximise la probabilité que le calcul ne nécessite pas d’E/S. Cependant, dans une perspective de calculout-of-core, les facteurs n’étant réutilisés que lors de l’étape de résolution, nous pouvons considérer que nous les écrivons systématiquement sur disque après leur calcul -i.e. dès qu’un front est factorisé, et donc nous focaliser sur la minimisation de la mémoire active (et non de mémoire totale). L’impact du parcours est illustré par la figure1.5.

(15)

Effectuons une étude locale sur l’arbre d’assemblage. Considérons un nœudpet étudions- le en tant que père. SoientFp la taille de son front etnle nombre de ses fils notés ff1;::: ;fng. Supposons que traité individuellement chaque sous-arbre enraciné enfi(1in) engendrerait un pic de mémoire active de taillepii. Notonsbila taille du bloc de contribution que produitfi. Supposons de plus que nous traitions les fils dans l’ordre croissant des indices, alors l’utilisation mémoire lors du traitement defi(1in) atteint la valeurpii+Pk=ik=1 1

b

kpuisqu’au moment du pic mémoire du sous-arbre relatif au filsfisont stockés de surcroît les blocs de contribution des autres fils déjà traités. D’autre part, avant de consommer les blocs de contribution des fils, il faut allouer l’espace nécessaire au front du père, ce qui correspond à une occupation mémoire deFp+Pk=nk=1

b

k. Le pic de mémoire activepipcorrespondant au sous-arbre enraciné enpest donc donné par l’équation1.5.

pi

p

=max( max

i 2f1;::: ;n g ( pi

i +

k=i 1

X

k=1 b

k ) ;F

p +

k=n

X

k=1 b

k

) (1.5)

Déterminer le parcours de l’arbre minimisant le pic de mémoire active revient donc à minimiser de manière gloutonne (i.e.à chaque niveau de l’arbre) la quantitémaxi 2f1;::: ;n g

( pi

i +

P

k=i 1

k=1 b

k )

, les pics mémoire des fils étant supposés déjà optimisés grâce à un parcourspost-fixede l’arbre.

En remarquant que pour tout filsfi on apii bi, Liu a montré dans [20] que cette quantité est minimale lorsque l’on classe les fils dans l’ordre décroissant desÆi = pii bi, que nous appelleronsordre de Liu.

Nous verrons dans la partie4.2que cet algorithme, nommé désormaisalgorithme de Liu, con- sistant à effectuer un parcours postfixe de l’arbre selon l’ordre de Liu, ne permet pas tel quel de minimiser en général le volume d’entrées-sorties et nous proposerons une variante à cet effet.

La méthode multifrontale parallèle est basée sur une combinaison de techniques d’ordon- nancement statiques,i.e. déterminées lors de la phase d’analyse de la matrice, telles que l’algo- rithme de Liu et dynamiques ,i.e. déterminées au fur et à mesure des calculs, afin de combler les déséquilibres de charge entre les différents processus. Une description détaillée de ces algo- rithmes est donnée dans [4] et [3]. Une amélioration du comportement mémoire dans ce cadre a été proposée dans [16].

1.3 Position du problème

L’un des problèmes majeurs liés aux méthodes directes est leur besoin particulièrement élevé de mémoire. Penser le résoudre en achetant une quantité énorme de mémoire n’est pas un argu- ment recevable, d’une part, parce que cela augmenterait considérablement le prix des stations de travail et, d’autre part, parce qu’il y aura toujours des problèmes trop importants pour une quantité de mémoire donnée. On pourrait donc penser qu’il suffit d’utiliser le mécanisme de

Meilleur Plus mauvais

1 2

3 5

7 9

6 4

8

5 4

6 7

8 9

2 3

1

Figure 1.5: Impact du parcours de l’arbre d’assemblage sur le pic de consommation mémoire.

(16)

14 E. Agullo

pagination qui délègue au système d’exploitation la tâche de déplacer les données entre la mé- moire centrale et les disques. Bien que cette approche présente l’avantage de ne pas nécessiter de modification du programmein-core, les expériences sur les problèmes industriels de grande taille montrent que les performances qui en découlent ne sont pas acceptables [23]. Pour les améliorer, il faut envisager de mettre en place des techniquesout-of-coreexplicites, adaptées aux méthodes directes et plus particulièrement à la méthode multifrontale, tout en choisissant un mécanisme d’entrée/sortie efficace.

En d’autres termes, il s’agit de minimiser le temps d’exécution de la résolution d’un système linéaire creux (donné par une matrice), pour une technique de renumérotation, un parcours de l’arbre d’assemblage1et une quantité de mémoire physique donnés, en déterminantquoiécrire, quand l’écrire (et le relire) et comment. Le problème peut être élargi en autorisant également l’adaptation du parcours de l’arbre d’assemblage à l’objectif. Par ailleurs, la minimisation du temps d’exécution sera effectivement notre fonction objectif dans un cadre expérimental. En revanche, dans un cadre théorique ainsi que dans celui de simulations, le temps d’exécution dépend de trop de paramètres (architecture et charge de la plate-forme cible, rapidité des dis- ques, des processeurs, . . . ) pour être évalué correctement. Plusieurs fonctions objectifs subsidi- aires sont alors à considérer : minimisation du volume d’E/S, maximisation de la localité, et recouvrement maximal des calculs avec lesE/S.

Nous repréciserons donc le problème résolu dans chacune des parties qui suivent, tout en définissant une métrique associée au paramètre optimisé lorsque celle-ci n’est pas implicite.

L’état de l’art présente des réponses à plusieurs sous-problèmes de façon découplée. Notre ob- jectif est de tendre vers un algorithme résolvant le plus efficacement possible le problème général posé. Nous distinguerons trois cadres d’étude correspondant aux différentes parties (cf. fig.1.4) que nous avons identifiées de la mémoire : le chapitre3se focalise sur lazone facteur, le suiv- ant traite de lamémoire active(dans le cas séquentiel) et le chapitre5étudie le cas particulier des matrices frontales de grande taille.

1L’arbre d’assemblage est fixé avec la donnée de la matrice et d’une technique de renumérotation.

(17)

Chapter 2

État de l’art

2.1 Introduction

Le problème de savoir quoi écrire et quandl’écrire (et le relire), dépendant par essence de la méthode utilisée, fait l’objet du point2.2 qui présente l’état de l’art des différentes méthodes directesout-of-coreséquentielles, et servira de base à notre réflexion sur la construction d’un al- gorithmeout-of-corepour la méthode multifrontale séquentielleetparallèle. Notons qu’il n’existe pas actuellement à notre connaissance d’article sur les méthodes directesout-of-coreexplicites en parallèle.

Nous nous intéresserons ensuite dans la partie2.3aucomment, en étudiant les mécanismes d’entrées/sorties (E/S) de façon générale (et non pas seulement dans le cadre des méthodes di- rectes). Cette étude bibliographique nous permettra de choisir les mécanismes les plus efficaces, aussi bien dans le cas séquentiel que parallèle, que nous utiliserons.

2.2 Méthodes directes out-of-core

2.2.1 Pagination adaptative

Mettre en place un mécanisme de pagination revient simplement à déléguer au système d’exploi- tation la gestion de l’out-of-core; il gère alors une mémoire virtuelle de quantité supérieure à celle de mémoire physique et qui est composée de pages mémoires soit en mémoire physique soit sur disque. Tel quel, ce mécanisme s’avère inefficace [23,9]. Cependant, une variante a été proposée ; elle consiste à adapter l’activité de pagination aux spécificités des accès mémoires de la méthode multifrontale [9,8]. Grâce à unmoniteur de pagination [7], il est possible de faire interagir une application avec le noyau du système d’exploitation pour la gestion des pages mémoires. Plus précisément, il permet à l’application, d’une part, de définir des priorités sur les pages mémoires à conserver en mémoire physique, et d’autre part, de spécifier les pages qui deviennent obsolètes de telle sorte qu’elles puissent être libérées.

Pour la méthode multifrontale, les interactions ont lieu au cours de trois étapes correspon- dant au cycle de vie d’une matrice frontale. Tout d’abord, juste avant l’allocation d’une nouvelle matrice frontale, on attribue une priorité maximale à la zone mémoire qui va la contenir. En- suite, avant d’être assemblé dans la matrice frontale, chaque bloc de contribution voit sa zone mémoire recevoir également une priorité maximale puis être libérée. Enfin, avant la factorisation de la matrice frontale, la priorité de la zone mémoire de celle-ci n’est pas modifiée (puisqu’elle possède déjà une priorité maximale) ; cependant, une fois qu’elle est factorisée, celle du facteur généré reçoit une priorité minimale (puisqu’il ne sera plus accédé pendant le reste de la fac- torisation) tandis que la priorité de celle contenant le bloc de contribution produit reçoit la valeur

priorite_b=priorite_haut_de_la_pile+1, oùpriorite_haut_de_la_pileest la valeur de la priorité du bloc de contribution qui était au sommet de la pile avant la copie. Ce choix est effectivement

15

(18)

16 E. Agullo

Domaines Multi−secteur

(a)MFetMF-LL

1/3 de la mémoire

(b)LL-RR

Figure 2.1: Méthodes directesout-of-core

bien adapté au schéma d’accès mémoire de la méthode multifrontale pour laquelle les derniers blocs de contribution produits seront les premiers réutilisés.

Cet algorithme de définition de priorité permet donc d’agir - de manière élégante - sur lequoi écrire. Les résultats expérimentaux montrent qu’en diminuant le nombre de défauts de pages, il bat généralement la politique LRU (Least Recently Used) générique du système en améliorant dans certains cas jusqu’à 50 % la performance. Cependant, il possède une limite intrinsèque : il ne laisse pas l’application décider duquandet ducomment. De plus, il ne permet pas d’adapter le parcours de l’arbre d’assemblage à la quantité de mémoire disponible, ce qui est pourtant susceptible de diminuer le volume d’E/S (et donc potentiellement la performance) comme le montrera la partie4.2. Ainsi faut-il envisager des techniquesout-of-coreexplicites, où, non seule- ment, le déplacement des données entre mémoire physique et disques est entièrement géré par l’application, mais encore, les contraintes d’E/Ssont considérées comme un problème central au lieu d’être traitées en aval.

2.2.2 Techniques explicites

Algorithme de Liu

Nous avons vu dans la partie1.2.2que l’on minimise le pic de mémoire de la méthode multi- frontale, pour un arbre d’assemblage donné, en parcourant l’arbre selon l’algorithme de Liu. Liu conclut dans [20] que dans le cas où la quantité de mémoire nécessaire dépasse celle de mé- moire physique disponible, son algorithme réduit le volume d’E/Set donc le temps d’exécution de l’étape de factorisation. Les techniques présentées ci-après admettent tacitement ce postulat (qui est faux en général,cf.4.2), et se contentent de déterminerquoiécrire etquandl’écrire (et le relire) afin de minimiser le temps d’exécution de la factorisation, tout en essayant de déterminer les méthodes directes les mieux adaptées à l’out-of-core.

Une méthode hybridemultifrontale-left-looking

Dans [23], E. Rothberg and R. Schreiber comparent l’impact du choix de la méthode directe (left- looking,right-lookingetmultifrontale) sur le volume d’E/Set les performances de la factorisation séquentielle des matrices symétriques. La méthode multifrontale étant bien adaptée au calcul in-core, ils proposent dans un premier temps une extensionout-of-corede cette méthode. Puisque les facteurs ne sont pas réutilisés pendant l’étape de factorisation, ils sont systématiquement écrits dès leur calcul. Ils identifient alors les plus gros sous-arbres de l’arbre d’élimination qui pourraient être factorisés par la méthode multifrontale en traitant la mémoire active enin-core. Un tel sous-arbre se situe en bas de l’arbre d’assemblage (puisque l’étape de factorisation s’effectue en ordre postfixe) et est appelédomainecomme l’illustre la figure2.1(a). Chaquedomaineest ainsi factorisé en gardant la mémoire activein-core. Finalement le bloc de contribution de la racine (i.e. l’information nécessaire à la factorisation des nœuds ascendants) est écrit sur disque et la

(19)

mémoire est libérée afin de disposer entièrement de celle-ci pour effectuer la factorisation du domainesuivant.

Une fois tous les domaines ainsi factorisés et les blocs de contribution de leur racine écrits sur disque, le haut de l’arbre, appelémulti-secteur, est à son tour factorisé. Lors du traitement d’un nœud, sa matrice frontale est divisée en bandes,i.e. un agrégat de colonnes tel que chacune des bandes puisse tenir dans la moitié de la mémoire disponible. Pour assembler une bande, dans un premier temps, on charge dans l’autre moitié de la mémoire les parties des blocs de contribution qui lui correspondent (quitte à découper également ces blocs en bandes) et on effectue les mises- à-jour ; dans un second temps, on y recharge les bandes précédemment traitées de la même matrice frontale en effectuant également les mise-à-jour adéquates. Enfin on factorise la bande et on l’écrit sur disque. Puisqu’à chaque instant au plus deux bandes sont simultanément en mémoire, cette méthode, que nous noteronsMF, estrobustedans le sens où elle n’effectue jamais de débordement de mémoire. Cependant, un tel traitement nécessite beaucoup d’E/Sdès que les matrices frontales sont de taille importante.

Les auteurs proposent donc une variante hybride, nommée MF-LL, consistant à traiter le multi-secteurselon la méthodeleft-looking. Le traitement d’un nœud dumulti-secteurconsiste en une phase de mise-à-jour, pour laquelle les facteurs de toute la descendance sont relus depuis le disque puis assemblés, et en une phase de factorisation. Le découpage en bandes est adapté à la méthodeleft-lookingpour laquelle l’élément à traiter n’est pas une matrice frontale mais simple- ment un bloc facteur (donc de taille inférieure). Une validation expérimentale leur a permis de constater que cette seconde méthode effectue moins d’E/Ssur les problèmes de taille importante.

Une approche hybrideleft-looking-right-looking

V. Rotkin et S. Toledo proposent dans [25] une approche basée sur la méthodeleft-looking, en s’inspirant de l’idée de partitionnement établie ci-avant [23], en construisant des sous-arbres dont les facteurs tiennent dans un tiers de la mémoire disponible. Une fois ce partitionnement effectué (cf. fig.2.1(b)), la factorisation est réalisée sous-arbre par sous-arbre, en écrivant sur disque tous les facteurs d’un tel sous-arbre (qu’ils appellent pour cette raisonsous-arbre mort) une fois traité.

Lors du traitement d’un sous-arbre, la mémoire relative à ses facteurs est allouée. Le second tiers de la mémoire permet de charger entièrement unsous-arbre mortappartenant à sa descendance et d’effectuer les mises-à-jours correspondantes, puis de libérer cette mémoire afin de pouvoir charger ensuite un autresous-arbre mortde la descendance. À chaque instant, au plus deux-tiers de la mémoire est ainsi occupé et le troisième tiers permet d’effectuer des factorisations denses performantes. Si les échanges d’information entre sous-arbres sont réalisés selon un schémaleft- looking, les mises-à-jour au sein d’un sous-arbre sont effectuées selon la méthoderight-looking.

Cette méthode hybride, notéeLL-RR, possède un partitionnement de grain mieux adapté que celle présentéeinfradont la taille dumuti-secteurpouvait être un goulot d’étranglement des per- formances.

Bilan

S’il est reconnu que la méthode multifrontalein-coreprésente d’excellentes performances, la taille potentielle des matrices frontales incite, dans un cadre séquentiel, à choisir des méthodes directes alternatives. Nous proposons dans le chapitre 5 une technique pour gérer ce phénomène de manière performante en parallèle, légitimant ainsi l’exploration d’une méthode parallèle out- of-coreentièrement multifrontale. Avant de faire cela, analysons les techniques séquentielles et parallèles d’E/Sexistantes.

(20)

18 E. Agullo

2.3 Mécanismes d’entrées/sorties (E/S)

2.3.1 Librairies C et Fortran

Puisque nos expérimentations se basent sur MUMPS (voir http://graal.ens-lyon.fr/MUMPS), un logiciel parallèle pour la factorisation de matrices creuses en environnement distribué (utili- sation de la bibliothèque MPI), la manière la plus pratique d’effectuer desE/Sest d’employer la bibliothèque dédiée du langage dans lequel il est écrit, à savoirFortran. Cependant, la biblio- thèque standardCest plus souple et reconnue comme plus performante. Nous retenons donc cette dernière quitte à mettre en place une interfaceFortran / C. Pour pouvoir empêcher le système d’utiliser une mémoire tampon lorsqu’il effectue desE/S, ce qui qui introduirait un biais dans nos mesures (nous mettons nous même en place un tampon mémoire), nous préférerons, dans un cadre expérimental, les fonctions d’écriturewriteet de lecturereadaux plus usuelles fwriteetfread. Nous verrons dans le chapitre3comment utiliser ces fonctions basiques pour mettre en place un mécanisme efficace d’E/Sasynchrone avec utilisation de mémoire tampon.

2.3.2 AIO

Il existe un mécanisme POSIX d’E/Sasynchrones, AIO (Asynchronous I/O), optimisé sur chaque plate-forme sur laquelle il est porté. Nous l’avons implanté à partir de son interfaceC(aio.c) afin d’obtenir les meilleures performances possibles de la plate-forme cible utilisée. Il s’est mal- heureusement avéré non portable sur les systèmes où nous avons effectué nos expérimentations.

2.3.3 MPIIO

La bibliothèque de passage de message MPI [10,28] (Message Passing Interface) possède une ex- tension efficace, MPI-IO pour traiter les requêtes d’E/Sdans un environnement parallèle. Cepen- dant, l’objet de celle-ci est de gérer les requêtes d’E/Sde différents processeurs à un même fichier.

Puisque dans notre cas le disque sert d’extension de la mémoire et que les mémoires des pro- cesseurs sont indépendantes les unes des autres, cette extension est inadaptée à notre problème.

Nous essaierons, au contraire, dans la mesure du possible de faire en sorte que chaque processeur puisse accéder à des ressources disques locales afin d’obtenir les performances les meilleures pos- sibles.

2.3.4 FG

Un cadre de travail permettant d’effectuer des E/S a été conçu spécifiquement pour le calcul haute-performance [6]. Cet outil, FG, offre au développeur un mécanisme transparent pour ef- fectuer desE/Sasynchrones utilisant une mémoire tampon de manière très performante. Cepen- dant, d’une part, il est conçu pour gérer des applications fortement threadées et dont les threads sont concurrentes au niveau desE/S(alors que dans notre cas chaque processeur accède à sa pro- pre zone disque), et, d’autre part, il n’en existe pas encore de version stable. Nous ne l’utiliserons donc pas.

2.3.5 Bilan

Nous implanterons donc deux mécanismes d’E/S : la librairieC standard ainsi qu’AIO. Nous n’effectuerons en revanche nos expérimentations qu’avec le premier d’entre eux puisqu’AIO s’est avéré non compatible avec notre plate-forme de tests.

(21)

Chapter 3

Traitement out-of-core de la zone facteur

3.1 Étude préalable

3.1.1 Introduction

Dans la méthode multifrontale, les facteurs produits au cours de l’étape de factorisation ne sont pas réutilisés avant celle de résolution. Il apparaît donc naturel de s’intéresser en priorité à leur écriture sur disque. Nous effectuons une étude préalable pour mesurer l’intérêt de cette dé- marche,i.e.savoir dans quelle mesure la quantité de mémoire nécessaire à la factorisation (étape la plus gourmande en mémoire) d’une matrice sera ainsi diminuée. Nous simulons un traitement out-of-coredes facteurs en libérant la mémoire correspondante aussitôt que l’un d’entre eux est calculé. Puisque cette information n’est pas réutilisée pendant l’étape de factorisation, la quan- tité de mémoire mesurée est exactement celle que nous aurions avec un algorithme gérant les facteursout-of-core. Nous déterminons ainsi la taille des problèmes que l’on pourrait résoudre avec un tel algorithmeout-of-core. En revanche, bien évidemment, l’étape de résolution ne peut être effectuée (les facteurs sont perdus).

Nous mesurons le pic de mémoire obtenu (qui correspond au pic de mémoire active) et le comparons au pic de mémoire totale (que nous aurions obtenu si nous avions gardé les fac- teurs en mémoire physique). Dans le cas parallèle, nous retenons la valeur maximale relevée sur l’ensemble des processeurs, puisque c’est celle-ci qui sera le goulot d’étranglement.

3.1.2 Environnement expérimental

Nous utilisons la bibliothèque MUMPS pour effectuer nos expérimentations et renumérotons préliminairement les variables des matrices testées afin de minimiser le remplissage avec METIS ou bien PORD (c.f.partie1.1.4).

Nous avons utilisé plusieurs environnements pour effectuer nos expérimentations mais ne présenterons ici que les résultats obtenus sur la plate-forme IBM de l’IDRIS (Orsay, France) pour laquelle la plus large gamme de problèmes a pu être traitée. Elle est composée de nœuds de4à

32processeurs Power4+ et possède les caractéristiques mémoires présentées dans le tableau3.1.

Nombre de processeurs 1 2-16 17-64 65- Mémoire par processeur 16 GB 4 GB 3,5 GB 1,3 GB Table 3.1: Caractéristiques mémoires de la plate-forme IBM de l’IDRIS.

19

(22)

20 E. Agullo

Nous avons effectué ces expérimentations sur une collection de matrices de grande taille is- sues des problèmes industriels et académiques. Nous présenterons les résultats obtenus sur cinq d’entre elles représentatives de la collection :

AUDIKW_1 provient d’un modèle de déformation du vilebrequin par la pression des pistons et comporte plus de 900.000 tetra éléments. Elle est disponible dans la collection PARASOL.

CONESHL[_MODj2 sont issues de problèmes 3D d’éléments finis. Ces deux matrices ont été fournies par SAMTECH et créées en utilisant SAMCEF.

CONV3D64 a été fournie par CEA-CESTA et générée en utilisant AQUILON (http ://www.enscpb.fr/master/aquilon).

ULTRASOUND80 vient d’un problème de propagation 3D d’ultrasons fourni par Masha Sosonk- ina.

Leurs caractéristiques sont exposées dans le tableau3.2.

Ordre nnz nnz(Lj U)106 Ops109 Matrices symétriques

AUDIKW_1 943695 39297771 1368.6 5682 CONESHL_MOD 1262212 43007782 790.8 1640 CONESHL2 837967 22328697 266.6 218.5 Matrices non symétriques

CONV3D64 836550 12548250 2693.9 23880 ULTRASOUND80 531441 33076161 981.4 3915

Table 3.2: Caractéristiques des matrices utilisées (statistiques obtenues en prétraitant la matrice avec METIS). Les valeursnnz etnnz( Lj U)représentent respectivement le nombre de non zéro avant et après remplissage ; Ops est le nombre d’opérations nécessaires à la factorisation.

3.1.3 Résultats

Le comportement mémoire typique, illustré par celui de la matriceAUDIKW_1dans la figure3.1, montre que sur peu de processeurs le pic de mémoire active est bien moins important que celui de mémoire totale. Ainsi en écrivant systématiquement sur disque les facteurs produits, seule la mémoire active resteraitin-coreet les besoins en mémoire de l’application seraient significa- tivement diminués (de l’ordre de80%en séquentiel). À l’opposé, le pic de mémoire de la zone facteur égale presque celui de mémoire totale, quel que soit le nombre de processeurs. Ainsi ne traiter enout-of-coreque la mémoire active en gardantin-coreles facteurs ne diminuerait que très peu les besoins en mémoire.

Lorsque le nombre de processeurs augmente, le pic de mémoire active décroît moins rapide- ment que celui de mémoire totale comme l’illustre la figure3.2. Avec 64 processeurs, la mémoire active effectue un pic représentant de50à70%celui de mémoire totale.

En conclusion, écrire les facteurs sur disque permettrait de traiter des problèmes considéra- blement plus importants (jusqu’à cinq fois) avec un petit nombre de processeurs. La mise en place d’un tel mécanisme et l’étude de son comportement font l’objet des sous-parties suivantes.

Pour obtenir des gains significatifs de consommation mémoire avec un nombre plus élevé de processeurs, ou pour résoudre des problèmes encore plus importants, il faudra cependant envis- ager de gérer de surcroît la mémoire active enout-of-core. Nous étudierons cela d’un point de vue théorique dans le chapitre4, dans un cadre séquentiel.

(23)

0 200 400 600 800 1000 1200 1400 1600

0 10 20 30 40 50 60

Pic mémoire

Nombre de processeurs

Mémoire active Zone facteur Mémoire totale

(a)METIS

0 200 400 600 800 1000 1200 1400 1600

0 10 20 30 40 50 60

Pic mémoire

Nombre de processeurs

Mémoire active Zone facteur Mémoire totale

(b)PORD

Figure 3.1: Comportement mémoire typique (matriceAUDIKW_1)

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

0 10 20 30 40 50 60 70

Pic maximal de mémoire active / pic maximal de mémoire totale (ratio)

Nombre de processeurs

AUDIKW_1 CONESHL_MOD CONESHL2 CONV3D ULTRASOUND80

Figure 3.2: Rapport de la mémoire active à la mémoire totale

(24)

22 E. Agullo

3.2 Mise en place d’un mécanisme de traitement out-of-core des facteurs

3.2.1 Factorisation synchrone

Nous mettons en place dans un premier temps une version synchrone en utilisant les biblio- thèques standardsC. Les facteurs sont écrits sur disque dès qu’ils sont calculés tout en laissant au système la liberté d’utiliser une mémoire tampon pour effectuer moins de requêtes d’E/S.

3.2.2 Factorisation asynchrone

Nous implantons ensuite une version asynchrone avec mise en mémoire tampon afin d’effectuer explicitement moins de requêtes aux disques. En effet, un accès disque se caractérise par un temps de latence et une vitesse (de lecture et d’écriture). Effectuer moins de requêtes permet donc de diminuer la latence globale et donc d’améliorer la performance desE/S. Notons, que déterminer la taille la mieux adaptée du tampon est un exercice difficile. En effet, plus elle sera importante et moins de requêtes d’E/Sseront effectuées ; on diminuera ainsi la latence globale.

Cependant, la quantité de mémoire allouée au tampon est autant de mémoire dont on ne dispose pas pour la factorisation en elle-même. Or, moins la mémoire disponible est importante et plus le volume d’E/Sproduit est élevé. Nous avons mis en place un double-tampon (pour permettre d’en remplir un pendant que l’on vide l’autre) dont la taille de chacun est égale à la celle du plus gros bloc de contribution que traite un processeur.

Une gestion asynchrone sous-entend un mécanisme de threads : un thread effectue les calculs pendant qu’un autre traite parallèlement lesE/S.

3.2.3 Résolution synchrone

Une première version de l’étape de résolution, entièrement synchrone, a également été mise en place.

3.3 Résultats

Ce mécanisme out-of-core nous a permis de résoudre des problèmes plus importants. C’était la motivation principale de notre travail. Ou bien nous avons besoin de moins de mémoire pour résoudre un problème donné. Par exemple, nous pouvons désormais factoriser la matrice ULTRASOUND80avec une mémoire, dans le cas séquentiel, de seulement 218 millions de réels au lieu de 1101 millions. Avec 4 processeurs, il suffit d’une mémoire de 154 millions de réels au lieu de 360. Ou bien nous pouvons désormais utiliser moins de processeurs. Par exemple, la matrice ULTRASOUND80nécessite 8 processeurs pour être traitée enin-coreet seulement 2 enout-of-core.

De mêmeCONV3Dpeut être traitée avec 16 au lieu de 32 processeurs. Elle passe même avec 1 seul processeur désormais (la plate-forme de l’IDRIS permettant de bénéficier de 16 GB de mémoire en séquentiel). Nous présentons une étude de performance réalisée dans les mêmes conditions expérimentales que celle du point3.1.2en utilisant METIS comme technique de renumérotation.

3.4 Performances de l’étape de factorisation

Le figure3.4montre les performances typiques obtenues pendant la factorisation : quelque soit le nombre de processeurs, les stratégiesout-of-coresont du même ordre de grandeur que la version in-core. De manière générale, les temps obtenus (c.f. fig.3.3) sont relativement bons par rapport à la versionin-coreinitiale. La performance obtenue pour les deux versionsout-of-corereste du même ordre de grandeur que pour la versionin-core(au plus20%de temps supplémentaire en- deçà de 32 processeurs). Dans plusieurs cas, avec un petit nombre de processeur, les versions

Références

Documents relatifs

ing o , aording to whih the message is routed within the trie until reahing the node labeled v suh that v is the smallest label in the trie that shares with o the greatest ommon

raw consumption can be used in software platform simulators to estimate software energy cost, differences between access at different levels of the memory hierarchy can be used

In order to observe the bandwidth sharing and loss patterns on a congested output port of a switch, a specific testbed and a restricted parametric space were used to explore 1

Figure 13 seems to have some difficulties during the earlier phase of the test as the two first nodes that were started aren’t able to reach the maximum goodput achievable, which

More specifically, the effective data rates are not a linear function of the portion of the raw link obtained as real transport protocols use congestion window based congestion

The user running this benchmark wants to compare the performance of several transport services. The best service will offer the minimum completion time of the given transfer

In Figure 8, we compare the impact of a non-congesting (0.9) and a congesting (1.1) reverse traffic level for a given congestion level (1.8) on the aggregate goodput of all

Figure 1 shows the evolution of the number of virtual full-time processors which participate in the project hosted by World Community Grid since the beginning of the grid.. The web