Calcul scientifique parallèle
2e édition
Frédéric Magoulès
François-Xavier Roux
Dunod
Avant-proposXI
IntroductionXIII
Chapitre 1 Architectures des calculateurs1
1. Différents types de parallélisme1
1.1 Recouvrement, concurrence et parallélisme1
1.2 Parallélisme temporel et spatial pour les unités arithmétiques3
1.3 Parallélisme et mémoire5
2. Architecture mémoire6
2.1 Mémoire multi-banc entrelacée6
2.2 Mémoire hiérarchisée7
2.3 Mémoire distribuée11
3. Architectures hybrides12
3.1 Accélérateurs graphiques GPU12
3.2 Calculateurs hybrides13
Chapitre 2 Parallélisation et modèles de programmation15
1. Parallélisation15
2. Critères de performance17
2.1 Degré de parallélisme17
2.2 Équilibrage des tâches18
2.3 Granularité19
2.4 Extensibilité19
3. Parallélisme de données20
3.1 Boucles de programmes20
3.2 Dépendance21
3.3 Exemples de dépendance22
3.4 Opérations de réduction24
3.5 Boucles imbriquées25
3.6 OpenMP27
4. Cas particulier : la vectorisation29
4.1 Calculateurs vectoriels et vectorisation29
4.2 Dépendance30
4.3 Opérations de réduction31
4.4 Chaînage des opérations pour des architectures pipe-linées32
5. Tâches communicantes34
5.1 Programmation par échanges de messages34
5.2 Gestion de l'environnement parallèle35
5.3 Échanges de messages point à point35
5.4 Échanges collectifs36
Entraînez-vous
42
Solutions
43
Chapitre 3 Notions d'algorithmique parallèle45
1. Algorithmes parallèles pour les récurrences46
1.1 Principe de la méthode de réduction46
1.2 Surcoût et stabilité de la méthode de réduction47
1.3 Réduction cyclique48
2. Localisation et distribution : produit de matrices49
2.1 Algorithmes par lignes ou par colonnes49
2.2 Algorithmes par blocs50
2.3 Algorithme distribué53
2.4 Mise en oeuvre53
Entraînez-vous
58
Solutions
59
Chapitre 4 Généralités sur l'analyse numérique matricielle61
1. Rappels d'algèbre linéaire61
1.1 Espaces vectoriels, produit scalaire, projection orthogonale61
1.2 Applications linéaires et matrices64
2. Propriétés des matrices67
2.1 Matrices, valeurs propres, vecteurs propres67
2.2 Normes d'une matrice68
2.3 Changements de base70
2.4 Conditionnement d'une matrice71
Entraînez-vous
77
Chapitre 5 Matrices creuses79
1. Origine des matrices creuses79
2. Formation parallèle des matrices creuses : mémoire partagée83
2.1 Formation parallèle par ensemble de points83
2.2 Formation parallèle par ensemble d'éléments83
3. Formation parallèle par blocs des matrices creuses mémoire distribuée84
3.1 Formation parallèle par ensemble de points84
3.2 Formation parallèle par ensemble d'éléments85
Chapitre 6 Résolution des systèmes linéaires89
1. Méthodes directes89
2. Méthodes itératives90
Chapitre 7 Résolution de systèmes linéaires par méthodes LU93
1. Principe de la décomposition LU93
2. Factorisation de Gauss96
3. Factorisation de Gauss-Jordan98
4. Factorisation de Crout et de Cholesky pour des matrices symétriques103
Chapitre 8 Parallélisation des méthodes LU pour les matrices pleines107
1. Factorisation par blocs107
2. Mise en oeuvre de la factorisation par blocs dans un environnement de programmation par échanges de messages111
3. Parallélisation de la descente-remontée115
Entraînez-vous
117
Solutions
120
Chapitre 9 Méthodes LU pour les matrices creuses123
1. Structure de la matrice factorisée123
2. Factorisation symbolique et renumérotation126
3. Arbre d'élimination129
4. Arbre d'élimination et dépendance134
5. Dissections emboîtées135
6. Descente-remontée140
Entraînez-vous
143
Solutions
149
Chapitre 10 Généralités sur les espaces de Krylov155
1. Espaces de Krylov155
2. Construction de la base d'Arnoldi157
Chapitre 11 Méthodes avec orthogonalisation complète161
1. Construction de la base de Lanczos pour des matrices symétriques162
2. Méthode de Lanczos162
3. Méthode du gradient conjugué166
4. Comparaison avec la méthode du gradient169
5. Principe du préconditionnement pour des matrices symétriques définies positives171
Entraînez-vous
174
Solutions
176
Chapitre 12 Méthodes avec orthogonalisation exacte179
1. Méthode GMRES180
2. Cas des matrices symétriques : la méthode MINRES186
3. Méthode ORTHODIR188
4. Principe du préconditionnement pour des matrices non symétriques189
Entraînez-vous
191
Solutions
192
Chapitre 13 Méthodes avec bi-orthogonalisation193
1. Bases de Lanczos bi-orthogonales pour des matrices non symétriques194
2. Méthode de Lanczos non symétrique197
3. Méthode du gradient bi-conjugué : BiCG198
4. Méthode du résidu quasi minimal : QMR201
5. Méthode BiCGSTAB205
Chapitre 14 Parallélisation des méthodes de Krylov211
1. Parallélisation du produit matrice-vecteur plein211
2. Parallélisation du produit matrice-vecteur creux par ensemble de points213
3. Parallélisation du produit matrice-vecteur creux par ensemble d'éléments214
3.1 Rappel des principes du découpage en sous-domaines214
3.2 Produit matrice-vecteur215
3.3 Échanges aux interfaces216
4. Parallélisation du produit scalaire par ensemble d'éléments217
5. Application : gradient conjugué parallèle par ensemble d'éléments218
Chapitre 15 Méthodes de préconditionnement parallèles221
1. Méthodes de factorisation incomplète222
1.1 Principe222
1.2 Parallélisation224
2. Méthode du complément de Schur225
2.1 Préconditionnement localement optimal225
2.2 Principe de la méthode du complément de Schur226
2.3 Propriétés de la méthode du complément de Schur228
3. Méthodes de type multigrille algébrique230
3.1 Préconditionnement par projection230
3.2 Construction algébrique d'une grille grossière231
3.3 Méthode multigrille algébrique233
4. Méthode de préconditionnement de Schwarz additive235
4.1 Principe du recouvrement235
4.2 Méthode multiplicative versus méthode additive236
4.3 Méthode de préconditionnement de Schwarz additive avec partition par ensemble de points237
Entraînez-vous
241
Solutions
243
Bibliographie245
Index251