Résolution des systèmes linéaires -...
Transcript of Résolution des systèmes linéaires -...
Méthodes des Éléments FinisMéthodes des Éléments Finis
Résolution des systèmes linéairesRésolution des systèmes linéaires
Vincent Chiaruttini DMSE / LCME–Vincent Chiaruttini DMSE / LCME–
[email protected]@onera.fr
26 30 novembre 2007 - ENSMP–26 30 novembre 2007 - ENSMP–
Simulation d'un problème de mécaniqueSimulation d'un problème de mécanique
objet dans son environnement
équations locales
½div ¾ = 0¾ = K "
modélisationmodélisationmathématique MMCmathématique MMC
formulation faibleformulation faiblediscrétisations temporellediscrétisations temporelle
et spatialeet spatiale
Problème linéaire ?Problème linéaire ?
ouioui nonnon
méthode de Newton-Raphson
à résoudre : [A] [x] = [b]
Comment résoudre efficacement un système linéaire de Comment résoudre efficacement un système linéaire de grande dimension (10grande dimension (1044 à 10 à 1077) dans un contexte EF ?) dans un contexte EF ?
modèle discrétisé
• Démarche de résolution d'un problème d'évolutionDémarche de résolution d'un problème d'évolution
Méthodes pour la résolution des systèmes linéairesMéthodes pour la résolution des systèmes linéaires
•Méthodes de résolution directes• Gauss-Jordan• Décomposition LU• Cholesky
•Méthodes itératives• Point fixe : Gauss-Seidel, Relaxation, Jacobi• Solveurs de Krylov : Gradient-conjugué et GMRes
•Spécificités des problèmes éléments finis• Matrices creuses• Largeur de bande et renumérotation• Solveurs frontaux
•Parallélisme décomposition de domaine–• Méthode primale et dual• Préconditionneurs
Méthodes de résolution Méthodes de résolution directesdirectes
• Méthodes directesMéthodes directes
• Gauss-JordanGauss-Jordan
• Décomposition LUDécomposition LU
• CholeskyCholesky
• Méthodes itérativesMéthodes itératives
• Point fixePoint fixe
• Solveurs de KrylovSolveurs de Krylov
• Problèmes éléments finisProblèmes éléments finis
• Matrices creusesMatrices creuses
• Largeur de bande Largeur de bande
• Solveurs frontauxSolveurs frontaux
• Décomposition de domaineDécomposition de domaine
• Méthode primale et dualMéthode primale et dual
• Préconditionneurs Préconditionneurs
Méthodes de résolution directesMéthodes de résolution directes
•Objectif
• Trouver la solution de A x = b
•A matrice n x n inversible
•x vecteur inconnu de dimension n
•b "second membre" de dimension n
Coût des méthodes directes : nombre d'opérations
Stabilité : sensibilité à la propagation des erreurs d'arrondi
Méthode de Gauss-JordanMéthode de Gauss-Jordan
•Principe : opérations sur une matrice augmentée pour transformer le bloc de gauche en l'identité
SystèmeSystème Augmentation Transformation Augmentation Transformation
inversion
[A] [x] = [b] [Ajb] [Injx][Ajbi] [Injxi][AjIn]
£InjA¡1
¤[A] [xi] = [bi]
Méthodes de résolution directesMéthodes de résolution directes
•Objectif
• Trouver la solution de A x = b
•A matrice n x n inversible
•x vecteur inconnu de dimension n
•b "second membre" de dimension n
• Se ramener à la résolution de systèmes triangulaires
Coût des méthodes directes : nombre d'opérations
Stabilité : sensibilité à la propagation des erreurs d'arrondi
[ ] [] = []00[ ] [] = []ou
Résolution d'un système triangulaireRésolution d'un système triangulaire
•Écriture du système
•Résolution
•De même pour un système supérieur
•Coût : n² opérations
descente du système
[ ] [] = []0
remontée du système0[ ] [] = []
a11x1 = b1a21x1 + a22x2 = b2...
......
an1x1 + an2x2 + ¢ ¢ ¢ + annxn = bn
x1 = b1a11
x2 = 1a22
(b2 ¡ a21x1)...
......
xn = 1ann
(bn ¡Pnk=1 ankxk)
Décomposition LUDécomposition LU
•Principe• Décomposition en produit d'une matrice triangulaire inférieure (Lower)
et supérieure (Upper)
A=LU (dans cadre général A=PLU où P matrice de permutation)
•Démarche de résolution
• Factorisation
Manque de relations : n² relations pour n²+n inconnues=> termes de la diagonale de L sont fixés à 1
• Résolution après factorisation
•1 montée + 1 descente
nX
k=1
LikUkj = Aij
½Lik = 0; 8i > kUkj = 0; 8j < k
LU x = b ,½
y = U xLy = b
L y = b descente pour trouver yU x = y remonte pour trouver x
Décomposition LUDécomposition LU
•On se place dans le cas où il n'y a pas besoin d'échanges ligne/colonne
•Pour effectuer la factorisation, il suffit d'étudier le résultat de la multiplication LU
Soit à vérifier :
nX
k=1
LikUkj = Aij
Aij = Uij +i¡1X
k=1
LikUkj ; i · j
Aij = LijUij +
j¡1X
k=1
LikUkj ; i > j
Algorithme de Crout pour la décomposition LUAlgorithme de Crout pour la décomposition LU
Coût de la décomposition en nCoût de la décomposition en n33
Boucle sur j de 1 à n
Boucle sur i de 1 à j
Uij à Aij ¡i¡1X
k=1
LikUkj
Boucle sur i de j+1 à n
Lij Ã1
Uij
ÃAij ¡
j¡1X
k=1
LikUkj
!
Méthode de CholeskiMéthode de Choleski
•Hypothèses : A matrice carrée symétrique définie positive
• Symétrique
• Positive
• Définie
•Théorème
• A est carrée symétrique définie positive ssi il existe une matrice L triangulaire inférieure inversible telle que A=LLT
Si on ajoute la condition Lii>0 alors la matrice L est unique.
•Algorithme
Boucle sur i de 1 à n
Boucle sur j de i à n
Lji à 1Lii
³AiJ ¡Pi¡1
k=1 LikLjk´
Lii ÃqAii ¡
Pi¡1k=1 L
2ik
AT = A
8x 2 Rn; xTAx ¸ 0
xTAx = 0) x = 0
Méthode de CholeskiMéthode de Choleski
•Hypothèses : A matrice carrée symétrique définie positive
• Symétrique
• Positive
• Définie
•Théorème
• A est carrée symétrique définie positive ssi il existe une matrice L triangulaire inférieure inversible telle que A=LLT
Si on ajoute la condition Lii>0 alors la matrice L est unique.
•Algorithme
Coût de la décompositionCoût de la décomposition1/3 n1/3 n33 +1/2 n²+1/6 n +1/2 n²+1/6 n
Boucle sur i de 1 à n
Boucle sur j de i à n
Lji à 1Lii
³AiJ ¡Pi¡1
k=1 LikLjk´
Lii ÃqAii ¡
Pi¡1k=1 L
2ik
AT = A
8x 2 Rn; xTAx ¸ 0
xTAx = 0) x = 0
Méthodes de résolution Méthodes de résolution itérativesitératives
• Méthodes directesMéthodes directes
• Gauss-JordanGauss-Jordan
• Décomposition LUDécomposition LU
• CholeskyCholesky
• Méthodes itérativesMéthodes itératives
• Point fixePoint fixe
• Solveurs de KrylovSolveurs de Krylov
• Problèmes éléments finisProblèmes éléments finis
• Matrices creusesMatrices creuses
• Largeur de bande Largeur de bande
• Solveurs frontauxSolveurs frontaux
• Décomposition de domaineDécomposition de domaine
• Méthode primale et dualMéthode primale et dual
• Préconditionneurs Préconditionneurs
Méthodes de résolution itérativesMéthodes de résolution itératives
•Principe• Construction d'une suite de vecteurs tels que :
• En pratique on se donne une initialisation x0
•Définitions • Convergence : une méthode itérative est convergente ssi la suite xn converge vers A-1 b
quel que soit le choix de x0
• Rayon spectral :
• Norme matricielle vérifie : ex :
•Théorème - A carré de dim n, équivalence entre :• La série converge
• La suite converge vers 0
•
•Remarquesi alors et
limn!1
xn = A¡1b
½(A) = supvap(A) j¸jkABk < kAkkBk kAk = supkxk=1 kAxk
P1k=0 A
k
Ak
½(A) < 1
kAk < 1 ½(A) < 1 (I ¡A)¡1 =P1
k=0Ak
Méthodes de point fixeMéthodes de point fixe
•Principe
• Décomposition de A : avec M facilement inversible
• Construction de la suite : avec x0 donné
• Convergence (avec A inversible) si
• Cas particulier : si A et MT+N sym. def. positives alors convergence
•Propriété
• si B= M-1 N
A =M ¡N
Mxn+1 = Nxn + b
kx¡ xnk · kBnkkx¡ x0k
½(M¡1N) < 1
MéthodeMéthode Décomposition Décomposition Convergence Convergence
Gauss-Seidel M = D - L ; N = U si A sym. def. pos. si A à diagonale strict. dominante
Relaxation M = 1/ω D - L Condition nécessaire : 0 < ω < 2successive N = (1-ω)/ω D - U si A sym. def. pos. et 0 < ω < 2
Jacobi M = D ; N = L+U si A à diagonale strict. dominante
Méthodes de point fixeMéthodes de point fixe
• A s'écrit sous la forme
• Critère d'arrêt
• Fiable : courant :
Méthodes applicables en utilisant des décompositions par blocsMéthodes applicables en utilisant des décompositions par blocsJacobi est directement parallélisableJacobi est directement parallélisable
kxn+1 ¡ xnkkxn+1k · ´
kb¡Axn+1kkbk · ´
D-L
-U
Solveurs de KrylovSolveurs de Krylov
• Résidu si xi approximation de Ax=b après i itérations, ri=b-Axi
• Espace de Krylov
• Principe du solveur recherche de xm sous contraintes
• La relation d'orthogonalité permet de définir plusieurs approches
• GMRes
• Gradient conjugué pour les matrices SDPGradient conjugué pour les matrices SDP
Km(A; r0) = Vect¡r0;Ar0; : : : ;A
m¡1r0¢
½xm 2 x0 +Km(A; r0)rm ?? Km(A; r0)
GMRes General Minimun Residual–GMRes General Minimun Residual–
•Pour une matrice quelconque, principe de recherche :
•Soit trouver minimisant •Algorithme
pour j de 0 à m-1 faire
pour i de 0 à j faire
si alors stop sinon finsi
si m=n la méthode converge si m=n la méthode converge en au plus n itérationsen au plus n itérations
la méthode ne calcule pas la méthode ne calcule pas l'approximation de la solution l'approximation de la solution à chaque itérationà chaque itération
½xm 2 x0 +Km(A; r0)rm ? AKm(A; r0)
xm 2 x0 +Km(A; r0) krmk2
r0 Ã b¡Ax0 v0 Ã r0=kr0k2
wj à Avj
h(j+1)j à kwjk2wj à wj ¡ hijvi
vj+1 Ã wj=h(j+1)j
hij à (vi; wj)
krjk2 · ´
xm à x0 + v ym
ym à argminy kkr0k2e1 ¡ hyk
Méthode du gradient conjuguéMéthode du gradient conjugué
•Pour une matrice SDP, principe de recherche :
•Soit trouver : minimisant
•Algorithme
• pour j de 0 à m faire
½xm 2 x0 +Km(A; r0)rm ? Km(A; r0)
xm 2 x0 +Km(A; r0) kxm ¡ xkA
si m=n la méthode converge ensi m=n la méthode converge enau plus n itérationsau plus n itérations
base des résidus orthogonalebase des résidus orthogonalebase des directions de descente est A-orthogonalebase des directions de descente est A-orthogonaleen pratique réothogonalisation complèteen pratique réothogonalisation complète
r0 Ã b¡Ax0 w0 Ã r0
xj+1 Ã xj + ®jwj
rj+1 Ã rj ¡ ®jAwj
wj+1 Ã rj+1 + ¯jwj
®j à (rj ; wj)=(wj ; Awj)
¯j à ¡(rj+1; Awj)=(wj ; Awj)si alors stopkrjk2 · ´
Convergence du gradient conjuguéConvergence du gradient conjugué
•Résultat de convergence du GC
•k : conditionnement de la matrice A :
: rapport entre les |valeurs propres| min et max de A
ConditionnementConditionnement 100100 1 0001 000 10 00010 000
Nombre d'itérations 70 218 690
kx¡ xmkA · 2
Ãpk ¡ 1pk + 1
!mkx¡ x0kA
k =j¸maxjj¸minj
PréconditionnementPréconditionnement
• Mauvais conditionnement
• Effets de structures élancées
• Discrétisations éléments finis défaillantes
• Propriétés physiques trop différentes
• non-linéarités
• ...
• Préconditionnement• remplacer le système de sorte que le conditionnement de P-1A soit meilleur que celui de A
(idéalement P-1 proche de A-1)
• Exemple préconditionneur diagonal
P¡1Ax = P¡1b
Pii = Kii; Pij = 0
Spécificités des problèmes Spécificités des problèmes éléments finiséléments finis
• Méthodes directesMéthodes directes
• Gauss-JordanGauss-Jordan
• Décomposition LUDécomposition LU
• CholeskyCholesky
• Méthodes itérativesMéthodes itératives
• Point fixePoint fixe
• Solveurs de KrylovSolveurs de Krylov
• Problèmes éléments finisProblèmes éléments finis
• Matrices creusesMatrices creuses
• Largeur de bande Largeur de bande
• Solveurs frontauxSolveurs frontaux
• Décomposition de domaineDécomposition de domaine
• Méthode primale et dualMéthode primale et dual
• Préconditionneurs Préconditionneurs
Spécificités des problèmes éléments finisSpécificités des problèmes éléments finis
•Fonctions de forme à support compact
• équations usuelles relient les degrés de liberté qui appartiennent à un même élément
• les systèmes sont de type « bande »
•Largeur de bande
•Application
• ex: pour les solveurs directs
complexité en : n BW²
Comment réduire la largeur de bande ?Comment réduire la largeur de bande ?
2666666666666664
o o oo o o
o o o oo o o
o o oo o o
o o oo o
o oo
3777777777777775
BW=5
valeurs nulles
maxe2EF
max(ddli;ddlj)2DDLe
(indice(ddli)¡ indice(ddlj))
Largeur de bande sur un problème EFLargeur de bande sur un problème EF
22
15
8
1
23
16
9
2
24
17
10
3
25
18
11
4
26
19
12
5
27
20
13
6
28
21
14
7
Mauvais !
RenumérotationRenumérotation
1
2
3
4
5
6
7
8
9
10
11
112
13
14
15
116
17
18
19
20
21
22
23
24
25
26
27
28
Optimale
Solveurs creuxSolveurs creux
• Objectif - ne prendre en compte que les valeurs non nulles
• Gain de mémoire et de temps calcul
• Mise en oeuvre
• Renumérotation pour minimiser le remplissage
• Calcul du remplissage induit par la factorisation
• Factorisation des seuls termes non nuls
Solveur frontalSolveur frontal
•Objectif : assembler et factoriser en même temps
• Intérêts
Lien avec le code EFOptimisation du cache
• Solveurs multifrontauxDissection emboîtéeProgression de plusieurs fronts simultanément
1
2
3
4
5
6
7
8
9
10
11
112
13
14
15
116
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
ÉlémentÉlément Matrice frontaleMatrice frontale DDL éliminés DDL éliminés
1 1 2 5 6 12 2 5 6 3 7 23 5 6 3 7 4 8 3 44 5 6 7 8 9 10 55 6 7 8 9 10 11 6...
ParallélismeParallélismedécomposition de domainedécomposition de domaine
• Méthodes directesMéthodes directes
• Gauss-JordanGauss-Jordan
• Décomposition LUDécomposition LU
• CholeskyCholesky
• Méthodes itérativesMéthodes itératives
• Point fixePoint fixe
• Solveurs de KrylovSolveurs de Krylov
• Problèmes éléments finisProblèmes éléments finis
• Matrices creusesMatrices creuses
• Largeur de bande Largeur de bande
• Solveurs frontauxSolveurs frontaux
• Décomposition de domaineDécomposition de domaine
• Méthode primale et dualMéthode primale et dual
• Préconditionneurs Préconditionneurs
Calculateurs à architecture parallèleCalculateurs à architecture parallèle
ArchitecturesArchitectures• ClusterCluster• SMPSMP• Cluster de SMPCluster de SMP
•
" Exemple - Onera DMSE « petit » cluster
" 182 processeurs (Opteron, Xeon)
" 460 Go RAM
" environ 15 To DD
" performance crête environ 800 Gflops
Red Storm Sandia National Labs–Red Storm Sandia National Labs–
Supercalculateurs parallèlesSupercalculateurs parallèles
212 992 processeurs !212 992 processeurs !596 378 milliards d'opérations par seconde !596 378 milliards d'opérations par seconde !
Décomposition de domaine sans recouvrementDécomposition de domaine sans recouvrement
Problème localProblème local Conditions de raccordConditions de raccord
Problème globalProblème global
,
+
8<:
r ¢ ¾ ¡ f = 0 dans 1;2¾ = A
¡"¢dans 1;2
+ CL sur @ \1;2
8<:
r ¢ ¾ ¡ f = 0 dans
¾ = A¡"¢dans
+ CL sur @ ΩΩ11
ΩΩ22
Γ3
½u1 = u2 sur ¡
3
¾1n1 + ¾
2n2 = 0 sur ¡3
Construction d'un problème condenséConstruction d'un problème condenséaux interfacesaux interfaces
•Choix du type d'inconnue et de CL d'interface• Variable d'interface
• Nature du problème local
•Choix associé du type de condition de raccord• Problème condensé sur l'interface
Méthode primale (BDD)Méthode primale (BDD) Méthode duale (FETI)Méthode duale (FETI)
Conditions de type DirichletConditions de type Dirichlet Conditions de type NeumannConditions de type Neumann
u12 = u1j¡3 = u21 = u2j¡3 ¸12 = ¾1j¡3n1 = ¡¸21 = ¡¾
2j¡3n2
Utilisation des compléments de Schur primaux pour éliminer les DDL internes
Utilisation des compléments de Schur duaux pour éliminer les DDL internesEF EF
¾1j¡3n1 + ¾
2j¡3n2 = 0u1j¡3 = u2j¡3
Préconditionneurs classiquesPréconditionneurs classiques
•Mise en oeuvre de solveurs itératifs de type Krylov
• Problèmes de petites dimensions
• Opérateurs de Schur généralement mieux conditionnés par rapport aux tailles de mailles
•Préconditionneurs efficaces
• Idée : remplacer l'inverse de la somme des contributions locales par la somme des inverses des contributions locales
ex : approche primale
avec
on propose :
complément de Schur primal du domaine s
complément de Schur dual du domaine s
P¡1Spub = P¡1bp Sp =X
s
S(s)p
P¡1 =X
s
S(s)d
Performances des méthodesPerformances des méthodesde décomposition de domainede décomposition de domaine
• Solveur mixte direct/itératif
• Direct en local (réponse des sous-domaines)
• Itératif sur le problème condensé
• Parallélisme à « gros grains »
• Calculs locaux importants (par domaine)
• Peu de communications
• Gradient conjugué efficace
• Peu d'inconnues (vs nombre de total de DDL)
• Préconditionneurs performants
•(indépendants du nombre de sous-domaines)
• Accélérations de convergence pour les problèmes non-linéaires
• Réutilisation des espaces de Krylov précédemment générés par les itérations Newton-Raphson
ExempleExemple
Demi roueDemi roue115 239 degrés de libertés115 239 degrés de libertés
SolveurSolveur T (s)T (s) Mém. (Mio)Mém. (Mio) # itér. # itér. Direct 93 725 0Itératif GC 244 81 504DD 4 SD 130 159 82DD 8 SD 58 82 117DD 12 SD 40 50 133