• Aucun résultat trouvé

4.4 R´eutilisation du Sous-Espace de Krylov Filtr´e pour une Mul-

4.5.1 Gains Potentiels et Amortissements

Dans ce paragraphe, nous analysons les gains pouvant ˆetre r´ealis´es `a l’aide de notre technique dans le cadre d’une multir´esolution. Nous r´esol- vons le premier syst`eme de la s´equence (4.9) par ChebFilterCG et exploitons ensuite la base de Krylov r´esultante W dans l’algorithme Init-CG (voir§4.4) pour les autres r´esolutions.

Un pr´econditionneur de premier niveau M1 est ´egalement utilis´e pour

bien regrouper le spectre de la matrice d’it´eration. Le coˆut d’une multiplica- tion de M1 par un vecteur est repr´esent´ee parCM1. Comme dans nos essais

num´eriques M1 est construit par factorisation incompl`ete de Cholesky ou

par Jacobi classique, etCM1 peut donc ˆetre estim´e comme

CM1 ≈ 4 nnz (L) − 2 n (4.14)

o`u nnz (L) est le nombre d’´el´ements non nuls que comporte la matrice L issue de Cholesky Incomplet ou de Jacobi classique, et n est la taille du probl`eme. Le coˆut de ce premier niveau de pr´econditionnement M1 doit

ˆetre incorpor´e dans les coˆuts en op´erations flottantes d´ecrits au §4.5. Ceci se r´esume `a ajouter CM1 `a chaque ´etape de Tchebycheff (dans ChebFilter),

ainsi que du gradient conjugu´e (CG) ou (Init-CG) ( voir les formules (4.11), (4.12), (4.16)).

L’algorithme Init-CG calcule, au d´ebut de la m´ethode du gradient conju- gu´e, une projection oblique du r´esidu initial r(0) dans l’espace de Kry- lov Vect{Wk} de dimension k, `a savoir : x(0) = WkA−1c WTkb o`u Ac =

WTkAWk est une matrice dense d’ordre k, r(0) = b− Ax(0) et p(0)= r(0).

Dans le cas o`u la base de Krylov W est constitu´ee par les directions de descente A-conjugu´ees construites dans l’algorithme du Gradient Conjugu´e, le calcul de Ac devient mˆeme trivial, en ce sens que Ac est diagonale et

peut ˆetre construite `a la vol´ee au fur et `a mesure des it´erations. Nous avons effectivement consid´er´e cela dans la mise en œuvre de cette approche et,

EDP1 pr´econditionn´ee par Jacobi Classique

CG sans pr´econditionnement de Tchebycheff requiert 485 it´erations avec un coˆut de 95.79 Mflop

µ = λmax/500 µ = λmax/100 µ = λmax/50

ε ChebIt CGIt Mflop ChebIt CGIt Mflop ChebIt CGIt Mflop 10−16 420 5 349.68 188 11 345.56 132 16 353.85

10−8 214 6 214.39 96 16 258.21 68 23 264.25

10−4 111 8 149.03 50 22 187.00 35 31 186.29

10−2 60 12 121.92 27 30 140.43 19 43 144.17

10−1 34 19 111.03 15 42 112.92 11 59 119.44 EDP1 pr´econditionn´ee par Cholesky Incomplet sans remplissage CG sans pr´econditionnement de Tchebycheff requiert 191 it´erations

avec un coˆut de 55.52 Mflop

µ = λmax/100 µ = λmax/50 µ = λmax/20

ε ChebIt CGIt Mflop ChebIt CGIt Mflop ChebIt CGIt Mflop 10−16 188 4 196.97 132 6 207.97 83 9 197.13

10−8 96 5 126.44 68 8 143.98 43 13 149.36

10−4 50 7 93.17 35 11 103.46 22 18 108.37

10−2 27 11 80.54 19 15 78.58 12 25 85.42

10−1 15 18 75.56 11 22 69.44 7 35 74.02

EDP1 pr´econditionn´ee par Cholesky Incomplet avec remplissage 10−2

CG sans pr´econditionnement de Tchebycheff requiert 54 it´erations avec un coˆut de 22.91 Mflop

µ = λmax/20 µ = λmax/10 µ = λmax/5

ε ChebIt CGIt Mflop ChebIt CGIt Mflop ChebIt CGIt Mflop

10−16 83 4 131.99 58 4 92.74 39 5 78.65

10−8 43 4 69.20 30 5 60.99 20 7 57.91

10−4 22 6 54.35 16 7 46.92 11 9 42.67

10−2 12 10 51.34 9 10 39.56 6 13 36.13

10−1 7 15 47.57 5 16 38.18 4 17 33.89

Tab. 4.6 – Coˆut de ChebFilterCG pour diff´erents niveaux du filtrage ε et pour diff´erentes valeurs de coupure µ. Le crit`ere d’arrˆet est satisfait lorsque l’erreur relative en norme A est inf´erieure `a 10−9. Le probl`eme consid´er´e est EDP1.

dans ces conditions, le coˆut du calcul de Acpeut ˆetre n´eglig´e. Avec Acsous

forme diagonale, le calcul de la projection oblique et de la mise `a jour du vecteur r´esidu peut ˆetre effectu´e grˆace `a des op´erations de type BLAS2. Le coˆut total de ces op´erations est

CProj≈ 4 k n. (4.15)

De plus, chaque it´eration n´ecessite un produit matrice-vecteur avec A, deux produits scalaires (_ DOT) et trois mises `a jour de vecteur (_ AXPY) (voir les formules (4.10) et (4.12)). Le coˆut total de l’algorithme Init-CG est donc

CInitCG =  CA+CProj | {z } Initialisation  +CA+ 3C AXPY+ 2C DOT | {z } ` A chaque it´eration  × Nit, (4.16)

o`u Nit est le nombre d’it´erations total de Init-CG.

Dans la table4.6, nous montrons, pour le probl`eme test EDP1, le nombre d’´etapes de filtrage de Tchebycheff (ChebIt) `a chaque it´eration du CG, le nombre d’it´erations du CG (CGIt), et le nombre d’op´erations flottantes (en Mflop), et ceci pour diff´erents niveaux de filtrage ε.

La table 4.7 illustre les gains r´ealis´es dans Init-CG. Le crit`ere d’arrˆet utilis´e est :

||x?− x(k)|| ≤ 10−9||x?||A. (4.17)

Pour chaque niveau de filtrage ε, nous indiquons dans cette table la dimen- sion k de la base de Krylov r´esultant de la premi`ere r´esolution de la s´equence (4.9) par ChebFilterCG (ce nombre correspond aussi `a CGIt dans la table4.6), le nombre d’it´erations de Init-CG (Nit), et le nombre d’op´erations flottantes (Mflop) pour atteindre le crit`ere d’arrˆet ci-dessus (4.17).

Nous calculons ´egalement le nombre minimal de second membres qu’il faudrait consid´erer, dans une s´equence de syst`emes lin´eaires, afin d’amor- tir le surcoˆut CChebFilterCG du calcul de la base de Krylov W g´en´er´ee par

ChebFilterCG. Ceci est indiqu´e par le nombre de vecteurs d’amortissement (Amor. Vec). Pour calculer ce nombre, nous devons comparer le nombre d’op´erations flottantes requises pour atteindre un certain niveau de l’erreur relative en norme A avec le gradient conjugu´e, et le nombre d’op´erations flottantes pour atteindre le mˆeme niveau avec l’algorithme Init-CG. Il ne faut pas non plus oublier que l’utilisation de ChebFilterCG pour construire la base de Krylov W sert aussi `a r´esoudre un syst`eme lin´eaire (le premier dans la s´equence). Par cons´equent, le nombre de vecteurs d’amortissement (Amor. Vec) est donn´e par :

Amor. Vec = & CChebFilterCG− CCG CCG− CInitCG ' . (4.18)

Par exemple, pour atteindre une erreur relative en norme A d’ordre 10−9,

EDP1 pr´econditionn´ee par Jacobi Classique

CG sans pr´econditionnement de Tchebycheff requiert 485 it´erations avec un coˆut de 95.79 Mflop

µ = λmax/500 µ = λmax/100 µ = λmax/50

ε k Nit Mflop Amor. Vec k Nit Mflop Amor. Vec k Nit Mflop Amor. Vec 10−16 5 152 30.19 4 11 160 31.96 4 16 153 30.74 5

10−8 6 152 30.22 2 16 142 28.56 3 23 131 26.61 3

10−4 8 163 32.46 1 22 130 26.38 2 31 140 28.58 2

10−2 12 159 31.79 1 30 127 26.04 1 43 126 26.26 1

10−1 19 159 32.02 1 42 126 26.23 1 59 126 26.76 1 EDP1 pr´econditionn´ee par Cholesky Incomplet sans remplissage

CG sans pr´econditionnement requiert 191 it´erations avec un coˆut de 55.52 Mflop

µ = λmax/100 µ = λmax/50 µ = λmax/20

ε k Nit Mflop Amor. Vec k Nit Mflop Amor. Vec k Nit Mflop Amor. Vec

10−16 4 62 17.31 4 6 60 17.38 4 9 60 17.78 4

10−8 5 62 17.34 2 8 60 17.44 2 13 60 17.90 2

10−4 7 62 17.41 2 11 58 17.53 2 18 59 17.78 2

10−2 11 62 17.53 1 15 56 16.79 1 25 48 14.77 1

10−1 18 62 17.77 1 22 52 15.84 1 35 48 15.01 1

EDP1 pr´econditionn´ee par Cheolsky Incomplet avec remplissage 10−2

CG sans pr´econditionnement de Tchebycheff requiert 54 it´erations avec un coˆut de 22.91 Mflop

µ = λmax/20 µ = λmax/10 µ = λmax/5

ε k Nit Mflop Amor. Vec k Nit Mflop Amor. Vec k Nit Mflop Amor. Vec

10−16 4 21 8.99 8 4 18 7.71 5 5 18 7.74 4

10−8 4 21 8.99 4 5 18 7.74 4 7 18 7.81 3

10−4 6 21 9.05 3 7 18 7.81 3 9 18 7.87 2

10−2 10 21 9.19 3 10 18 7.92 2 13 18 8.00 2

10−1 15 21 9.35 3 16 18 8.10 2 17 18 8.13 2

Tab. 4.7 – Coˆuts de Init-CG, pour une base W calcul´ee avec diff´erents ni- veaux du filtrage ε et valeurs de coupure µ. Les it´erations de l’algorithme Init-CG sont stopp´ees quand l’erreur relative en norme A est inf´erieure `a 10−9. Le probl`eme test consid´er´e est EDP1.

pr´econditionn´e par Jacobi Classique, avec un coˆut de 95.79 Mflop ; 191 it´e- rations dans le cas o`u le probl`eme EDP1 est pr´econditionn´e par Cholesky Incomplet sans remplissage, avec un coˆut de 55.52 Mflop ; et 54 it´erations dans le cas o`u le probl`eme test EDP1 est pr´econditionn´e par Cholesky In- complet avec remplissage IC(10−2), avec un coˆut de 22.91 Mflop .

En particulier, si on consid`ere le cas o`u la matrice est pr´econditionn´ee par Cholesky Incomplet avec remplissage IC(10−2), ainsi qu’un niveau du

filtrage ε = 10−4 et une valeur de coupure µ = λmax/10, 46.92 Mflop sont

n´ecessaires pour r´esoudre le premier syst`eme lin´eaire et calculer la base de Krylov W (voir Table 4.6). Quant `a l’algorithme Init-CG, il converge en 18 it´erations (voir Table 4.7), i.e. une r´eduction de 34% compar´ee `a celle du gradient conjugu´e. Le surcoˆut de 46.92 Mflop , pour la construction de la base W avec ChebFilterCG, est rembours´e apr`es seulement trois r´esolutions cons´ecutives (voir Table 4.7).

La table 4.7 montre ´egalement l’impact du changement du niveau du filtrage ε et de la valeur de coupure µ sur le nombre de vecteurs d’amortisse- ment. Pour un certain niveau du filtrage fix´e, nous observons que le nombre de vecteurs d’amortissement (Amor. Vec) ne change pas drastiquement pour l’algorithme Init-CG. Dans tous les cas, l’amortissement du calcul de la base W est tr`es rapide.

En conclusion, quand la s´equence de syst`emes lin´eaires avec la mˆeme matrice et diff´erents second membres est tr`es longue, la strat´egie de choix est de r´esoudre le premier syst`eme `a l’aide de ChebFilterCG, avec un niveau du filtrage ε proche de 10−16 afin de minimiser la taille de la base de Krylov qui en r´esulte, et exploiter ensuite cette base de dimension r´eduite pour l’ensemble des autres r´esolutions. En effet, un niveau du filtrage proche de la pr´ecision machine permet d’obtenir d’une part, une base de Krylov de dimension petite, donc une occupation m´emoire faible, et d’autre part, un coˆut optimal dans l’algorithme Init-CG (ou proche de l’optimal).