Parallélisation de GMRES préconditionné par une itération de Schwarz multiplicatif

Dimension: px
Commencer à balayer dès la page:

Download "Parallélisation de GMRES préconditionné par une itération de Schwarz multiplicatif"

Transcription

1 Université de Yaoundé 1 Université de Rennes 1 Département d Informatique Ecole doctorale Matisse Numéro d ordre de la thèse : 3781 Parallélisation de GMRES préconditionné par une itération de Schwarz multiplicatif THÈSE présentée et soutenue publiquement le: 08 Décembre 2008 pour l obtention du Doctorat de l université de Rennes 1 Doctorat/PhD de l université de Yaoundé 1 (spécialité informatique) par ATENEKENG KAHOU Guy Antoine Matricule: 94R326 DEA en Informatique Composition du jury Président : Maurice TCHUENTE Professeur, Université de Yaoundé I Rapporteurs : Luc GIRAUD Professeur, ENSEEIHT de Toulouse Nabil GMATI Professeur, ENIT Tunis Examinateurs : Eric BADOUEL Chargé de Recherche, INRIA Rennes Laura GRIGORI Chargé de Recherche, INRIA Saclay Directeurs : Bernard PHILIPPE Directeur de Recheche, INRIA Rennes Emmanuel KAMGNIA Chargé de cours, Université de Yaoundé I Institut de Recherche en Informatique et Automatisme. Antenne de Bretagne Atlantique

2 A mon père KAHOU Gaston, pour qui je tiens un engagement posthume. i

3 Remerciements Que, ceux nombreux qui ont contribué à l'élaboration de ce travail trouvent ici l'expression de ma profonde gratitude. Je tiens cependant à remercier particulièrement : MM. les Professeurs Luc GIRAUD et Nabil GMATI qui ont accepté de rapporter cette thèse et d'être présents à sa soutenance. Je les remercie aussi pour les remarques judicieuses concernant la pré-version de ce document. MM. le Professeur Maurice TCHUENTE, pour avoir accepté de présider ce jury de thèse. MM. les Professeurs Bernard PHILIPPE et Emmanuel KAMGNIA dont les appuis ont outrepassé l'oce de simple encadrement académique. Mmes Laura GRIGORI et Masha SOSONKINA qui bien que ne faisant pas partir des encadrants de cette thèse m'ont aidé par leurs conseils à réaliser une partie de ce travail. MM. Eric BADOUEL qui a bien voulu examiner cette thèse. Les membres de l'équipe SAGE pour leurs acceuils chaleureux pendant mes diérents séjours à Rennes. Il s'agit de : Jocelyne (la chef), Edouard, Samir, Caroline, Mohammed, Mohammad, Amine et Baptiste. L'INRIA par le projet SARIMA pour avoir nancé cette thèse. Tous les enseignants du département d'informatique de l' Université de Yaoundé 1 en particulier René. Ma mère dont le soutien tout au long de mon curcus académique a toujours été bénéque. Laura, mon épouse pour ses encouragements sans cesse renouvelés. ii

4 Table des matières Remerciements Résumé Abstract Introduction Générale 1 Chapitre 1 Décomposition de domaine algébrique Formalismes et notations Vision équation aux dérivées partielles Denitions et notations pour une décomposition de domaine algébrique Décomposition de domaine sans recouvrement Construction de S à partir de S i Résolution parallèle du système du complément de Schur global Préconditionneur du complément de Schur Décomposition de domaine avec recouvrement Schwarz additif Schwarz multiplicatif Les techniques multi-niveaux Méthodes avec recouvrement à plusieurs niveaux Méthodes sans recouvrement à plusieurs niveaux Conclusion et positionnement Chapitre 2 Forme explicite de Schwarz multiplicatif Introduction Décomposition pour la forme explicite de Schwarz multiplicatif Forme explicite de Schwarz multiplicatif Injection et projection des systèmes Forme explicite du préconditionneur de Schwarz multiplicatif iii ii vi vi

5 2.3.3 Intérêt de la forme explicite Conséquence de la forme explicite de Schwarz multiplicatif Symétrisation de M Approximation de M Essais numériques Comparaison des systèmes préconditionnés par M 1, M 1 1 et M Cas où les A i sont singuliers Les C i sont singuliers Conclusion Chapitre 3 Partitionnement pour la forme 1D de Schwarz multiplicatif Introduction Dénitions et notations Partitionnement 1D Numérotation déduit du partitionnement 1D Construction de la partition initiale Construction d'un arbre à partir du graphe G Partitionnement de T (v) Ajustement de Π Ranement des séparateurs de Π Décomposition de Dulmage-Mendelsohn pour le calcul de Y Mise à jour de la partition Expériences numériques Évaluation de l'algorithme de partitionnement Qualité du produit matrice-vecteur Conclusion Chapitre 4 GMRES parallèle préconditionné par Schwarz multiplicatif Introduction Notions de base Procédé d'arnoldi GMRES séquentiel GMRES parallèle Procédé d'arnoldi parallèle Détermination de la taille appropriée du redémarrage de GMRES(m) GMRES parallèle Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif.. 76 iv

6 4.5.1 Outils de la mise en uvre Distribution des données Produit matrice-vecteur Application de la forme explicite de Schwarz multiplicatif à un vecteur Construction de l'espace de Krylov préconditionné Factorisation QR de l'espace de Krylov Experiences numériques Première classe des matrices Deuxième classe de matrice Conclusion Conclusion Générale 104 Bibliographie 110 v

7 Résumé Cette thèse propose une alternative à la parallélisation de GMRES préconditionné par Schwarz multiplicatif par la technique de coloriage de graphe adjacent à la matrice. Cette parallélisation suppose que le graphe adjacent à la matrice est partitionné selon une direction. A partir de ce partionnement on peut dériver une forme explicite pour l'itération de Schwarz multiplicatif. On utilise cette forme explicite dans un pipeline pour la construction de l'espace de Krylov. On conserve les qualités du pipeline, en évitant d'inserrer les points de synchonisation comme les produits scalaires globaux dans le procédé d'arnoldi. Pour celà, on utilise une version de GMRES qui découple la construction de l'espace de Krylov et la factorisation QR dans le procédé d'arnoldi. Tous ces algorithmes sont implémentés sur le standard PETSc et porte le nom de GPREMS(Gmres PREconditionned by multiplicatif Schwarz). Les tests sont réalisés sur des problèmes issus de la simulation de semi conducteurs et de la mécanique des uides. Cette validation numérique conrme les qualités paralléle de notre code, mais aussi sa compétitivité par rapport aux autres préconditionneur du type décomposition de domaine comme Schwarz additif ou le complément de Schur. Mots-clés: GMRES, préconditionneur, Schwarz additif, Schwarz multiplicatif, complément de Schur, espace de Krylov, factorisation QR, procédé d'arnoldi Abstract This thesis proposes an alternative to the parallelization of GMRES preconditioned by multiplicative Schwarz by the technique of coloring adjacent graph to the matrix. This parallelization implies that the adjacent graph to the matrix is partitioned according to one direction. From this partitioning we can derive an explicit form of spliting of multiplicatif Schwarz. We use this explicit form in a pipeline for the construction of Krylov subspace basis. The qualities of the pipeline are prevent by avoiding a synchronization points due to the dot product in overall process Arnoldi. For this reason, use a version of GMRES which decouples the construction of the space Krylov and QR factorization in the process Arnoldi. All these algorithms are implemented on standard PETSc and bears the name of GPREMS (GMRES PREconditioned by multiplicative Schwarz). The tests are performed on problems arising from the simulation of semi conductors and uid mechanics. This validation conrms the parallel qualities of our code, but also its competitiveness with other preconditioner type domain decomposition as Schwarz additive or additional Schur. Keywords: GMRES, preconditionner, Krylov subspace, QR factorization, Arnoldi process, Schur complement, Additive Schwarz, Multiplicative Schwarz

8 Introduction Générale Les systèmes linéaires d'équations sont au c ur de nombreux problèmes du calcul scientique. Que cela soit en simulation numérique ou dans les domaines assez récents comme la fouille des données. Dans certains cas, la présence du système linéaire est explicite au problème, mais dans de nombreux autres cas ils sont cachés derrière plusieurs équations modélisant un problème physique. L'exemple le plus classique est la résolution d'une équation non linéaire par la méthode de Newton : Dans ce cas, on linéarise l'équation autour de la solution approchée, on résout l'équation linéaire et à partir de la solution, on détermine la nouvelle solution approchée. La linéarisation conduit le plus souvent à des systèmes linéaires dont les coecients nuls sont plus nombreux que les coecients non nuls. Ainsi, lors du stockage de la matrice des coecients du système linéaire, on ne stocke que les éléments non nuls, c'est le stockage creux. Ceci a pour conséquence de faire une économie de mémoire, mais aussi un gain en temps CPU. Malgré cela, trés souvent la partie la plus consommatrice en ressources (mémoire et temps CPU) de l'ordinateur est la résolution des systèmes linéaires même si ces systèmes sont très souvent creux. Dans ce sens, il existe alors une très grande activité visant à résoudre de façon ecace (en réduisant le temps et la mémoire) ces systèmes linéaires sur les ordinateurs. Ces activités se divisent en deux grandes classes de méthodes. Ce sont les méthodes directes et les méthodes itératives. Dans les méthodes directes le nombre d'opérations arithmétiques est connu en avance et est fonction du nombre d'éléments non nuls et la taille de la matrice. Le problème de ces méthodes est qu'elles demandent énormément de ressource mémoire pour réaliser les factorisations. Par exemple dans les problèmes 3D, il est souvent impossible de résoudre les systèmes linéaires par les méthodes directes à cause de la très grande demande de mémoire des facteurs. Dans ce cas on utilise alors les méthodes itératives pour trouver la solution. Dans les méthodes itératives on ne connait pas a priori le nombre d'opérations nécessaires pour obtenir la solution. L'idée est de partir d'une solution initiale x 0 que l'on va chercher à améliorer; ce qui donnera une nouvelle solution approchée, que l'on ane à nouveau, jusqu'a ce que la solution courante soit susamment proche de la solution exacte. Les méthodes itératives se divisent en deux sous classes : les méthodes de relaxation et les méthodes de Krylov. Dans la pratique, les méthodes de relaxation sont utilisées comme accélérateur des méthodes de Krylov. L'un des problèmes des méthodes de Krylov est qu'elles ne convergent pas toujours vers la solution cherchée; en plus, lorsqu'elles convergent, elles le font souvent très lentement (c'est à dire avec un très grand nombre d'itérations). Pour pouvoir accélerer la convergence du solveur itératif du type Krylov, la solution est de préconditionner le système linéaire; c'est à dire à dire de remplacer le système Ax = b par un système de la forme M 1 Ax = M 1 b ou AM 1 Mx = b; avec M 1 une matrice "proche" de l'inverse de A. L'une des dicultés des méthodes du type Krylov est la détermination d'un 1

9 bon préconditionneur M 1 pour la matrice A. Dans un contexte d'ordinateur à un processeur, plusieurs résultats expérimentaux [1, 2] ont montré que les factorisations incomplètes du type ILU sont les préconditionneurs les plus robustes. Dans un contexte d'ordinateur à mémoire distribuée, la mise en uvre des préconditionneurs vise à satisfaire les deux contraintes suivantes : la première est sur la qualité numérique du préconditionneur (c'est à dire sur sa capacité à approcher l'inverse du système). La deuxième contrainte est sur la capacité à appliquer de façon parallèle le préconditionneur à un vecteur. Dans la pratique, il est souvent très dicile qu'un préconditionneur satisfasse ces deux contraintes. De façon générale, plus un préconditionneur est parallèle moindre est sa qualité numérique. Les préconditionneurs issus des techniques de décomposition de domaines pour la résolution des (équation aux dérivées partielles)edp sont celles qui réalisent au mieux ce compromis. Par exemple, on montre dans [1] que les préconditionneurs issus de la décomposition sont plus robustes que les factorisations incomplètes parallèles où les inverses approchés. Les techniques de décomposition de domaine peuvent être considérées comme les techniques de diviser pour régner très souvent utilisées en informatique. Elles consistent à diviser l'ensemble d'étude du problème en sous-ensembles où les solutions du problème seront plus faciles à obtenir. Une fois que la solution est obtenue sur les sous-ensembles, on dénit une stratégie pour construire la solution globale. Dans notre cas, les sous-ensembles seront des sous-ensembles des équations du système linéaire à résoudre. On considéra dans ce manuscrit que les techniques de décomposition de domaine sont utilisées comme préconditionneur des méthodes de Krylov. Si les sous-ensembles ne sont pas disjoints deux à deux, les préconditionneurs sont dits de Schwarz, et selon la façon de construire la solution globale on dira qu'ils sont additif ou multiplicatif. L'intérêt de Schwarz additif est qu'il est complètement parallèle en ce sens que la construction de la solution globale se passe de façon simultanée à partir des solutions dans les sous-domaines. Ceci justie la présence du préconditionneur de Schwarz additif dans tous les solveurs itératifs parallèles [3, 4]. Par contre, Schwarz multiplicatif est de nature séquentielle car la construction de la solution globale se passe de façon successivement sur les sous-domaines. L'objectif de ce travail est alors de proposer une parallélisation de Schwarz multiplicatif. Cette parallélisation passe par une implémentation parallèle de GMRES. Le but est d'obtenir un code de GMRES parallèle préconditionné par Schwarz multiplicatif qui fournisse des résultats dans un temps comparable à celui produit par Schwarz additif. Pour cela, nous allons eectuer les tâches suivantes : Proposer une forme explicite de l'itération de Schwarz multiplicatif. Car dans l'itération classique de Schwarz multiplicatif, il est dicile d'envisager une autre forme de parallélisme que le coloriage de graphe. Ceci fait l'objet du chapitre 2 et a fait l'objet de l'article [5]. Proposer un partitionnement pour la forme explicite. La justication réside dans le fait que la forme explicite de Schwarz multiplicatif suppose un partitionnement spécial du graphe de matrice. Or, ce partitionnement ne pouvant pas être obtenu par les outils classiques de partitionnement de graphe, nous avons construit un outil de partitionnement 1D. Ceci fait l'objet du chapitre 3 et a fait l'objet de l'article [6]. Mettre en uvre une implémentation parallèle de GMRES préconditionné par Schwarz multiplicatif. Cette mise en uvre suppose que Schwarz multiplicatif est inséré dans un pipeline dans la construction de la base de Krylov. Pour cela, il faut éviter d'avoir des points de synchronisation globales entre les processeurs. Pour le faire, nous avons choisi 2

10 d'utiliser la variante parallèle de GMRES [7]. Ceci fait l'objet du chapitre 4, où il sera aussi question de faire des comparaisons avec d'autres préconditionneurs du type décomposition de domaine. Nous conclurons en décrivant comment étendre la méthode de parallélisation que nous avons présentée. Cependant, il convient au préalabe de rappeler les notations ainsi que les notions qui seront nécessaires tout au long de cette thèse, de même que la problématique de la parallélisation de GMRES préconditionné par Schwarz multiplicatif. 3

11 Chapitre 1 Décomposition de domaine algébrique Ce chapitre se veut être une présentation des connaissances et techniques actuellement utilisées en décomposition algébrique de domaines ainsi que leurs utilisations comme accélérateur des méthodes de Krylov. 1.1 Formalismes et notations Vision équation aux dérivées partielles On se situe dans le contexte où on a à résoudre numériquement une équation aux dérivées partielles (EDP) sur un domaine de calcul Ω. Pour le faire, on discrétise le domaine Ω et on exprime l'edp sur le domaine Ω discret. Ceci conduit à résoudre des systèmes linéaires d'équations du type Ax = b (1.1) où A R n n est une matrice non singulière et x R n. Dans le cas où la géométrie de Ω est complexe, il peut être nécessaire de diviser le domaine Ω en sous domaines Ω i (i = 1,..., m) an d'avoir des sous problèmes plus simples à résoudre. Il faut remarquer que la division en sous domaines peut aussi être justiée par la nécessité de traiter l'edp sur un domaine de calcul Ω plus grand [8]. La division de Ω en sous domaines Ω i (i = 1,..., m) peut se faire soit avant le maillage du domaine (en s'appuyant par exemple sur la géométrie de Ω), soit après le maillage(en utilisant un outil de partitionnement du maillage). Dans les deux cas, l'ensemble des sommets du maillage correspondant au sous domaine Ω i (i = 1,..., m) peut se diviser en deux sous ensembles( On notera par Ω la frontière du domaine Ω) : Le premier ensemble noté Γ i correspond à l'ensemble des sommets de la frontière de Ω i qui sont intérieurs à Ω(voir gure 1.2 ). On appellera ce sous ensemble frontière articielle de Ω i. On Γ ij la frontière intérieure entre le sous domaine Ω i et le sous domaine Ω j. Le reste de la frontière de Ω i ( Ω i \ Γ i ) est appelé frontière extérieure de Ω i. Le second ensemble qu'on représentera par I i correspond à l'ensemble des sommets qui n'appartiennent pas à Ω i. On les appellera les sommets intérieurs. On notera par Ω i = Ω i Ω i la fermeture de Ω i. Pour exprimer l'edp sur le domaine Ω, on doit d'abord dénir la contribution de chaque sous domaine Ω i (i = 1,..., m). Pour cela, il faut sur chaque sous-domaine Ω i (i = 1,..., m) exprimer l'edp sur Ω i (i = 1,..., m). Soit A i, la matrice correspondante à la contribution du sous-domaine Ω i à la matrice A. La matrice A i est dénie par l'équation (1.2), où les sommets intérieurs sont 4

12 numérotés en premier. ( AIi I A i = i A Ii Γ i A Γi I i A Γi Γ i ) 1.1. Formalismes et notations 5 La matrice A i R n i n i correspond en fait à la discrétisation de l'edp sur Ω i avec les conditions de Neumann sur Γ i. A partir des contributions locales représentées par l'équation (1.2), on peut construire la matrice globale sur le domaine Ω, en assemblant les contributions locales. Pour cela, on doit dénir les opérateurs de restriction et de prolongation associés à chaque sous-domaine. Soit R i R n i n une matrice rectangulaire qui à tout vecteur x R n retourne un vecteur xωi limité aux indices correspondants à des sommets de Ωi. La matrice R i est une matrice de restriction qui a pour eet de restreindre tout vecteur de R n à la portion correspondant à R n i. La prolongation est l'opération de transposé de la restriction. Elle a pour eet de compléter par zéro à la dimension de A tout vecteur x Ωi R n i. Par conséquent, la prolongation est la transposée de la restriction. En conclusion l'opérateur discret dans Ω est donné par l'équation. A = m i=1 (1.2) R T i A i R i. (1.3) La construction de la matrice A que nous venons de décrire est la même que celle construite par éléments nis. Dans ce cas, les sous domaines correspondent aux éléments élémentaires. Pour parler de décomposition de domaine comme technique de résolution des EDP, il faut à partir des solutions locales aux sous domaines, dénir une stratégie pour construire la solution sur le domaine global. Il existe dans la littérature plusieurs techniques permettant de construire la solution globale sur le domaine Ω à partir des solutions locales. Ces solutions peuvent être classées en deux groupes, selon que la décomposition de Ω en Ω i (i = 1,..., m) est avec recouvrement ou sans recouvrement. Dénition On dit que la décomposition du domaine Ω en Ω i (i = 1,..., m) est sans recouvrement si Ω i Ω j = pour tout i j (voir gure 1.1), elle est avec recouvrement s'il existe i j tel Ω i Ω j (voir gure 1.2). Fig. 1.1 Decomposition de domaine sans recouvrement La démarche que nous venons d'utiliser dans cette section a consisté à partir du domaine Ω pour construire les sous domaines Ω i (i = 1,..., m). L'intérêt de cette démarche peut être justiée par la nécessité de construire des sous domaines Ω i (i = 1,..., m) qui par exemple capteraient au

13 1.1. Formalismes et notations 6 Fig. 1.2 Decomposition de domaine avec recouvrement. Ω i représente les sous domaines mieux des phénomènes de discontinuités sur le domaine Ω. Ce faisant, la technique de résolution de l'edp par décomposition de domaine se comporte numériquement trés bien car elle suit la discontinuité physique [9]. Lorsque que la décomposition du domaine Ω suit la géométrie du domaine, on dit que la décomposition de domaine est géométrique. L'inconvénient majeur des méthodes géométriques est qu'en cherchant essentiellement à capter des phénomènes géométriques sur les sous-domaines, on peut arriver à un déséquilibre de taille entre les sous-domaines. Pour y remédier, on peut aussi construire les sous-domaines Ω i (i = 1,..., m) sur le maillage du domaine Ω en utilisant un outil de partitionnement des mailles comme METIS [10]. Pour étendre les techniques de décomposition de domaine à d'autres types de problèmes que les EDP, on peut appliquer le partitionnement directement à la matrice A de l'équation (1.1). Dans ce cas on dit que la décomposition du domaine est algébrique. Dans la suite de ce manuscrit on supposera que la décomposition de domaine est algébrique. Avant de présenter les techniques proprement de résolution, nous allons dénir quelques notions permettant de bien présenter ces techniques Denitions et notations pour une décomposition de domaine algébrique On suppose que la matrice A de l'équation (1.1) est creuse. Soit G = (V, E) le graphe adjacent à la matrice A. Les arêtes du graphe G seront représentées par le couple (v, u) entre le sommet v et le sommet u. Dénition On appelle partitionnement de la matrice A en m partitions, la division de V en V i (i = 1,..., m) telle que m i=1v i = V et pour 1 i, j m, i j alors V i V j =. Il existe plusieurs logiciels du domaine public comme METIS, SCOTCH [11] qui permettent d'obtenir les partitions V i (i = 1,..., m) de V. Tous ces logiciels fournissent des parties V i qui ont sensiblement la même taille. En d'autres termes, l'objectif principal de ces outils de partitionnement est l'équilibre entre partitions.

14 1.1. Formalismes et notations 7 On peut par la suite diviser l'ensemble des éléments de V i (i = 1,..., m) en deux sous ensembles disjoints Vi I (ensemble des sommets intérieurs à V i ) et Vi E (ensemble des sommets d'interface de V i ). V I i = {v j V i, k((v j, v k ) E v k V i )} (1.4) V E i = {v j V i, v k V l (l i; l = 1,..., m) tel que (v j, v k ) E} (1.5) Où (v j, v k ) E si et seulement si il existe une entrée non nulle en position (j, k) ou (k, j) de la matrice A. A partir des sous ensembles V i (i = 1,..., m) de V on peut déduire la sous matrice A i (voir équation (1.2)) de A restreinte à V i. Comme pour 1 i, j m, i j alors V i V j =, on dit que la décomposition de la matrice est sans recouvrement. Il faut remarquer que la partition du graphe G en V i produit toujours une décomposition sans recouvrement. Mais à partir de la décomposition sans recouvrement, on peut aisement construire une décomposition avec recouvrement en s'appuyant sur les notions élémentaires de graphe. Dénition Adjacence de V i Soit une partie de V. On appelle adjacence de V i dans l'ensemble l'ensemble dénit par : Adj (V i ) = {v l, e lt E avec v t V i } (1.6) On construit à partir des sous ensembles V i (i = 1,..., m) disjoints de V, des sous ensembles W i (i = 1,..., m) non disjoints de V comme suit : W i = V i Adj V \Vi (V i ) (1.7) Il faut remarquer que le recouvrement ici correspond à un niveau de recouvrement. On peut augmenter le niveau de recouvrement en calculant l'adjacence de W i dans V \ W i et en dénissant les ensembles comme à l'équation (1.7). Dans la suite de ce manuscrit lorsqu'on parlera de decomposition avec recouvrement il s'agira d'un niveau de recouvrement. Comme pour la décomposition sans recouvrement de la matrice A, on dénit les sous matrices A i de A en restreignant la matrice A au sous ensemble W i (i = 1,..., m), on dit alors que la décomposition de la matrice est avec recouvrement. Lorsque la décomposition de la matrice sera sans recouvrement, on notera par n i (i = 1,..., m) le cardinal du sous ensemble V i, on aura alors m n i = n. Lorsque la décomposition sera avec recouvrement on notera par t i (i = 1,..., m) le cardinal du sous ensembles W i, ainsi t i = t > n. i=1 Pour terminer cette section, nous devons dénir les opérateurs qui permettent de restreindre tout vecteur x R n à la dimension d'une sous matrice A i (i = 1,..., m) de A et inversement de prolonger un vecteur x i de la dimension de A i à un vecteur de la dimension de A. On suppose que la décomposition de domaine est sans recouvrement. Dénition Soit R i R n i n la matrice denie par : i=1 R i : R n R n i x x i. m

15 1.2. Décomposition de domaine sans recouvrement 8 R i est une matrice rectangulaire formée des zéros et uns qui restreint tout vecteur x R n aux composantes correspondantes aux indices de V i. On appelera cette matrice matrice de restriction. Dénition La prolongation est l'opération de transposition de la restriction. R T i R n n i dénie par : R T i : R n i R n x i x i. L'opérateur de prolongation complète par zéro à la dimension de A le vecteur x i Soit A i = R i AR T i. On peut maintenant décrire les algorithmes de résolutions de l'équation (1.1) en supposant que la matrice est décomposée comme précédemment. 1.2 Décomposition de domaine sans recouvrement Dans cette section, on suppose que les sous domaines sont sans recouvrement. L'idée générale des algorithmes présentés ici est de diviser dans un premier temps l'ensemble des inconnues du système Ax = b en deux sous ensembles. Le premier sous-ensemble qu'on note x I correspond aux inconnues internes aux partitions. C'est l'ensemble des inconnues qui ne permettent pas de lier les équations de domaines diérents entre elles. Le second sous-ensemble qu'on note x E correspond aux inconnues externes aux partitions. C'est à dire aux inconnues qui permettent de lier les équations de domaines diérents entre elles. On peut aussi diviser l'ensemble des sommets V en deux sous ensembles disjoints, V I (sommets internes aux partitions) et V E (sommets d'interface aux partitions). Ce faisant, on écrit l'équation (1.1) sous forme bloc ( AII A IE A EI A EE ) ( xi x E ) = avec A II = R I AR T I, A IE = R I AR T E, A EI = R E AR T I et A EE = R E AR T E. Où R I, R T I, R E et R T E sont les opérateurs de restrictions et de prolongations naturellement dénis à partir des sous-ensembles V I et V E de V. Pour résoudre l'équation (1.8) sur un environnement d'ordinateur parallèle, il sut alors de déterminer plus ou moins séquentiellement d'abord les inconnues correspondantes aux interfaces, c'est à dire x E ; une fois ces inconnues déterminées on les restitue à l'équation (1.8) pour déterminer en parallèle les inconnues correspondantes à x I. On a alors le schéma algorithmique simple suivant : Algorithme 1 Méthodes du complément de Schur 1: On détermine les inconnues correspondantes à x E. 2: Ensuite on subtitue les valeurs de x E à l'équation (1.8) pour déterminer les inconnues x I. ( bi b E ) (1.8) D'après la ligne (1) de l'algorithme 1, on peut déduire que x E vérie l'équation (1.9). Sx E = b E A EI A 1 II avec bi S = A EE A EI A 1 II A IE (1.9)

16 1.2. Décomposition de domaine sans recouvrement 9 Dans la littérature la matrice S porte le nom de complément de Schur. Les méthodes issues de la décomposition de domaine sans recouvrement portent encore le nom de méthodes sous-structurées. Ce nom vient de la mécanique des structures qui est la première communauté à l'utiliser. Lorsque que le complément de Schur (1.9) est explicitement formé, la méthode sera dite sous-structurée directe, car on utilisera une méthode directe pour l'inverser. Il existe une relation très étroite entre ces méthodes et les méthodes multi frontales [12, 8]. Pour établir cette relation, il sut de voir que la matrice S de (1.9) peut être construite à partir de l'assemblage des sous matrices élémentaires S i (i = 1,..., m) associées à chaque sous domaines (voir section 1.2.1). Ainsi, on associe à chaque complément de Schur local c'est à dire à S i une matrice frontale. On peut aussi utiliser une méthode itérative pour résoudre le système du complément de Schur (1.9), la méthode sera dite sous-structurée itérative. La diculté dans ce cas sera alors de pouvoir dénir un bon préconditionneur. Dans les deux cas précédents (sous-structurée ou itérative), la solution de l'équation (1.9) reste dicile à obtenir. Pour les méthodes sous-structurées directes, cela nécessite d'énormes quantités mémoire ( par exemple le cas des problèmes 3D) alors que dans le cas d'une méthode sous-structurée itérative, il est dicile de trouver un bon précondtionneur du complément de Schur S. Par conséquent, dans la pratique on ne peut résoudre l'équation (1.9) à la précision machine. Une approximation de la solution permet alors de déduire un préconditionneur du système global (1.8). Pour le faire, Saad et al [13] proposent dans ce cas de remplacer dans l'équation (1.9) la matrice A 1 II par une approximation. Cette approximation peut être soit une factorisation incomplète de A II, soit quelques itérations d'une méthode de Krylov comme GMRES. A la suite de cette approximation on trouve une approximation du produit du complément de Schur S de l'équation (1.9) avec un vecteur x. Pour la suite de cette section nous allons nous intéresser aux méthodes sous structurées itératives c'est à dire celles qui resolvent le complément de Schur par des méthodes de Krylov. Il faut remarquer que, lorsqu'on utilise une méthode directe pour inverser le complément de Schur approché, on obtient au niveau du système global un préconditionneur du type forme de factorisation ILU incompléte. Avant de commencer à présenter quelques préconditionneurs de S nous allons d'abord montrer comment construire la matrice S à partir des sous-matrices S i (i = 1,..., m) Construction de S à partir de S i Comme pour la matrice A, on peut décomposer la sous-matrice A i (i = 1,..., m) sous forme bloc comme suit : ) (1.10) ( AIi I A i = i A Ii E i A Ei I i A Ei E i par conséquent, le complément de Schur associé est S i = A Ei E i A Ei I i A 1 I i I i A Ii E i. On peut alors voir les sous matrices S i comme des contributions élémentaires à la matrice S et comme pour l'équation (1.3) l'assembler par l'équation (1.11). S = m i=1 R T E i S i R Ei. (1.11) Où R Ei et R T E i sont les opérateurs de restriction et de prolongation naturellement dénis à partir de V Ei et V Ii. Une autre approche de construction de S est celle utilisée dans [4]. Elle consiste

17 1.2. Décomposition de domaine sans recouvrement 10 à rénuméroter les lignes des partitions V i (i = 1,..., m) de V selon la dissection emboîtée. On numérote les partitions l'une après l'autre en tâchant de renuméroter d'abord les sommets internes puis ceux à l'interface. Exprimé sous forme de bloc, le système d'origine (1.1) devient : A I1 I 1 A I1 E 1 A E1 I 1 A E1 E 1 A E1 E 2 A E1 E m A I2 I 2 A I2 E 2 A E2 E 1 A E2 I 2 A E2 E 2 A E2 E m A Im I m.. A Im E m A EmE 1 A EmE 2 A EmI m A EmE m x I1 x E1 x I2 x E2.. x Im x Em = En écrivant les équations à chaque sous-domaine i on obtient le système suivant : b I1 b E1 b I2 b E2.. b Im b Em. (1.12) A Ii I i x Ii + A Ii E i x Ei = b Ii A Ei I i x Ii + A Ei E i x Ei + A Ei E j x Ej = b Ei (1.13) j N i Dans l'équation (1.13), N i représente le nombre de partitions voisines de la partition i. En exprimant x Ii en fonction de x Ei dans (1.13), on déduit que : S i x Ei + j N i A Ei E j x Ej = b Ei A Ei I i A 1 I i I i b Ii (1.14) avec S i = A Ei E i A Ei I i A 1 I i I i A Ii E i qui représente le complément de Schur 'local' à la partition i. En exprimant pour chaque partition i (i = 1,..., m) l'équation (1.14) on obtient le système suivant correspondant aux interfaces. S 1 A E1 E 2 A E1 E m A E2 E 1 S 2 A E2 E m A EmE1 A EmE2 S m x E1 x E2.. x Em = f 1 f 2.. f m. (1.15) avec f i = b Ei A Ei I i A 1 I i I i b Ii. L'équation ( 1.15) représente le complément de Schur global composé de tous les compléments de Schur locaux S i. Dans la suite du travail, lorsqu'on parlera de complément de Schur global, il s'agira de la matrice de l'équation (1.15). La proposition suivante [2] permet d'établir des rélations entre le complément de Schur (1.15) et la matrice d'origine. Proposition Soit A une matrice non singulière partitionnée en m partitions telle que les sous matrices A Ii I i (i = 1,..., m) soient inversibles. Posons n I la taille totale des sommets intérieurs aux partitions et n E la taille totale des sommets à l'extérieur des partitions. Soit R E l'opérateur de restriction

18 1.2. Décomposition de domaine sans recouvrement 11 ( associé aux lignes d'interface de la matrice A, c'est à dire x R E y les propositions suivantes sont vraies : 1. Le complément de Schur S est inversible. 2. Si A est symétrique dénie positive alors S l'est aussi. ( ) 3. Pour tout y, 0 S 1 y = R I A 1 y ) = y avec y R n E. Alors Le troisième point de la proposition (1.2.1) (3 proposition 1.2.1) montre que, le coût de l'action de S 1 à un vecteur est identique à la résolution d'un système linéaire avec A. Ce système linéaire correspond à la résolution d'un problème discret sur Ω avec les conditions de Neumann sur l'interface. Nous allons maintenant présenter quelques techniques permettant de résoudre le système d'équations (1.15) Résolution parallèle du système du complément de Schur global Il s'agit ici de décrire comment résoudre le système du complément de Schur par les méthodes de Krylov. Il faut noter que dans ce cas, on n'a pas nécessairement besoin de former explicitement le complément de Schur S. Ce qui importe c'est de pouvoir réaliser le produit de S par un vecteur x et la construction de préconditionneur pour S. On supposera pour la suite que l'on dispose d'autant de processeurs que de sous domaines m. Application du complément de Schur à un vecteur Le produit du complément de Schur S par un vecteur x se passe en deux phases : 1. La première phase est une phase de communication entre les processeurs. Il s'agit alors pour chaque processeur de recevoir les indices du vecteur x qui sont en relation avec les lignes de la matrice S détenues par ce processeur. Il s'agit alors d'appliquer R Ei au vecteur x. 2. La deuxième phase consiste à appliquer le complément de Schur local S i au sous vecteur x i. L'algorithme 2 décrit comment le réaliser. 3. Pour terminer, on revient encore à la phase de communication. Dans ce cas le processeur i envoie aux processeurs qui lui sont voisins sa contribution aux produits. Ceci est réalisé par l'application de R T E i au vecteur x i. Algorithme 2 Calcul du produit S i x i = y i 1: Entrée : A Ii I i, A Ei I i, A Ii E i, A Ei E i (i = 1,..., m),x i 2: Result : y i 3: x i = A E i I i x i 4: Resoudre l'équation A Ii I i z i = x i 5: y i = A Ii E i z i + A Ei E i x i La ligne (4) de l'algorithme 2 consiste à résoudre un système linéaire. Si la méthode sous structurée itérative vise à être utilisée comme solveur du système (1.1), alors on doit résoudre à la précision machine le système à la ligne (4) de l'algorithme 2. Sinon si elle vise à être utlisée comme préconditionneur du système (1.1) alors le système est résolu approximativement.

19 1.2. Décomposition de domaine sans recouvrement Préconditionneur du complément de Schur Nous avons au début de cette section mentionné que les méthodes sous-structurées itératives dévéloppées ici viseront à construire des approximations de l'inverse de A. Dans ce sens la meilleure approximation sera obtenue lorsque le complément de Schur sera resolue de façon plus précise. Pour le faire, il est alors necessaire de dénir les préconditionneurs pour le complément de Schur. Nous allons présenter ici les préconditonneurs du complément de Schur qui sont construits sans avoir besoin des informations sur la géométrie du domaine. Bloc Jacobi Il s'agit de considérer comme préconditionneur de S sa partie bloc diagonale constituée des matrices S i (i = 1,..., m). Le préconditionneur dans ce cas est déni par l'équation (1.16). M 1 S = S 1 1 S S 1 m (1.16) Il faut remarquer que pour appliquer la matrice M 1 S à un vecteur, on n'a pas besoin de former explicitement les matrices Si 1 (i = 1,..., m) [14, 2, 13]. En eet on sait que ( A 1 I A 1 i = I i I i A Ii E i 0 I ) ( A 1 I i I i 0 0 S 1 i ) ( I ) 0 A Ei I i A 1 I i I i I En réalisant le produit des matrices de l'équation (1.17), il s'ensuit que : et par conséquent, A 1 i = ( S 1 i ), Si 1 v = ( 0 I ) ( A 1 0 i I (1.17) ) v. (1.18) L'équation (1.18) veut tout simplement dire que pour appliquer Si 1 à un vecteur v, ( on'a) pas besoin de former explicitement S i. On a simplement besoin de résoudre le système x A i = y ( ) 0 v. Ce système linéaire correspond encore à celui obtenu lorsqu'on résout un problème discret sur un sous domaine Ω i avec les conditions de Neumann sur les frontières intérieures. Compte tenu du fait qu'il n'y a pas d'échange d'informations entre les diérents compléments de Schur locaux, l'algorithme du bloc Jacobi ne se comporte pas souvent bien comme préconditionneur [8]. Saad et al [14] proposent alors de remplacer bloc Jacobi par Schwarz additif. On y reviendra dans la section des décompositions avec recouvrement. Factorisation incompléte du type ILU Il s'agit dans ces méthodes de construire une factorisation incomplète de S sans avoir à explicitement former la matrice S. Ces factorisations incomplètes sont utilisées alors comme préconditionneur du complément de Schur S.

20 1.2. Décomposition de domaine sans recouvrement 13 Proposition Soit M A = L A U A une factorisation incomplète de la matrice A. A partir de cette factorisation incomplète de A on peut construire une factorisation incomplète de S sans former explicitement S. Posons M S cette factorisation incomplète de S, avec M S = L S U S. Alors les facteurs vérient : L S = R E L A R T E et U S = R E U A R T E. Preuve. La preuve de cette proposition se trouve dans [2] page 385. Une conséquence de cette proposition est qu'on peut utiliser une factorisation incomplète parallèle de A pour déduire une factorisation incomplète de S. Pour cela, il sut de voir que A = L A U A R(R reste de A sur la factorisation incomplète) avec L A = U A = L I1 I 1 L I2I2... L ImI m A I1 E 1 U 1 I 1 I 1 A Im E m U 1 I mi m U I1 I 1 L 1 I 1 I 1 A E1 I 1 U I2 I U ImI m L S L 1 I m I m A EmI m U S L Ii I i et U Ii I i représentent les facteurs L et U de A Ii I i qui peuvent être calculés en parallèle ainsi que les produits L 1 I i I i A Ei I i et A Ii E i U 1 I i I i. En conclusion S i = C i A Ii E i U 1 I i I i L 1 I i I i A Ei I i est l'approximation du complément de Schur local. On utilise cette approximation des compléments de Schur locaux pour calculer la factorisation incomplète de S à l'équation (1.15). Neumann-Dirichlet La présentation de ce préconditionneur ainsi que le suivant s'inspire de [8]. Supposons que le nombre de sous-domaines est m = 2 et que ces sous domaines ont la même taille. Le préconditionneur du type Neumann-Dirichlet consiste à prendre comme préconditionneur de S l'un des compléments de Schur locaux c'est à dire par exemple S1 1. Ainsi, si S = S 1 + S 2 comme à l'équation (1.3), alors la méthode de Krylov va itérer sur la matrice (I + S1 1 S 2). C'est à dire qu'on va résoudre le système (I + S1 1 S 2)x E1 = S1 1 f E 1. En conclusion une itération de la méthode de Krylov va consister à resoudre un problème de Dirichlet sur le sous-domaine Ω 2 suivi d'un problème de Neumann sur le sous domaine Ω 1 (voir équation (1.18)). On peut aisément étendre cette notion à plusieurs sous domaine. Pour cela, il faut réaliser un coloriage rouge-noir du graphe quotient des partitions. Lorsque la partition est coloriée en noir on mettra son indice dans une ensemble N, lorsqu'elle le sera en rouge, on mettra son indice dans R. Le préconditionneur sera alors la somme des inverses des partitions coloriées en noir. C'est à dire M 1 S = i N R T E i S 1 i R Ei (1.19)

21 1.3. Décomposition de domaine avec recouvrement 14 Neumann-Neumann Dans ce cas, le préconditionneur de S = S 1 + S 2 est la somme des inverses des compléments de Schur locaux c'est à dire M 1 S = S1 1 + S2 1. En conclusion la méthode de Krylov va itérer sur la matrice (2I +S1 1 S 2 +S2 1 S 1) qui correspond à resoudre deux problèmes de Dirichlet ainsi que deux problèmes de Neumann. On peut aussi généraliser ce préconditionneur à un nombre quelconque de sous-domaines. Si on pose par D une matrice diagonale telle que D ii représente le nombre de sous-domaines qui se partagent le sommet i. Ce préconditionneur s'écrit alors M 1 S = m i=0 D 1 R T E i S 1 i R Ei D 1 (1.20) Il est dicile de comparer ces diérents préconditionneurs du complément de Schur. Mais il faut néanmoins savoir que dans le cas de Neumann-Dirichlet et Neumann-Neumann, lorsqu'on augmente le nombre de sous-domaines, on détériore la qualité numérique du préconditionneur [8]. 1.3 Décomposition de domaine avec recouvrement Les méthodes de décomposition de domaine avec recouvrement portent encore le nom des méthodes de Schwarz, car elles ont été introduites pour la première fois par Schwarz en 1870 dans [15]. Soit W i V (i = 1,..., m), une décomposition avec recouvrement de V; c'est à dire que l'intersection entre W i et W j n'est pas nécessairement vide. Pour la construction des W i (i = 1,..., m), voir équation (1.7). Nous représentons par R i et R T i les opérateurs de restriction et de prolongation naturellement dénis à partir des sous ensembles W i de V. Contrairement aux méthodes sans récouvrement, les méthodes de Schwarz sont des méthodes itératives. On note pour cela par x n la nième itération du vecteur solution x et par r n = b Ax n le résidu correspondant. Dans les méthodes de Schwarz la correction du vecteur x n par le résidu r n est réalisée en projectant r n sur chaque sous-domaine W i. Si cette projection est faite de façon simultannée sur les sous-domaines la méthode de Schwarz est dite additive, si elle se fait successivement sur les sous-domaines elle sera dite multiplicative Schwarz additif Posons Une itération de Schwarz additif est dénie par l'équation (1.21) suivante : x n+1 = x n + m i=1 M 1 AS = m i=1 R T i A 1 i R T i A 1 i R i r n (1.21) R i (1.22) A partir de l'équation (1.21) on peut déduire que x n+1 = (I M 1 AS A)xn + M 1 ASb où I est la matrice identité. On sait que pourqu'une telle suite converge il faut que le rayon spectral de la matrice I M 1 1 ASA (ρ(i MASA) < 1) soit inférieur à 1. Quand la matrice A est symétrique dénie positive ou est une M-matrice, Frommer et al ont montré que l'itération de Schwarz additif converge [16]; dans d'autre cas, la convergence n'est pas garantie. Même lorsque l'itération (1.21) converge, elle converge assez lentement. En conséquence on l'utilise comme préconditionneur des méthodes de Krylov. La matrice M 1 AS va représenter dans la suite ce préconditionneur.

22 1.3. Décomposition de domaine avec recouvrement 15 Remarque Lorsque que la matrice A est symétrique ou symétrique dénie positive, M 1 AS l'est aussi. 2. Quand la décomposition de la matrice est sans recouvrement, l'itération de Schwarz additif correspond à bloc Jacobi. L'application de M 1 AS à un vecteur x ( M 1 ASx) se réalise de façon purement parallèle en supposant qu'à chaque sous domaine correspond un processeur. Cette application de M 1 AS à un vecteur nécessite deux phases de communications entre processeurs. La première phase de communication correspond à obtenir pour chaque processeur les valeurs du vecteur x sur le recouvrement. Ceci correspond exactement à appliquer la matrice de restriction R i au vecteur x. A la suite de ceci on résout le système local A i y i = x i au niveau de chaque processeur. Pour pouvoir sommer les contributions locales, il est nécessaire pour chaque processeur de recevoir de ses voisins la partie recouverte du vecteur et d'envoyer à ses voisins la partie recouverte. Ainsi, au niveau de chaque processeur se réalise une opération de réception et envoi. Ceci correspond encore à l'application de la matrice R T i au sous vecteur x i. C'est la deuxième phase de communication dans l'application de M 1 AS à un vecteur. Dans un environnement d'ordinateur distribué, la deuxième phase de communication peut être trés coûteuse en temps. Pour pouvoir gagner en temps, Cai et al [17] ont proposé de limiter les communications à la première phase. Ceci correspond alors dans l'équation (1.22) de remplacer R T i par R i. Où R i est l'opérateur de prolongation associé à V i (i = 1,..., m) qui sont les parties sans recouvrement des W i (i = 1,..., m). Cette version de Schwarz additif est dite restrictive. L'expression du préconditionneur dans ce cas est donnée par l'équation (1.23) M 1 RAS = m i=1 R T i A 1 i R i (1.23) Il faut remarquer que si la matrice A est symétrique, la matrice M 1 RAS ne l'est pas toujours. Dans certains cas, le système préconditionné par M 1 RAS converge plus rapidement que le système préconditionné par MAS, 1 ceci avec la moitié du volume de communication. Pour illustration, voir les exemples dans [17]. Toutes les variantes de Schwarz additif que nous venons de présenter supposent que sur les sous-domaines, on résout les sous problèmes à la précision machine (par exemple en utilisant un solveur directe ). Dans la pratique ce n'est pas le cas. On remplace généralement ce solveur exact sur les sous-domaines soit par des factorisations incomplètes [2, 13] ou des inverses approchés [13], soit en réalisant quelques itérations d'une méthodes de Krylov [3]. Dans le cas où on utilise une méthode itérative sur les sous-domaines, il est important que les solutions soit de la même précision. Car sinon entre deux itérations externes on change le préconditionneur. Il faut remarquer que, la nécessité de résoudre de façon approximative l'équation sur les sous-domaines est justiée par les deux aspects suivants : 1. L'itération de Schwarz étant utilisée comme préconditionneur, les matrices de préconditionnement doivent être une approximation de l'inverse de A facile à obtenir. 2. Dans certains cas comme les problèmes 3D, il est impossible de réaliser la factorisation LU des sous-domaines A i sur les n uds de calcul de l'ordinateur distribué. Ceci à cause de

23 1.3. Décomposition de domaine avec recouvrement 16 l'important besoin en mémoire que nécessite les factorisations LU des A i. Il faut noter que cette approximation de l'inverse a pour eet de détériorer la qualité du préconditionneur. On peut aussi utiliser les techniques du complément de Schur pour approcher la solution sur les sous domaines [14]. Supposons encore que la matrice A i s'exprime comme l'équation (1.24). ( AIi I A i = i A Ii E i A Ei I i A Ei E i ) (1.24) Supposons de plus que l'on dispose d'une factorisation incomplète du bloc A Ii I i L Ii I i U Ii I i de A i, alors d'après la proposition on a les relations suivantes : ( ) ( L Ii I A i i 0 UIi A Ei I i U 1 I i L 1 ) I i I i A Ei I i I i I i I 0 S Ei E i ( ) ( ) ( L Ii I = i 0 I 0 UIi A Ei I i U 1 I i L 1 ) I i I i A Ei I i I i I i I 0 S Ei E i 0 I L i D i U i ( ) ( ) ( L Ii I i 0 A Ei I i U 1 I i I i I, I 0 Di = 0 S et UIi I Ui = i L 1 I i I i A Ei I i Ei E i 0 I ). En conclu- Avec L i = sion, si on subtitue A i à l'équation (1.23), on obtient l'expression suivante : M 1 m SRAS = (R T i Ui 1 i=1 R i )( R T i D 1 i R i )( R T i L 1 i R i ) (1.25) On peut noter que dans l'expression (1.25), résoudre le système avec D i correspond à résoudre un complément de Schur. Dans l'expression (1.25), les opérateurs et ( R T i L 1 i R i ) et ( R T i U i 1 R i ) sont considérés comme les opérateurs de restriction et de prolongation associés aux sous-ensembles W i. On peut résoudre le complément de Schur à l'équation (1.15) en utilisant la version restrictive de Schwarz additif comme présenté à l'équation (1.25). A partir de cela on déduit [14] un préconditionneur pour le système global présenté par l'équation (1.26) suivante : M 1 m SchurRAS = (R T i Ui 1 R i )(R T i Di 1 i=1 R i )(R T i L 1 i R i ) (1.26) Il faut remarquer que SRAS et SchurRAS nécessitent le même volume de communication et ont sensiblement le même coût de calcul. Il existe en domaine libre plusieurs logiciels qui implémentent ces diérentes versions de Schwarz additif. La forme classique et la forme restrictive(ras) sont développées dans Petsc [3, 4] alors que SchurRAS n'est implémenté que dans [4] Schwarz multiplicatif Soit x n+1,i le vecteur x n+1 corrigé par le sous domaine i, et r n+1,i le résidu correspondant. L'algorithme 3 présente une itération de Schwarz multiplicatif. avec x n+1,0 = x n et r n+1,0 = r n.

24 1.3. Décomposition de domaine avec recouvrement 17 Algorithme 3 Itération de Schwarz multiplicatif appliquée à un vecteur x n 1: Entrée : x n ; r n 2: Sorties : x n+1 ; r n+1 3: x n+1,0 = x n, r n+1,0 = r n 4: pour i = 1,..., m faire 5: x n+1,i = x n+1,i 1 + R T i A 1 i 6: r n+1,i = b Ax n+1,i 7: n pour 8: x n+1 = x n+1,m, r n+1 = r n+1,m Posons Q i = R T i A 1 i R i r n+1,i 1 R i. L'algorithme 3 conduit à l'équation (1.27) suivante : x n+1 = x n + (I (I Q m A)...(I Q 1 A))A 1 r n (1.27) Où I est la matrice identité. Posons pour la suite M 1 MS = (I (I Q ma)...(i Q 1 A))A 1 (1.28) A partir de l'équation (1.27) on déduit que x n+1 = (I M 1 MS A)xn + M 1 MS suite converge, il faut que le rayon spectral de la matrice d'itération I M 1 MS b. Pour qu'une telle A (ρ(i M 1 MS A) < 1) soit inférieur à 1. Les cas de convergence de cette itération ont été prouvés dans [18] pour les matrices dénies positive ou pour les M matrice. Comme pour Schwarz additif, cette suite converge généralement très lentement et dans certains cas ne converge pas du tout. Dans la pratique on l'utilise comme préconditionneur des méthodes de Krylov. En plus, même si le rayon spectral est supérieur à 1. Philippe et al [19] ont montré qu'on peut toujours utilisé l'itération de Schwarz multiplication comme préconditionneur d'une méthode de Krylov. A cause de la présence A 1 dans l'expression de M 1 MS en l'équation (1.28), on n'utilise pas directement cette expression quand on veut appliquer ce préconditionneur à un vecteur. Dans la pratique, on réalise habituellement une itération de l'algorithme 3 pour appliquer un vecteur à MMS. 1 Nous allons donner une expression explicite et calculable de M 1 MS dans le chapitre suivant. Il faut remarquer que contrairement à Schwarz additif, M 1 MS ne garde pas la symétrie de A. Pour symétriser MMS, 1 on réalise une passe supplémentaire de l'algorithme 3 cette fois en partant du dernier sous-domaine vers le premier. On obtient alors l'algorithme 4. La matrice M 1 MS va représenter pour la suite le préconditionneur de Schwarz multiplicatif. Algorithme 4 Symétrisassions de l'itération de Schwarz multiplicatif appliquée à un vecteur x n 1: Entrée : x n ; r n 2: Sorties : x n+1 ; r n+1 3: pour i = 1,..., m faire 4: x n+1,i = x n+1,i 1 + R T i A 1 i 5: r n+1,i = b Ax n+1,i 6: n pour 7: pour i = m 1,..., i faire 8: x n+1,i = x n+1,i+1 + R T i A 1 i 9: r n+1,i = b Ax n+1,i 10: n pour R i r n+1,i 1 R i r n+1,i+1

25 1.3. Décomposition de domaine avec recouvrement 18 On montre dans [20, 21] que lorsque la décomposition de domaine est sans recouvrement, une itération de Schwarz multiplicatif correspond à une itération de bloc Gauss-Seidel. Contrairement à Schwarz additif qui est purement parallélisable, Schwarz multiplicatif est une itération a priori séquentielle entre les sous domaines. Nous avons vu en eet que la mise à jour de la solution se passe de façon successive sur les sous domaines. Pour paralléliser cette itération on utilise souvent les techniques de coloriage des graphes. Il existe plusieurs résultats [8, 22] sur la qualité numérique des systèmes préconditionnés par les méthodes de Schwarz. Ci dessous quelqu'uns de ces résultats : 1. Si le nombre de sous-domaines augmente et que la taille de la matrice reste xe, alors on détériore la qualité numérique du système préconditionné par une méthode de Schwarz. 2. Si on maintient la taille des partitions xe tout en augmentant la taille des recouvrements entre sous-domaines, alors on améliore les qualités numériques du système préconditionné par une méthode de Schwarz. 3. Le système préconditionné par Schwarz additif est généralement plus lent (en terme d'itération) que celui préconditionné par Schwarz multiplicatif. On va maintenant décrire comment paralléliser les itérations de Schwarz multiplicatif. Dénition Coloriage de graphe On appele k-coloriage du graphe G = (V, E), la possibilité de colorier l'ensemble V des sommets du graphe G en k couleurs telles que deux sommets v i et v j ont la même couleur s'il ne se partagent pas une arête de G. La gure suivante montre un exemple de 4 coloriage des sous-domaines. Soit G = (V, E ) le Fig Coloriage des sous domaines graphe quotient aux partitions V i ; avec V = {1,..., m} correspondant à l'ensemble des indices des partitions et E l'ensemble des arêtes entre les partitions, tel que (v i,v j ) E s'il existe une arête entre un sommet de V i et un sommet de V j. Supposons que le K-coloriage de G' est réalisable. On note par C j (j = 1,..., K) les couleurs correspondantes. Comme les partitions de même couleurs (éléments de C j ) ne se partagent pas d'arrête, alors dans l'itération de l'algorithme 3 on peut mettre à jour de façon simultanée le vecteur x n dans les partitions appartenant à la même couleur. Ceci conduit à l'algorithme 5 suivant :

26 1.4. Les techniques multi-niveaux 19 Algorithme 5 Schwarz multiplicatif avec coloriage 1: Entrée : x n ; r n,k 2: Sorties : x n+1 ; r n+1 3: pour j = 1,..., K faire 4: x n+1,j = x n+1,j 1 + RT i A 1 i R i r n+1,j 1 i C j 5: r n+1,j = b Ax n+1,j 6: n pour On peut observer qu'au niveau de chaque couleur on applique Schwarz additif et entre couleurs on applique Schwarz multiplicatif. Autrement dit, l'algorithme précédent correspond exactement à Schwarz multiplicatif sur un nombre de K partitions. Ces partitions correspondent aux sous-ensembles C j (j = 1,..., K) de V. Dans ce cas la qualité de convergence dépendra du nombre de couleurs K. Dans [22] on montre que plus petit est le nombre de couleur, mieux est le préconditionneur. Comme le problème de coloriage d'un graphe avec un nombre minimum de couleur est NP [23], on ajoute souvent des couleurs extra pour avoir une taille des sous domaines quasi-identique. Sur un autre point, puisque le coloriage est fait sur le graphe quotient G aux partitions, il arrive généralement que le nombre minimum de couleurs pour colorier G soit égale au nombre de partitions m. Ceci parce que dans la plupart des cas, le graphe quotient G est complet (c'est à dire entre deux sommets quelconques de G il existe une arrête). En conclusion on retient que bien que les qualités numériques de M 1 MS soient supérieures à celles de Schwarz additif, il reste dicile à mettre en oeuvre sur un environnement paralléle. Cette diculté est à l'origine de l'absence du préconditionneur de Schwarz multiplicatif dans les solveurs parallèles comme PETSc [3] et parms [4]. 1.4 Les techniques multi-niveaux La diculté principale de toutes les méthodes que nous avons présentées jusque là est que ces méthodes agissent toutes de façon locale sur la solution. Lorsqu'on applique un de ces préconditionneurs à un vecteur, cela a pour eet de ralentir le passage de l'information entre les sous-domaines. Ainsi, lorsqu'on augmente le nombre de sous-domaines on dégrade la convergence de la méthode. Par exemple, pour la méthode de Neumann-Neumann le conditionnement du système est de l'ordre de O(1 + log(h/h) 2 )/H 2 (voir [24]) où h est la taille des mailles et H est la moyenne des diamètres des sous domaines. Si on augmente le nombre de sous domaines alors de façon logique on réduit H, par conséquence H 1 augmente, c'est à dire le conditionnement du système augmente. Cette augmentation du conditionnement a alors pour eet d'augmenter le nombre d'itérations de la méthode de Krylov. Une autre compréhension d'un tel problème c'est de voir que pour que l'information concernant une entrée du membre droite de l'équation soit transmise à un autre point(ce qui est le cas lorsqu'on utilise une méthode de Gauss pour résoudre un système d'équations), il doit passer par les sous domaines intermédiaires. En conséquence lorsqu'on augmente les sous domaines il faudra alors plusieurs itérations pour transmettre cette information entre sous domaine. On est donc en face d'un dilemme : en augmentant le nombre de sous domaines(processeurs) pour pouvoir réduire le temps de résolution, on augmente aussi le nombre d'itérations. Une

27 1.4. Les techniques multi-niveaux 20 solution à ce problème est de doter ces préconditionneurs d'un mécanisme de communication globale de l'information à chaque itération [21, 8, 22]. Ceci est possible en ajoutant une autre grille grossière à celle qui a permis de construire la matrice A. Ces techniques portent le nom de multiniveaux. Pour notre présentation de ces méthodes nous allons nous limiter à deux niveaux comme à la gure 1.4 où les traits en gras limitent les grilles grossières alors des les tirets séparent les grilles nes. Il faut noter qu'on peut bien utiliser de façon recursive, le même principe de deux niveaux pour générer K niveaux avec K > 2. Fig. 1.4 Deux grilles Méthodes avec recouvrement à plusieurs niveaux On suppose qu'on dispose de deux grilles de maillage pour le même opérateur. Une grille ne et une grille grossière. Ainsi on a deux systèmes linéaires l'un sur la grille ne qu'on notera par A F x F = b F (1.29) et l'autre sur la grille grossière A G x G = b G (1.30) Supposons qu'on dispose de l'erreur sur la grille grossière e G. On peut interpoler linéairement cette erreur de façon à l'utiliser comme correction sur la grille ne. Une fois que le résidu est connu sur la grille ne, on peut l'utiliser pour approximer le résidu sur la grille grossière. Si on pose R la matrice de restriction de la grille ne vers la grille grossière, la transposé R T sera l'opérateur d'interpolation linéaire de la grille grossière vers la grille ne. En conclusion on peut écrire que la correction de la solution sur la grille ne par la grille grossière [21, 8, 22] sera donnée par l'équation suivante : x F = x F + R T A 1 G R(b F Ax F ) (1.31) Il faut remarquer qu'on ne peut pas utiliser uniquement R T A 1 G R comme préconditionneur du système sur la grille ne car son noyau est trés grand. Posons M 1 G = RT A 1 G R la part de la grille grossière du préconditionneur. Il reste à trouver la part de la grille ne du préconditionneur. Posons M 1 F un préconditionneur sur la grille ne.

28 1.4. Les techniques multi-niveaux 21 En général, M 1 F doit agir de façon locale, pendant que M 1 G doit pouvoir capter les phénomènes globaux à tous les sous-domaines. Dans le cas de décomposition de domaine, M 1 F est l'un des préconditionneurs présentés dans les sections précédentes. La matrice M 1 F est généralement appelé lisseur car il a pour eet de rétirer les hautes fréquences de l'erreur. On peut combiner M 1 F et M 1 G de façon additive ou de façon multiplicative [21, 8, 22] pour obtenir un nouveau préconditionneur M 1 de la matrice A F. Si la combinaison se passe de façon additive alors M 1 = M 1 F + M 1 G (1.32) Si elle est de façon multiplicative alors M 1 = M 1 F + M 1 G + M 1 F A F M 1 G. (1.33) L'équation (1.33) suppose qu'on résout l'équation sur la grille grossière, on calcule le résidu, on utilise ensuite ce résidu pour corriger la solution sur la grille ne. Ainsi les préconditionneurs du type Schwarz addditif sur les deux niveaux deviennent : M 1 ASG = RT A 1 G R + m i=1 R T i A 1 i R i (1.34) La version restrictive correspondante à Schwarz additif restreint est donné par l'équation (1.35)(voir [22]). R i (1.35) M 1 RASG = RT A 1 G R + m i=1 R T i A 1 i Il faut noter que M 1 RASG est le préconditionneur paralléle par défaut de petsc [3]. Le préconditionneur de Schwarz multiplicatif prend quant à lui la forme suivante : M 1 MSG = [I (I Q ma F )...(I Q 1 A)(I R T A 1 G R)]A 1 F (1.36) Il faut noter qu'on ne forme jamais la matrice M 1 MSG. Pour mettre en oeuvre ce préconditionneur on réalise une itération de l'algorithme 3 en commençant par R T A 1 R. G On peut aussi avoir une hybridation des méthodes, c'est à dire qu'on réalise une combinaison additive entre M 1 F et M 1 G avec M 1 F correspondant à Schwarz multiplicatif. Ceci conduit à : M 1 HMSG = RT A 1 G R + [I (I Q ma F )...(I Q 1 A)]A 1 F (1.37) La combinaison multiplicative entre M 1 F On a alors l'expression suivante : et M 1 G avec M 1 F M 1 HRAS = RT A 1 G R + (I RT A 1 G RA F )( conrespondant à Schwarz additif. m i=1 R T i A 1 i R i ) (1.38) Des résultats théoriques sur la convergence montrent que lorsque les récouvrements entre sous-domaines restent dans les mêmes proportions que la taille des sous domaines alors le nombre d'itérations pour converger ne dépend pas de la taille des sous-domaines [25]. Carpentieri et al [26] montrent sur plusieurs exemples que lorsqu'on augmente la dimension de la grille grossière, le système préconditionné converge plus vite.

29 1.4. Les techniques multi-niveaux 22 Implémentation L'implémentation des algorithmes de cette section pose quelques dicultés supplémentaires comparativement au cas des méthodes à un niveau. La diculté majeure est la détermination des matrices R et A G. Dans le cas d'un niveau nous avons vu que les sous domaines étaient obtenus à la suite d'un partitionemment de la matrice. Dans le cas où on dispose par exemple d'un programme de génération de maillage, on peut juste commencer par la grille grossière et raner celle ci pour obtenir la grille ne. Dans ce cas, les opérateurs de restriction et d'interpolation linéaire sont trés simples à dénir. Il faut remarquer que le fait que la génération de la grille ne se réalise à partir de la grille grossière rend l'opération d'interpolation et restriction simple à dénir car il y a une corrélation directe entre les deux grilles. Lorsqu'il n'existe pas de corrélation directe entre les deux grilles, il est nécessaire de déterminer la position de chaque point de la grille ne sur la grille grossière, à la suite de cela on peut déterminer la matrice R. Dans le cas purement algébrique( c'est à dire où on ne dispose de rien d'autre que de la matrice), la diculté est identique aux cas précédents. Elle réside sur le choix des opérateurs de restriction et d'interpolation (car à partir d'eux on peut tout simplement réaliser un produit matrice-matrice pour déterminer A G = R T A 1 G R). Il existe plusieurs méthodes pour le faire. Dans le cas par exemple de BoomerAMG ( [27]) on utilise le plus souvent les coecients de la matrice A F pour construire les opérateurs de restriction et d'interpolation. Une autre approche est de considérer comme sommet du graphe adjacent à A G un sous ensemble des sommets du graphe adjacent à A F. En pratique, on prend très souvent comme ensemble des sommets du graphe adjacent à A G le sous ensemble correspondant à l'ensemble des sommets indépendants de A F de taille maximale. Soit S cet ensemble. On peut alors dénir la matrice R comme suit : R R n G n tel que R(i, j) = 1 si i, j S ; R(i, j) = 0 sinon (n G est la taille de S). Il faut noter que cette technique est celle utilisée dans PETSc [3] et parms [4] pour construire leur version de RAS (Restricted Additif Schwarz). On conclut alors que A G = R T A F R. La matrice A G formée, on peut alors l'inverser en utilisant une méthode directe parallèle si elle est de grande taille ou une méthode directe séquentielle si elle est de petite taille Méthodes sans recouvrement à plusieurs niveaux La présentation faite jusque là suppose que la décomposition de domaine est avec recouvrement. On peut aussi utiliser les techniques de multi-niveaux dans le cas d'une décomposition sans recouvrement. Comme nous l'avons mentionné dans la section 1.3 de ce chapitre, la diculté est de trouver un préconditionneur pour le complément de Schur global (equation 1.15). Pour dénir les préconditionneurs multi-niveaux, Smith [8] propose de diviser l'ensemble des sommets d'interface entre les sous-domaines en deux sous-ensembles disjoints. L'ensemble V des sommets qui sont adjacents à plus de deux sous-domaines(encore appelé vertex point) et E l'ensemble des sommets ayant au plus deux sous domaines qui lui sont adjacents. On peut rénuméroter les inconnues de l'interface en commençant par ceux de E suivis de ceux V. Ainsi le complément de Schur s'exprime comme suit : ( SEE S S = EV S VE L'idée introduite par Smith [8] est de construire la grille grossière sur l'ensemble des sommets de V car il permet de bien coupler les diérents sous domaines. Soit R l'opérateur de restriction S VV )

30 1.5. Conclusion et positionnement 23 associé aux sommets d'interface et R T l'interpolation linéaire correspondant. On peut observer que R = ( R E I). En appliquant l'opérateur linéaire d'interpolation globale R à un vecteur x de la grille grossière, on observe que : ( R T A 1 x = II A 1 IE I ) R T E x avec A II et A IE dénis à l'équation (1.8). L'expression précédente veut dire que pour interpoler un vecteur de la grille grossière vers la grille ne, on doit d'abord l'interpoler sur la grille grossière correspondant à E avant de l'étendre linéairement sur les sommets intérieurs de la grille ne. Tout se passe alors comme si on réalisait un changement de base de la matrice S. Soit H = ( I RT E 0 I cette matrice de changement de base. La matrice S peut encore s'écrire S = H T H T SHH 1 = H T SH 1. Avec ) ( ) SEE SEV S = S VE SVV Comme dans les méthodes du type complément de Schur itératif, on ne forme pas explicitement la matrice S, on déduit un préconditionneur de S du type Bloc Jacobi par M 1 S = ( I 0 R E I ) ( Ŝ 1 EE 0 0 A C ) ( I RT E 0 I avec A C = RAR T (la grille grossière est dénie sur l'ensemble des sommets de V) et Ŝ 1 EE une approximation de l'inverse de S EE. On montre [8] que pour certains problèmes, en utilisant cette approche, le conditionnement du complément de Schur préconditionné par M 1 S est dans l'ordre de O(1 + log(h/h) 2 ). Cette technique est sensiblement la même que celle utilisée dans parms [4]. La diérence fondamentale si situe au niveau de la dénition de la grille grossière. Dans parms, la grille grossière des sommets d'interface est choisie comme étant l'ensemble des sommets indépendants. 1.5 Conclusion et positionnement Dans ce chapitre nous avons présenté des algorithmes issus de la décomposition de domaine pour la résolution des systèmes linéaires d'équation. Cette présentation n'est pas exhaustive. Pour plus d'information on peut se reférer à [22, 8] mais aussi au lien [28] qui contient les proceedings de la conférence annuelle sur la décomposition de domaine. Ce qu'on retient dans l'essentiel c'est que dans le cas algébrique, les techniques de décomposition de domaine sont utilisées comme préconditionneurs des méthodes de Krylov. Dans ce cas, on distingue alors deux grandes classes de préconditionneurs. Les préconditionneurs du type Schwarz et ceux du type complément de Schur. Dans la plupart des cas, les méthodes du type complément de Schur conduisent à des formes de factorisation ILU parallèles. Quant on compare ces factorisations incomplètes parallèles avec les méthodes du type Schwarz additif, on se rend compte que dans la plupart des cas les méthodes de Schwarz additif fournissent de meilleurs performances [1, 12, 29]. )

31 1.5. Conclusion et positionnement 24 Notre question est alors de savoir si on ne peut pas comparer aussi Schwarz additif et Schwarz multiplicatif. Car comme on l'a tout au long de ce chapitre, d'un point de vue numérique, le nombre d'itérations du système préconditionné par Schwarz multiplicatif est dans la plupart des cas très inférieurs au nombre itérations produites par Schwarz additif mais que Schwarz additif est beaucoup plus parallèle que Schwarz multiplicatif. Notre travail est donc de produire une implémentation parallèle de GMRES préconditionné par Schwarz multiplicatif. Des techniques de parallélisation de Schwarz multiplicatif ont été présentées et se résument essentiellement au coloriage du graphe quotient aux partitions du domaine. L'ecacité (numérique et parallèle) de la méthode de coloriage réside sur la possibilité de colorier le graphe quotient avec un nombre minimum de couleur ce qui n'est pas un problème facile en plus. Il a été montré dans plusieurs cas même que ce problème est NP complet [23]. Sur un autre plan, le graphe quotient aux partitions est un graphe complet ce qui rend alors impossible de le colorier avec un nombre de couleurs inférieur au nombre de parties (sous-domaines). Notre solution est alors d'utiliser l'itération de Schwarz multiplicatif comme un pipeline donc les niveaux correspondent aux sous domaines. Pour le faire, nous avons déni explicitement la forme de la matrice correspondante à cette itération de Schwarz multiplicatif [5], ceci sera l'objet du chapitre 2. La forme explicite du préconditionneur de Schwarz multiplicatif suppose que la matrice soit partitionnée selon une direction [6]. Cette forme de partitionnement du graphe adjacent à la matrice est présentée au chapitre 3. Pour éviter les points de synchronisation dans le pipeline de la forme explicite de Schwarz multiplicatif, nous avons mis sur pieds une version parallèle de GMRES sans synchronisation globale comme les produits scalaires [7]. Ceci est l'objet du chapitre 4.

32 Chapitre 2 Forme explicite de Schwarz multiplicatif 2.1 Introduction Le chapitre précédent présente les techniques de décomposition de domaine comme préconditionneur des méthodes de Krylov. De cette présentation nous avons vu que Schwarz multiplicatif était robuste car il fournissait moins d'itérations que la version additive lorsqu'on l'utilisait comme preconditionneur. Néanmoins deux raisons sont à l'origine du manque d'intérêt de Schwarz multiplicatif. Le premier point est le parallélisme qui comme on l'a mentionné en l'algorithme 3 est très faible. La présentation de ce chapitre se divise en deux parties. Dans une première partie il est question de présenter l'expression explicite de Schwarz multiplicatif comme présentée dans [5]. Par la suite, on termine ce chapitre par des expérimentations numériques. 2.2 Décomposition pour la forme explicite de Schwarz multiplicatif A la section 1.1 du chapitre précédent on a déni le partitionnement d'une matrice A R n n comme étant une partition de l'ensemble V des lignes et colonnes de A en m partitions V i (i = 1,..., m). Le partitionnement qu'on dénit pour la forme explicite de Schwarz multiplicatif intègre une nouvelle contrainte. Dénition On appelle patron de A et on note P l'ensemble P(V ) = {(k, l) V V, a k,l 0}. Dénition On appelle decomposition 1D de la matrice A en p sous domaines une liste de sous ensembles V i (i = 1,..., p) de V = [1 : n] tel que i j > 1 = V i V j =, p P i=1 (V i V i ). (2.1) A la suite de la dénition (2.2.2), on peut dire que la décomposition de domaine 1D peut être obtenue à partir d'un partitionnement de graphe. Ce partitionnement doit alors inclure des recouvrements. On y reviendra au chapitre 3. 25

33 2.2. Décomposition pour la forme explicite de Schwarz multiplicatif 26 Il faut noter qu'une telle décomposition n'existe pas toujours. Un exemple simple c'est lorsque la matrice est dense, dans ce cas il existe un seul sous domaine. Dans la suite de ce chapitre on supposera que la décomposition 1D du graphe (d'adjacence) de A est obtenue. On notera par V i (i = 1,..., p) les parties obtenues. La sous matrice de A correspondant à V i V i sera notée A i. On note aussi par L i = j V i (e j ) le sous espace de R n engendré par la sélection des vecteurs canoniques de R n. Soit m i la dimension de L i. Soit I i R n n dénie telle que I i (k, k) = 1 si k V i et I i (l, t) = 0 sinon. Cette matrice est une projection orthogonale sur L i (espace d'indice appartenant à V i ); On dénit : Ã i = I i AI i (2.2) qui est la matrice A i complété par zéro à la dimension de A. Si on note par I R n n la matrice identité, on dénit le complément de I i par Īi = I I i. Ainsi donc, on peut aussi dénir par Āi la matrice A i complétée par l'identité à la dimension de A. Ā i = Ãi + Īi (2.3) Dans un premier temps on supposera que les Āi (i = 1,..., p) sont tous inversibles. Pour dénir le recouvrement entre partitions, on commence par dénir par J i = V i V i+1 (i = 1,..., p 1) l'intersection entre deux partitions consécutives de V. De façon similaire à la dénition de I i, on dénit par O i la matrice de projection sur J i. Soit s i le cardinal de J i. Ainsi la matrice dénie par l'équation (2.4) représente le recouvrement entre le sous domaine A i et A i+1 complété par zero à la dimension de A C i = O i AO i (2.4) Comme pour Āi, la matrice C i = C i + (2.5) Īi représente le recouvrement complété par l'identité à la dimension de A. La gure 2.1 illustre la décomposition sur une matrice. Proposition Pour toute décomposition de la matrice A dénie selon la dénition alors, i j > 2 = I i AI j = 0 Preuve. Soit (k, l) V i V j tel que a kl 0. Alors comme (k, l) P alors il existe p {1,..., m} tel que k V p et l V p. Dans ce cas V i V p 0 et V j V p 0. En conséquence par référence à la dénition 2.2.2, i p 1 et j p 1. Ce qui implique que i j 2 Dénition On dira que la décomposition de la matrice A est avec recouvrement faible si pour tout i, j 1,..., p i j > 1 I i AI j = 0.

34 2.3. Forme explicite de Schwarz multiplicatif 27 Fig. 2.1 Matrice partitionnée et permutée en 1D 2.3 Forme explicite de Schwarz multiplicatif Avant de pouvoir donner une forme explicite de Schwarz multiplicatif, nous allons présenter la notion de système étendu qui nous permettra de justier celle-ci Injection et projection des systèmes Il s'agit ici de construire à partir d'une décomposition avec recouvrement de A(2.1) une décomposition sans recouvrement d'une nouvelle matrice à déduite de A. A partir de là, l'équivalence entre une itération de bloc Gauss-Seidel sur le système sans recouvrement à et une itération de Schwarz multiplicatif sur le système avec recouvrement A [20, 21] va nous permettre de déduire la forme explicite de Schwarz multiplicatif. Pour le faire on dénit les opérations d'injection et de projection comme suit : Dénition L'opération d'injection qu'on note D est une application de R n dans R m avec m = p 1 s i n + i=1 p m i = D : R n R m x x, où le vecteur x est obtenu à partir de x en dupliquant tous les blocs de recouvrement. L'opération de projection du vecteur x R m qu'on note P consiste à projeter ce vecteur dans R n en éliminant dans x le sous vecteur correspondant à la première occurrence des parties recouvertes. P : R m R n x x. i=1

35 2.3. Forme explicite de Schwarz multiplicatif 28 La gure 2.2 illustre par un exemple comment construire un système augmenté(étendu) à partir d'un système représenté par la gure 2.1. Fig. 2.2 Dénition de la matrice Ã( Injection de la Figure 2.1 dans Rm m ) La matrice à ainsi que les vecteurs x et ỹ vérient le diagramme suivant : x A y D P x à Proposition Résoudre le système Ax = b est équivalent à résoudre le système à x = b où b = Db et x = Dx. Preuve. La proposition précédente dit tout simplement qu'à partir de la solution du système Ax = b on peut déduire la solution de à x = b et inversement en n'utilisant rien que les opérations d'injection et projection ci-dessus dénies. On suppose sans nuire à la généralité que m = 4 et que la décomposition est celle présentée en la gure 2.1. Soit L un sous espace de R m tel que x L si et seulement si x 2 = x 3, x 4 = x 5, x 6 = x 7 où les indices de x représentent les blocs obtenus de la décomposition sans recouvrement de Ã. Dans ce cas, un simple calcul permet de montrer que à x = ỹ L. Autrement dit L est invariant par Ã. Soit x solution de Ax = b, on sait que Dx L. Comme L est invariant alors ÃDx L, c'est à dire ÃDx = Db. La réciproque est triviale à montrer. On en déduit la remarque suivante Remarque ỹ

36 2.3. Forme explicite de Schwarz multiplicatif x R n, Ax = PÃDx 2. PD = I n et DP est une projection sur L 3. x, y R n (y = Ax Dy = ÃDx) Proposition Une itération de Schwarz multiplicatif sur l'équation Ax = b partitionnée comme en la gure 2.1 est équivalente à une itération de bloc Gauss-Seidel sur l'équation à x = x partitionnée comme en la gure 2.2. Preuve. On suppose que le nombre de sous domaines est p. La proposition précédente dit tout simplement qu'à partir d'une itération de Schwarz multiplicatif sur le système Ax = b partitionné selon la gure 2.1, on peut déduire une itération de Gauss-Seidel sur le système à x = b partitionné selon la gure 2.2 et inversement en utilisant rien que les opérations d'injection et projection ci dessus dénies. Soit donc une itération x k+1 = x k + M 1 r k de Gauss- Seidel sur le système à x = b partitionné selon la gure 2.2; avec à = M Ñ le splitting correspondant à bloc Gauss-Seidel. Dans ce cas, la matrice M correspond à la partie bloc triangulaire inférieure de. Posons donc M 1 r à k = z k. On va donc résoudre un système bloc triangulaire par la méthode de substitution(descente) en partant du sous domaine numéro 1 en allant vers le sous domaine numéro m. Au sous domaine numéro 1 on obtient : z 1 k = A C'est à dire rk x k+1 1 = x k 1 + à 1 r 1 k qui est identique au premier niveau de Schwarz multiplicatif (voir algorithme 3). Par récurrence on peut montrer qu'au sous domaine i(i m) on a z i k = A 1 i ( r i k (H i 1, 0) z i 1 k ) C'est à dire x k+1 i = x k i + A 1 i ( r k i (H i 1, 0) z k i 1) (2.6) Avec H i 1 le bloc correspondant à l'intersection entre les lignes du sous-domaine i et les colonnes du sous domaine i 1. L'équation (2.6) correspond exactement à la sous itération i de l'algorithme 3 du chapitre 1. Ce qui montre qu'une itération de Gauss-Seidel sur le système à x = b correspond à Schwarz multiplicatif sur Ax = b. La réciproque est immédiate et consiste tout juste à construire les vecteurs x k, r k à partir des vecteurs x k et r k. Le diagramme suivant résume la proposition R n M 1 D P R m M 1 Ceci nous permet alors de conclure que : M 1 = P M 1 D. On peut maintenant donner la forme explicite du splitting A = M N correspondant à une itération de Schwarz multiplicatif Forme explicite du préconditionneur de Schwarz multiplicatif Théorème Soit A R n n une matrice décomposée en m sous domaines comme en la dénition On suppose que les matrices Āi, i = 1,..., m et les matrices C i, i = 1,..., m 1 sont inversibles. La forme explicite de l'itération de Schwarz multiplicatif est donnée par l'expression suivante : M 1 = Ā 1 m R n R m où les matrices Āi et C i sont dénies en (2.3) et (2.5) C m 1 Ā 1 C m 1 m 2 Ā 1 2 C 1 Ā 1 1 (2.7)

37 2.3. Forme explicite de Schwarz multiplicatif 30 Preuve. Nous avons vu au chapitre (1) qu'une itération de Schwarz multiplicatif correspondait à une itération de la forme x k+1 = x k + M 1 r k (2.8) avec A = M N correspondant au splitting de Schwarz multiplicatif. Si on injecte l'équation (2.8) dans R m en utilisant l'opération D on obtient la relation suivante : x k+1 = x k + M 1 r k (2.9) où x k = Dx k, r k = Dr k et M = à + Ñ correspondant au splitting du bloc Gauss-Seidel déni de à (voir proposition 2.6). Pour évaluer l'expression ( 2.9), on doit calculer M 1 r k = t k qui correspond en fait à résoudre l'équation M t k = r k, ce qui permettra d'écrire, x k+1 = x k + t k et par conséquence x k+1 = P x k+1 = x k +P t k. Nous allons résoudre l'équation M t k = r k en sachant que M = à + Ñ est le splitting de bloc Gauss-Seidel déni à partir de Ã. En d'autre terme M est une matrice bloc triangulaire inférieure. Pour cela on va partitionner les blocs diagonaux de M comme ( suit :) ( ) ( ) Bi F A i = i E i C de même pour les vecteurs f t i k = i k i g et r k i i u k = i k vk i, pour i = 1,..., p 1 p et t k = f p k, r p k = u p k. On peut observer de cette représentation que f ḳ. 1 r k = u 1 k. u p 1 k u p k et t k = f p 1 k f p k On peut maintenant former un système réduit en ne conservant que les composantes de t k : ( Ei 1 f i 1 k 0 (B 1 F 1 C 1 1 E 1)f 1 k = u 1 k F 1C 1 1 v1 k, (2.10) ) + (B i F i Ci 1 E i )fk i = u i k F ici 1 vk i ) ( A p t p k + Ep 1 f p 1 k 0, i = 2,..., p 1 (2.11) = r p k. (2.12) Il faut noter que comme r k = Dr k, on a vk i = R i+1u i+1 k où l'opération R i+1 u i+1 k consiste à sélectionner les s i premiers composants du vecteur bloc u i+1. Pour mémoire, s i est la dimension du recouvrement C i. Soit S i = (B i F i Ci 1 E i ) pour i = 1,..., p 1 le complément de Schur local à la partition i associée à la variable fk i avec S p = A p. Le système réduit précédent devient alors Bt k = z k où la structure de B est dénie selon la gure 2.3. Le membre de droite du système réduit z k = T r k :

38 2.3. Forme explicite de Schwarz multiplicatif 31 S1 E1 0 S2 B= E2 0 S3 E3 0 A4 z k = u 1 k F 1C 1 1 R 2u 2 k u 2 k F 2C 1 2 R 3u 3 k u p 1 k T r k =. F p 1 C 1 p 1 R p r p k r p k Fig. 2.3 Matrice du système réduit (pour m=4) avec ( I 1 F1 C1 1 0 ) ( I 2 F2 C2 1 0 ) ( I 3 F3 C3 1 0 ) I 4 u 1 k u 2 k u 3 k r 4 k. (2.13) Sans nuire à la généralité supposons m = 4. La matrice M (dénie par le splitting de Schwarz multiplicatif ) est dénie par la relation T M = B (2.14) Nous allons alors montrer que M = Ā1 C C 1 p 1Āp satisfait (2.14). Exprimons d'abord la structure bloc de B et de T I 1 Ā i Ci =... I B i [ Ei 0 ] G i I I... I i th ligne (i + 1) th ligne

39 2.3. Forme explicite de Schwarz multiplicatif 32 pour i = 1,, p 1. On montre par récurrence que pour i = 1,..., p 2 Ξ i = T (Ā1 C 1 1 )( Ā 2 C2 1 )...( Ā 1 C1 1 ), ainsi = S 1 [ E1 0 ] S S i [ Ei 0 Ξ p 1 = T (Ā1 C 1 1 )( Ā 2 C2 1 )...( ] I G i+1 0 A p C p 1 1 ), G p 1 0 I = ce qui montre clairement que S 1 [ E1 0 ] S Ξ p 1 Ā p = B. S p 1 [ Ep 1 0 ] [ I 0 0 I Une autre preuve du théorème peut se retrouver en annexe de l'article [5]. La preuve précédente a ceci d'intéressant qu'elle permet de déduire l'expression de la matrice N dénie par le splitting A = M N de Schwarz multiplicatif. Proposition La matrice N dénie par le splitting de Schwarz multiplicatif A = M N s'exprime comme suit : N ij = G i G j 1 B j si j > i + 1, N ii+1 = G i B i+1 [F i 0], N ij = 0 sinon. ], (2.15) Lorsque que la décomposition de domaine est avec faible recouvrement, l'expression (2.15) devient : { Nii+1 = G i B i+1 [F i 0], (2.16) N ij = 0 si j i + 1,

40 2.3. Forme explicite de Schwarz multiplicatif 33 où G i = (F i Ci 1 0) pour i, j=1,...,p-1. Preuve. De l'équation (2.13) on déduit que l'inverse de la matrice T = I U est : où : U = Ainsi, la matrice M s'exprime comme suit : p 1 U i T 1 = i=0 0 G G p 1 0 M ii = B i M ii+1 = [ G i B i+1 ] Ei M i+1i = pour i j = 1 p 1 0 M ij = G i G j 1 B j si j > i + 1 M ij = 0 sinon. En exprimant la matrice A de la même structure que la structure de M on déduit que, N = M A satisfait la relation (2.15). Quand la décomposition de domaine est avec faible recouvrement, la relation (2.15) devient celle de (2.16) conséquence du fait que G i G i+1 = 0. Corollaire Dans le splitting de Schwarz multiplicatif déni par A = M N, la matrice N est de rang p 1 r s i. i=1 Preuve. Dans le cas général, on va prouver que le rang d'un bloc de ligne i de la matrice N est inférieur ou égal à s i. La structure d'un bloc de ligne i, i = 1,..., p 1 de N est donnée par l'expression suivante : [ N i = 0, 0, [F i 0] [ 0 C 1 i B i+1 (1, 2) 0 I ], G i G i+1 B i+2,, G i G p 1 B p ] En conclusion le rang de tout bloc lignes N i est limité par le rang du facteur [F i 0] qui lui est toujours inférieur à s i. Ceci implique que r p 1 s i. i=1

41 2.3. Forme explicite de Schwarz multiplicatif Intérêt de la forme explicite Nombre d'opérations de la forme explicite de Schwarz multiplicatif On pose par { ti = # nombre d'opérations nécessaires au sous domaine i pour calculer x : x Ā 1 x c i = # nombre d'opérations nécessaires au sous domaine i pour calculer y : y C i x Soit τ Exp le nombre d'opérations nécessaires pour réaliser l'opération x M 1 x en utilisant la forme explicite de Schwarz multiplicatif. Alors m m 1 τ Exp = i=1 (t i + c i ) + t m (2.17) On vérie aisément que τ MS = (t i + a i + p i ) qui représente le nombre d'opérations ottantes i=1 nécessaire pour une itération de l'algorithme 3 est supérieur à τ Exp. En eet, τ Exp τ MS = m 1 i=1 (c i a i p i ) a m p m or comme a i + p i représente le nombre d'opérations ottantes nécessaires pour la mise à jour du résidu au sous domaine i, on aura toujours c i < a i + p i (car le recouvrement C i est un sous bloc de la matrice A i ) c'est à dire τ Exp τ MS < 0. En conclusion la forme explicite de Schwarz multiplicatif nécessite un peu moins d'opérations que l'itération de Schwarz multiplicatif classique. Analyse du parallélisme Il faut noter avant tout autre chose que la procédure x M 1 x utilisant la forme explicite de Schwarz multiplicatif est tout autant séquentielle que sa version classique. Néanmoins, il existe un avantage à utiliser la forme explicite quand on essaye de mettre en uvre les deux méthodes sur un environnement parallèle. En eet, si on utilise la forme classique, la mise à jour de la solution de x M 1 x au niveau de chaque sous domaine i nécessite deux étapes : 1. Résolution locale x = x + A 1 i r 2. Mise à jour du résidu r = b Ax On peut observer de l'étape (2), que le produit Ax nécessite au niveau du processeur 1 i de communiquer avec tous ses voisins qui peuvent être au nombre de m 1 dans le cas de la forme classique de Schwarz multiplicatif. Dans le contexte de réseau de calcul hétérogène (fréquence des processeurs diérents et connectique entre processeur diérent) ceci peut être coûteux. Dans le cas de la forme explicite le nombre maximum de partition est de 2. Si on aecte à chaque partition un processeur, alors le temps mis pour communiquer sera faible par rapport à l'approche classique. Dans le forme explicite aussi il y a une séparation entre les deux étapes de calcul. Ceci a alors pour conséquence de rendre le calcul de l'étape plus parallélisable. On présentera de façon plus détaillée la parallélisation de la forme explicite de Schwarz multiplicatif au chapitre 5. 1 On suppose ici que à chaque sous domaine correspond un processeur.

42 2.4. Conséquence de la forme explicite de Schwarz multiplicatif Conséquence de la forme explicite de Schwarz multiplicatif Il s'agit ici de montrer comment utiliser la forme explicite de Schwarz multiplicatif comme préconditionnement des méthodes de Krylov. On commence par énoncer une proposition qui décrit le système préconditionné. On suppose que A = M N correspond au splitting de Schwarz multiplicatif. Proposition En arithmétique exacte, la méthode de Krylov préconditionnée par une itération de Schwarz multiplicatif sur un partitionnement 1D aboutit à la solution exacte en au plus r + 1 itérations, où r = rank(n) p 1 i=1 s i (s i étant le rang du recouvrement C i ). Preuve. On suppose qu'on réalise un préconditionnement à gauche sans perte de généralité. Dans ce cas, la matrice M 1 A = I M 1 N est de rang r + 1. Or pour tout k > 0, K k (M 1 A, M 1 r 0 ) (r 0 ) + R(M 1 N) avec K k (M 1 A, M 1 r 0 ) correspondant à un espace de Krylov de degré k. Ce qui implique que la dimension de K k (M 1 A, M 1 r 0 ) est au plus r+1. Autrement dit le sous espace K k (M 1 A, M 1 r 0 ) devient invariant par M 1 A à partir de k > r +1. En conclusion pour k au plus égal à r + 1 on a obtenu la solution. Lorsque la matrice A est symétrique, la matrice M 1 ne l'est pas nécessairement. Or pour les méthodes de Krylov comme PCG(Gradient conjugué préconditionné) ou MINRES(Minimum residual), le préconditionneur doit être symétrique [21, 2]. On introduit donc la symmétrisation de M Symétrisation de M On utilise la même démarche que pour passer de SOR à SSOR [21] pour obtenir une nouveau préconditionneur symétrique. La symétrisation de M consiste à réaliser une traversée supplémentaire des sous domaines A i (i = 1...m) par une itération de Schwarz multiplicatif en partant du dernier sous domaine vers le premier. Il s'ensuit que les itérations de Richardson correspondantes sont : { xk+1 = x k + M 1 r k x k+2 = x k+1 + M T r k+1 Comme r k+1 = NM 1 r k, on a alors : x k+2 = x k + M 1 r k + M T NM 1 r k = x k + M T (M T + N)M 1 r k = x k + M T (M T + M A)M 1 r k On déduit alors que le préconditionneur symétrique correspondant à une descente et montée de Schwarz multiplicatif est : M 1 sym = M T (M T + N)M 1 = M T (M T + M A)M 1 Pour pouvoir utiliser Msym 1 dans PCG, il faut en plus que Msym 1 soit s.p.d. Ce qui est le cas lorsque la matrice A est s.p.d, pour preuve consulter [18]. Dans la proposition précédente 2.4.1, on suppose qu'en appliquant M 1 à un vecteur x (x M 1 x), on résout exactement les sous problèmes correspondant aux A i. Compte tenu le fait que M 1 est un préconditionneur de A on peut aussi alors envisager une approximation de M 1 qu'on note M 1.

43 2.5. Essais numériques Approximation de M 1 Cette approximation vient du fait qu'au niveau de chaque sous domaine i on détermine juste une approximation de la solution. Cette idée est celle utilisée dans [3, 4] où les résolutions sur les sous-domaines dans Schwarz additif et le complément de Schur sont résolus approximativement. Ce faisant on obtient un autre préconditionneur. Cette approximation des solutions dans les sous domaines visent à réduire le coût(temps et mémoire) de résolution des sous problèmes et par conséquent à réduire le temps d'application de M 1 à un vecteur. Il faut néanmoins noter que, mieux la solution approchée approche la solution exacte sur les sous domaines meilleur est le système préconditionné. Dans la pratique, les solutions approchées dans les sous domaines sont obtenues soit par des factorisations incomplètes (ILU) soit en réalisant un nombre xe d'itérations d'une méthode de Krylov sur les sous domaines. 2.5 Essais numériques Objectifs des tests Les essais numériques présentés ici visent à illustrer la qualité numérique de Schwarz multiplicatif lorsqu'on l'utilise comme préconditionneur pour GMRES. Dans ces expériences on mettra en exergue dans un premier temps la comparaison entre un système préconditionné par Schwarz multiplicatif et un système préconditionné par une approximation de Schwarz multiplicatif, au sens du paragraphe precédent. Dans la deuxième partie de cette expérimentation, on présentera le comportement du système préconditionné par Schwarz multiplicatif lorsqu'un ou plusieurs sous domaines ou recouvrements sont non inversibles. Conditions générales des tests Comme au chapitre précédent, les matrices sont issues de Matrix Market [30] ou de la collection des matrices de l'université de Floride [31] et proviennent des domaines variés comme la mécanique des structures, la mécanique des uides, la cinématique chimique et la simulation des circuits. Les décompositions de domaine 1D des matrices sont obtenues après application de la permutation RCM(Reverse Cuthill Mackee) pour réduire le prol de la matrice et partitionner manuellement la matrice. Lors du partitionnement, on veille à ce que la taille des sous domaines soit sensiblement égale tout en minimisant la taille des recouvrements. On note respectivement par M 1 1 et M 1 2 les matrices de préconditionnement de Schwarz multiplicatif obtenues lorsqu'on résout approximativement les problèmes réduits aux sous domaines par respectivement une factorisation incompléte du type ILU et GMRES; On note par M 1 celle obtenue lorsqu'on résout à la précision machine les sous problèmes par une factorisation compléte du type LU. Les codes sont écrits en Matlab et la machine utilisée pour nos expériences est un PC dual CORE avec une fréquence de 1,7Ghz et une mémoire de 2Go. Dans tous les cas d'expérience le second membre est un vecteur dont les entrées sont obtenues de façon aléatoire dans l'intervalle [ 1, 1], la tolérance à la convergence est de r k / b 10 8 du système préconditionné.

44 2.5. Essais numériques Comparaison des systèmes préconditionnés par M 1, M 1 1 et M 1 2 La question posée ici est celle de savoir s'il est nécessaire de résoudre à la précision machine les équations aux sous domaines pour avoir un bon préconditionneur? Les éléments qui nous permettent de les comparer sont les suivants : La taille mémoire occupée par le préconditionneur représentée dans les tables par nnz. Le nombre d'itérations pour converger Its c'est à dire le nombre de produit matricevecteur Le temps mis pour converger représenté dans les tables par Tcpu. Le préconditionnement M 1 1 est obtenu en réalisant une factorisation incomplète(ilu avec seuil) et la matrice M 1 2 en réalisant un nombre xe d'itérations de GMRES (10 itérations internes sur les sous domaines préconditionnés par ILU) au niveau de chaque sous-domaine. Dans tous les cas tests, le temps CPU ne contient pas le temps mis pour la préparation du préconditionneur. Test 1 Matrices : SHERMAN5 Source de SHERMAN5 : Oil reservoir simulation challenge matrices. Ordre : 3312 Type de matrice : réelle et non symétrique Conditionnement : 3, rang(n) (rang(f i )) = 92 (Voir section (2.3.2)) Numéro du bloc # Début Fin Conditionnement 1, , , ,00 Tab. 2.1 Décomposition de la matrice sherman5 La matrice du Test 1 est un problème relativement simple. Le conditionnement de la matrice est de Comme on l'annonçait à la section précédente, la table 2.2 montre un nombre presque identique d'itérations entre les systèmes préconditionnés par M 1 (nombre d'itérations 11) et celui precondionné par M 1 1 (nombre d'itérations 12). Par contre on observe une trés grande diérence d'occupation de l'espace mémoire (nnz(m 1 1 =M 1 2 )=73 691) tandis que (nnz(m 1 )= ). La gure 2.4 montre le comportement quasi identique entre les systèmes précondionnés par M 1 et M 1 1. Il faut noter que la diérence avec le système préconditionné par M 1 2 vient du fait qu'au niveau de la 11ème itérations les solutions des équations au sous domaine ne sont pas assez précises. De cet exemple on peut conclure que, pour besoin de sauvegarder la mémoire occupée par le préconditionneur, on peut privilégier les systèmes préconditionnés par M 1 1 par rapport à ceux précondionnés par M 1. L'exemple suivant va nous montrer que ceci n'est pas toujours vrai.

45 Préconditionneur # nnz Tcpu Its r k / b M 1 (LU) , , M 1 1 (ILU(1e 04)) , , M 1 2 (GMRES) , , Tab. 2.2 Résultats de GMRES(40) sur sherman Essais numériques Schwarz multiplicatif avec ILU en local Schwarz multiplicatif avec GMRES en local Schwarz multiplicatif avec LU en local 10 2 Residu Iterations Fig. 2.4 Convergence de GMRES préconditionné par Schwarz multiplicatif sherman5 Test 2 Matrices : ex10 Source de ex10 : Mécanique des uides. Ordre : 5773 Type : matrice réelle non symétrique Conditionnement : rang(n) (rang(f i )) = 154 (Voir section (2.3.2)) Numéro du Bloc # Début Fin Conditionnement 1, , , , Tab. 2.3 Decomposition de la matrice ex10

46 2.5. Essais numériques 39 Le système obtenu avec la matrice du Test 2 est relativement plus dicile que celui du Test 1. Dans un premier temps on utilise pour la matrice M 1 1 un seuil égal à 1e 9 pour le rejet d'éléments non nuls dans la factorisation. La gure 2.5 montre alors une petite diérence entre les diérents systèmes. Au niveau de la table 2.4, on observe aussi que la diérence d'espace mémoire occupé par les préconditionneurs est relativement faible. Si on augmente le seuil à 1e 8 dans l'optique de réduire l'espace mémoire occupé par le préconditionneur M 1 1 alors il perd de sa qualité (voir table 2.4, et gure 2.6). Cette perte vient du fait que la solution obtenue au sous domaine approche mal la solution exacte. Dans ce cas, comme on peut l'observer dans la table 2.4 et sur la gure 2.6 il est alors bénéque de réaliser un nombre xe itérations égal à 10 de GMRES sur les sous domaines. Il faut remarquer néamoins qu'une itération de GMRES sur le système préconditionné par M 1 2 (47 itérations pour 115,39s) a coûté bien plus cher qu'une itération de GMRES sur le système préconditionné par M 1 1 (148 itérations pour 91,59s). Mais compte tenu du fait que dans la pratique on observe plusieurs cas où le système préconditionné par M 1 1 a du mal à converger, on utilise plutôt comme préconditionneur M 1 2. En fait dans les solveurs comme [3, 4], les solutions aux sous problèmes sont obtenues en appliquant quelques itérations de GMRES préconditionné par une forme de ILU Schwarz multiplicatif exacte Schwarz multiplicatif approch Schwarz multiplicatif exacte Schwarz multiplicatif approche par ILU Schwarz multiplicatif approche par GMRES Rsidu Redidu Itrations internes Iterations internes Fig. 2.5 Convergence de GMRES sur ex10 : M 1 1 ( seuil=1e 8) Fig. 2.6 Convergence de GMRES préconditionné par M 1 1 sur ex10 ( seuil=1e 9) Préconditionneur # nnz Tcpu Nits r k / b M 1 (LU) , M 1 1 ((1e 8)) , M , Tab. 2.4 Résultats de GMRES sur ex18 Les tests réalisés jusque là supposent que les sous matrices A i ainsi que les recouvrements C i sont inversibles. Que se passe-t'il lorsque au moins un de ces sous domaines est non inversible bien que la matrice toute entière A soit inversible? Nous allons apporter quelques éléments de réponse aux paragraphes suivants.

47 2.5. Essais numériques Cas où les A i sont singuliers Il peut arriver que à la suite du partitionnement d'une matrice A inversible on obtienne un sous domaine A i qui est non inversible. Dans ce cas la matrice M 1 n'existe pas. Soit A i un sous domaine singulier. On note par Ā i l'inverse généralisé de A i complété à la dimension de A. Soit la matrice M = Ā 1 p...ā C i i... C 1 Ā 1 1 (2.18) On peut alors utiliser M comme préconditionneur de A. Mais comme M est singulier, le système préconditionné sera aussi singulier. Deux dicultés existent alors dans ce cas; la première consiste à déterminer l'inverse généralisé des blocs non inversibles, tandis que la deuxième consiste à déterminer la solution du système non préconditionné à partir de la solution du système préconditionné. Il faut mentionner que la singularité d'un sous domaine A i n'est pas propre à la forme explicite de Schwarz. Dans les algorithmes du type Neumann-Neumann (([8] page 126), ([22] page 99) qui construisent le préconditionneur à partir des compléments de Schur distribués, il peut bien arriver qu'un des compléments de Schur locaux S i soit non inversible car le sous domaines A i est non inversible. Plusieurs solutions sont préconisées dans ce cas. La plus simple mais très coûteuse est d'utiliser un pseudo inverse de S i. Une autre approche est de trouver la solution dans un supplémentaire de Kerf(A i ) à condition de connaitre Kerf(A i ). 1 er Cas des méthodes directes Dans le cas où le sous domaine A i est non inversible, alors on ne peut pas calculer l'inverse de A i. On peut bien utiliser les mêmes approches que celles utilisées dans le cas de Neumann-Neumann. Dans un premier temps, on peut utiliser le pseudo-inverse de Moore-Penrose (Dans le cas de Matlab on utilise la fonction pinv qui elle s'appuie sur la SVD). Le système préconditionné dans ce cas reste toujours non inversible car le préconditionneur est non inversible. Dans un deuxième temps, on peut chercher la solution dans le supplémentaire de Kerf(A i ). Pour pouvoir utiliser une méthode de Gauss, il faudra exprimer la matrice dans le supplémentaire de Kerf(A i ) ce qui coûte évidemment très cher en temps. On peut enn faire un shift du bloc A i de sorte que celui-ci soit inversible. La diculté est de trouver le α tel que B i = A i +αi soit inversible toutefois en gardant un bon préconditionneur pour A. A la suite de cela on peut alors utiliser une factorisation LU sur B i. Dans ce cas, le système préconditionné est inversible car le preconditionneur est inversible. On peut conclure que lorsqu'un bloc A i est non inversible, il est mieux d'utiliser une factorisation LU sur B i = A i + αi car non seulement elle est peu coûteux, mais aussi le système préconditionné est inversible. Dans le cas où le sous domaine A i est quasi-singulier, alors on peut toujours calculer une factorisation LU de A i. Si on suppose que f i = Ui 1 L 1 i r i est le vecteur solution dans ce sous domaine, alors ce vecteur est presque dans les directions de Kerf(A i ). En plus il est de grande norme. Ceci a alors pour conséquence de détériorer la qualité du préconditionneur. 2 eme Cas où on utilise une méthode Krylov sur A i Dans des méthodes du type Krylov, nous nous intéressons ici juste à GMRES car les problèmes que nous traitons sont par nature non symétriques. Si le sous domaine A i est singulier, alors GMRES résout un problème aux moindres carrés qui consiste à déterminer f i tel que la quantité r i A i f i soit minimale. Il faut remarquer qu'il

48 2.5. Essais numériques 41 existe une innité de solutions à ce problème. En eet si f i est une solution alors f i + u i en est autre, avec u i Kerf(A i ). La diculté dans ce cas est de savoir quelle est la meilleure solution pour le préconditionneur M. Test 3 : Matrice Goodwin La matrice d'origine est une matrice inversible et relativement bien conditionnée (conditionnement égal à 3.32e + 10). A la suite de la décomposition indiquée dans la table 2.5 on perturbe le premier bloc de la matrice de sorte que celui ci devienne non inversible toutefois en ne changeant pas grand chose sur le conditionnement de la matrice qui devient 4.19e Comme méthodes utilisées au niveau du bloc non inversible nous avons appliqué : le pseudo inverse de Moore-Penrose(Dans le cas de Matlab il consiste à calculer la SVD de A i ), la factorisation LU sur le sous domaine shifté par α = 1e07(le choix de α fait ici est arbitraire, mais dans la pratique il peut correspondre au module de la plus grande valeur propre ) et enn GMRES. Nous ne présentons pas les résultats issus de Penrose-Moore car ils sont non seulement très coûteux mais le procédé ne converge pas. Pour la suite on pose M 1 le préconditionneur obtenu lorsqu'on remplace A 1 par A + αi avec α = 1e07 et qu'on utilise une méthode de Gauss. M 2 sera le préconditionneur obtenu lorsqu'on utilise GMRES. Il faut noter que le shift du sous domaine A 1 s'applique juste à la construction du préconditionneur c'est à dire à la résolution du sous problème correspondant à A 1. Source de Test 3 : Mécanique de uides. Ordre : 7320 Type de matrice : Réelle non symétrique Conditionnement : rang(n) (rang(f i )) = 767 (Voir section (2.3.2)) La table 2.8 ainsi que la gure 3.3 présentent les résultats de GMRES sur le système préconditionné par M 1 et par M 2. Les préconditionneurs sont déduits du partitionnement de la table 2.6. On observe que dans les deux cas, le système converge assez bien. Il faut remarquer que comme A 1 est singulier, la solution (x 2 ) du système préconditionné par M 2 n'est pas celle du système non préconditionné. En eet r 2 / b = 2, 57e02( avec r 2 = b Ax 2 ). Par contre la solution(x 1 ) du système préconditionné par M 1 est la solution du système non préconditionné. En eet r 1 / b = 1e 9( avec r 1 = b Ax 1 ). La raison dans ce cas est que le préconditionneur M 1 est inversible car A 1 a été shifté de sorte à devenir non singulier. On conclut de cet exemple que lorsque dans la décomposition de la matrice il existe des sous domaines singuliers, alors pour construire le préconditionneur, on peut shifter les sous domaines singuliers de manière à les rendre non singuliers. Ce faisant, on obtient toujours un bon préconditionneur à condition de bien choisir ces shifts. Le meilleur choix dans ce cas sera de trouver un shift tel que le préconditionneur soit le plus "proche" possible de l'inverse de A.

49 2.5. Essais numériques 42 Bloc # : Début Fin Cond A i 1, , , , Bloc # : Début Fin Cond A i 1, , , , Tab. 2.5 Partitionnement 1 de la Matrice goodwin Bloc # : Début Fin Cond A i + 5, , , Bloc # : Début Fin Cond A i 1, , , , Tab. 2.6 Partitionnement 2 de la Matrice goodwin Préconditionneur # : nnz Tcpu Nits r k / b M 1 (LU) e , M , M , Tab. 2.7 Résultats de GMRES(40) sur goodwin. Partitionnement selon la table Les C i sont singuliers Dans certains cas, le partitionnement de la matrice peut conduire à des recouvrements C i (i = 1,..., m) qui sont singuliers pourtant les sous domaines A i ne le sont pas. Dans ce cas, on ne peut pas considérer la matrice encore notée M 1 comme inverse d'une matrice S dénie comme à l'équation (2.19) 1 1 S = Ā1 C 1 Ām 1 C m 1Ām (2.19) Malgré cela si on considère "M 1 " comme préconditionneur de A, alors le système préconditionné sera singulier. Autrement dit, on aura une innité de solution de la forme x + kerf(m 1 A) avec x solution du système préconditionné. Il faut remarquer que la solution trouvée ici n'est pas celle du système original. Test 4 : Matrice Gre_1107 Source de Test 4 : Simulation des ordinateurs.

50 2.5. Essais numériques 43 Préconditionneur # : nnz Tcpu Nits r k / r 0 M , , M , , Tab. 2.8 Résultats de GMRES(40) sur goodwin. Partitionnement selon la table Schwarz multiplicatif avec ILU Schwarz multiplicatif avec GMRES Schwarz multiplicatif avec LU 10 5 Schwarz multiplicatif avec GMRES en local Schwarz multiplicatif avec LU en local Residu Residu Iterations Iterations Fig. 2.7 Convergence de GMRES (40) : Partitionnement 1 Ordre : 1107 Type : matrice reelle non symétrique Conditionnement : rang(n) (rang(f i )) = 156 (Voir section (2.3.2) Decomposition de la matrice Fig. 2.8 Convergence de GMRES (40) : Partitionnement 2 Numéro du Bloc : Début Fin Conditionnement A i 7, , , , Conditionnement C i 2, , , Préconditionneur # : nnz Tcpu Nits r k / b M 1 (LU) , , Tab. 2.9 Résultats de GMRES sur Gre_1107

51 2.6. Conclusion Schwarz multiplicatif exact Schwarz multiplicatif avec LU en local Residu Residu Iterations Fig. 2.9 Convergence de GMRES(200) préconditionné par M 1 Gre_ Iterations Fig Convergence de GMRES(200) préconditionné par M 1 Gre_1107 avec shifts La table 2.9 et la gure 2.9 montrent les résultats de GMRES sur le système préconditionné. Le partitionnement en 4 de la matrice du Test 4 a conduit aux récouvrements qui sont tous numériquement non inversibles. En utilisant ce partitionnement, on voit à la table 2.9 ainsi qu'à la gure 2.9 que le système préconditionné converge. Ce qu'il faut néamoins remarquer c'est que le système préconditionné est singulier. Autrement dit, la solution obtenue peut bien ne pas b Ax être celle du système non préconditionné. Dans le cas de cet exemple = 5, 13. Si on b reprend le même partitionnement et on shift de 0,1 les recouvrements dans le préconditionneur on obtient la convergence (voir gure 2.10) un peu plus dicile que celle précédente mais qui b Ax = 1, b fournit une solution au système non préconditionné car ici Autrement dit, la diculté reste celle de choisir le bon shift qui rendra le préconditionneur non singulier mais aussi qui sera tel que le préconditionneur reste toujours "proche" de l'inverse du système de départ. 2.6 Conclusion Dans ce chapitre nous avons présenté la forme explicite de Schwarz multiplicatif. Cette expression explicite présente quelques avantages (nombre d'opérations et parallélisme) comparée à la forme classique de Schwarz multiplicatif. Elle nous a ainsi permis de déduire quelques propriétés sur la matrice M 1 A lorsqu'elle est inversible. Dans le cas où les sous domaines sont inversibles et bien conditionnés, nous avons vu par des expériences qu'en résolvant approximativement les sous problèmes on ne détériorait pas trop le nombre d'itérations pour converger vers la solution. Comme approximation, on pouvait utiliser alors une factorisation incompléte(ilu) ou quelques itérations de GMRES. Dans le cas ou on utilisait ILU, nous avons constaté par le cas test Test 3 que le préconditionneur n'était pas très robuste. C'est pour cette raison que nous avons adopté comme solveur local GMRES avec un nombre xe d'itérations. Dans le cas où les sous domaines sont singuliers, nous avons vu que pour construire le préconditionneur, il fallait impérativement shifter les domaines singuliers car sinon on obtiendrait

52 2.6. Conclusion 45 un préconditionneur singulier. Le choix du shift doit être tel que le sous domaine singulier devient non singulier et aussi tel que le préconditionneur reste une bonne approximation de l'inverse de A. Dans le cas test Test 4 nous avons choisi comme shift la plus petite valeur propre non nulle qui n'est pas à priori connue. Nous avons vu aussi que lorsque les recouvrements étaient singuliers, le préconditionneur était aussi singulier. Pour pouvoir l'utiliser, nous avons suivi le même principe précédent. La petite diérence entre les deux se situe juste au niveau du shift des recouvrements. Dans le cas du Test 5 nous avons pris pour shift la plus grande valeur propre. Ce choix a été justié par la facilité de calcul de cette valeur propre. Il faut noter que la singularité des sous domaines A i ou des recouvrements C i est généralement conséquence du partitionnement de la matrice qui est obtenu pour satisfaire ces deux objectifs (équilibrage des partitions et minimisation des éléments non nuls entre partitions) sans se soucier de la qualité numérique des partitions obtenues. Faisant allusion au partitionnement, la forme explicite de Schwarz multiplicatif impose un partitionnement 1D de la matrice (voir 2.2.2). Or comme des outils existants [32, 33] de partitionnement de graphe adjacent à la matrice ne prenent pas en compte cette contrainte, il nous faut donc construire un outil de partitionnement 1D pour pouvoir tirer prot de la forme explicite de Schwarz multiplicatif. Ceci fait l'objet du prochain chapitre.

53 Chapitre 3 Partitionnement pour la forme 1D de Schwarz multiplicatif 3.1 Introduction Dans les chapitres précédents, nous avons présenté les techniques de décomposition de domaine comme des techniques du type diviser pour régner. Comme préalable à ces techniques, il y a la partition des données à traiter. Il s'agit dans notre cas de partitionner le graphe adjacent à la matrice. Ce partitionnement est généralement fait sous contrainte que les tailles des diérentes parties soient sensiblement les mêmes. Dans le cas de la forme explicite de Schwarz multiplicatif une nouvelle contrainte est que chaque partition doit avoir au maximum deux voisins. L'impossibilité des outils existants [32, 33] à prendre en compte cette nouvelle contrainte nous a amené à développer un outil de partitionnement prenant en compte cette contrainte. Ceci a fait l'objet d'un récent article [6], qui sera la base de ce chapitre. 3.2 Dénitions et notations Soit A R n n une matrice et G = (V, E) le graphe adjacent à A. Dénition Adjacence de V i On appelle adjacence de V i dans l'ensemble Ω l'ensemble déni par : Adj Ω (V i ) = {v l Ω, (v l, v t ) E avec v t V i } (3.1) Dénition Partition de graphes Une partition Π de V est une famille (V i ) i [1:p] de k sous ensembles non vides disjoints de V telle que l'union de toutes ces parties égale à V. La gure 3.2 est une partition du graphe G de la gure 3.3. Soit P(G) l'ensemble de toutes les p-partitions de G. On peut remarquer que le nombre P(G) de p-partition du graphe G est asymptotiquement minoré par O(p n ) [23]. Par conséquent, trouver la meilleure partition satisfaisant un certain critère en parcourant l'ensemble des partitions de G est donc matériellement impossible pour la plupart des graphes. Dénition Graphe quotient Le graphe quotient de la partition Π de G qu'on note G(Π) = (V (Π), E(Π)) est le graphe déni 46

54 3.2. Dénitions et notations 47 Fig. 3.1 Un graphe G Fig. 3.2 Une partition de G comme suit : V (Π) = [1 : p]; soient u et v deux sommets de V (Π), l'arête (u, v) E(Π) s'il existe une arête de G entre les parties V u et V v de Π. Soit Π P(G) = (V i ) i [1:p] une partition de G. Parmi les arêtes de G on distingue, relativement à V i, trois sous-ensembles distincts : 1. E I (V i ), l'ensemble des arêtes internes associées à V i, c'est à dire l'ensemble des arêtes ayant leurs extrémités dans V i ; 2. E F (V i ), l'ensemble des arêtes frontières associées à V i, c'est à dire l'ensemble des arêtes ayant exactement une extrémité dans V i ; 3. E E (V i ), l'ensemble des arêtes externes associées à V i, c'est à dire l'ensemble des arêtes n'ayant aucune extrémité dans V i. Par extension, on dénit E I (Π) = Vi ΠE I (V i ); E E (Π) = Vi ΠE E (V i ) les ensembles qui représentent respectivement les arêtes internes et externes à l'ensemble des parties de la partition. L'ensemble des arêtes externes E E (Π) est très souvent noté S(Π) et est appelé séparateur du graphe G par la partition Π. Un tel partitionnement est appelé partitionnement des arêtes car les interfaces entre les diérents ensembles de sommets correspondent à des ensembles d'arêtes. Il existe aussi un p-partitionnement de sommets du graphe G qui consiste à partitionner V en une famille (V i ) i [1:p] d'ensembles de sommets d'une part, et un ensemble S de sommets d'autre part, tel qu'il n'existe pas d'arête (u, v) reliant un sommet u de V i à un sommet v de V j lorsque i j. Autrement dit, il n'existe pas d'arêtes entre V i et V j sans passer par S. Ainsi, pour toute partie V i de Π, toute arrête de E F (V i ) a une extrémité dans S. S est appelé séparateur du graphe G pour le partitionnement Π. Le problème de p-partitionnement du graphe G = (V, E) correspond généralement à trouver la partition Π P(G) telle que : Le poids de chaque partie est identique, ceci dans la mesure du possible; Le poids de l'interface entre les parties soit le plus petit possible. La première contrainte est une contrainte d'équilibrage, tandis que la seconde est une contrainte sur la taille des interfaces. On obtient alors la dénition suivante. Dénition Problème du k-partitionnement de graphes Le problème de k-partitionnement d'un graphe non orienté G = (V, E) avec les arêtes et les sommets valués dans R où w V : V R et w E : E R désignent les applications qui à chaque sommet ou arête associent son poids, s'énonce maintenant comme suit :

55 3.3. Partitionnement 1D 48 Trouver un couple (S, (V i ) i [1:p] ) où S est un séparateur et (V i ) i [1:p] une famille de sousensembles de V tels que : 1. Les poids des parties V i soient peu diérents entre eux, c'est à dire qu'il faut minimiser la diérence des poids entre chaque couple de parties. 2. La coupe x S w(x) soit minimale (avec w = w V dans le cas d'un séparateur de sommet et w = w E dans le cas d'un séparateur d'arêtes). Si on se situe dans un contexte d'ordinateurs parallèles, la quantité w V (v i ) représente v i V j la charge de calcul à soumettre à chaque processeur tandis que la quantité w(x) représente x S une estimation du volume de communications entre processeurs dans le cas du produit matricevecteur. Ce problème est un problème de recherche d'un optimum parmi l'ensemble des partitionnements du graphe G, qui a été démontré comme étant NP Complet [23]. Trouver la meilleure solution dans le cas d'un graphe G quelconque a donc une complexité proportitionnelle au nombre de partition de G c'est à dire O(p n ). En conclusion, la plupart du temps on est obligé de se contenter de résultats non-optimaux, produits par des heuristiques. Il y a alors un compromis à faire entre la qualité du résultat de partitionnement et le temps mis pour l'obtenir. Dans certaines applications comme la conception des circuits intégrés [34, 35] ou l'interaction entre les partitions correspond en fait aux signaux entre sous composants, il sera question d'avoir le meilleur résultat possible car plus il y a d'interactions entre composants plus la réalisation du circuit coûte cher. Par contre, dans le cas des méthodes du type Krylov qui utilisent comme opération de base le produit matrice-vecteur, le plus important est le temps total (partitionnement plus résolution du système). En d'autres termes, le temps passé dans l'optimisation du partitionnement doit être plus petit que le temps gagné dans les opérations matrice-vecteur. Par conséquent, l'appréciation de la qualité du résultat d'un partitionnement dépend de l'application cible, mais les paramètres d'appréciation restent les mêmes. Il s'agit de : 1. L'équilibrage des charges représenté dans la dénition par le premier point. 2. La coupure représentée dans la dénition par le deuxième point. 3. Le temps d'obtention des partitions. Il existe plusieurs heuristiques permettant de calculer une p-partition d'un graphe. Ces heuristiques se divisent en trois grandes classes que sont : les méthodes géométriques, les méthodes spectrales et les méthodes combinatoires. Pour en savoir plus on peut se reférer aux articles suivants [34, 32, 33, 35]. Il existe aussi plusieurs logiciels qui permettent d'obtenir de telles partitions, on peut citer entre autre METIS [10], SCOTCH [11]. Dans tous les logiciels précédents, les contraintes sont gées. Autrement dit, elles se limitent à satisfaire les contraintes présentées en la dénition Dans ce cas, une nouvelle forme de contrainte impose une nouvelle forme de partitionnement. 3.3 Partitionnement 1D Au chapitre 2 précédent nous avons vu que pour pouvoir écrire la forme explicite de Schwarz multiplicatif il fallait que les partitions V i de V soient telles que chacune des partitions aient

56 3.3. Partitionnement 1D 49 au maximum deux voisins V i 1 et V i+1. Nous avons appelé le partitionnement intégrant cette nouvelle contrainte partitionnement 1D. Dénition Partitionnement 1D Le problème de partitionnement 1D d'un graphe non orienté G = (V, E) avec les arêtes et les sommets valués comme en la dénition 3.2.4, s'énonce comme suit : Trouver un couple (S, (V i ) i [1:p] ) où S est un séparateur et (V i ) i [1:p] une famille de sousensembles de V tels que : 1. Le poids de chaque partie V i soit le même, c'est à dire qu'il faut minimiser la diérence des poids entre chaque couple de parties. 2. S'il existe un chemin dénit par la paire {(u, w), (w, v)} avec u V i, w S et v V j alors i j 1 3. La coupe x S w V (x) soit minimale (car il s'agit d'un partitionnement de sommet). Un exemple de partitionnement 1D d'un graphe G est donné à la gure 3.4 Fig. 3.3 Un graphe G Fig. 3.4 Une partition 1D de G La dénition diére de celle de la dénition car elle introduit une nouvelle contrainte représentée par le point 2 de la dénition Nous avons au point (3) de la dénition choisi de minimiser le poids des sommets du séparateur pour les deux raisons suivantes : 1. En minimisant le séparateur on réduit du même coup la somme des rangs de C i dans l'expression 2.7 de la page 29. Par conséquent, d'après la proposition on réduit le nombre maximun d'itérations nécessaires pour faire converger une méthode de Krylov préconditionnée par la méthode de Schwarz multiplicatif. 2. On réduit les communications car le séparateur estime le volume de données communiquées entre les processeurs lorsqu'on applique un vecteur à la forme explicite de Schwarz multiplicatif Numérotation déduit du partitionnement 1D Soit (S, (V i ) i [1:p] ) une partition 1D du graphe G. On peut diviser le sous ensemble S des séparateurs en sous ensembles Γ i (i = 1,..., p) dénit comme Γ i = Adj S (V i ). On dénit par la suite par S i (i = 1,..., p 1) le séparateur entre V i et V i+1 comme étant S i = Γ i Γ i+1, pour i = 1,..., p 1.

57 3.3. Partitionnement 1D 50 On peut déterminer une permutation des sommets V du graphe G à partir du partionnement précédent comme suit : Pour i = 1,..., p 1, On numérote les sommets de V i ensuite ceux de S i. Par la suite on numérote les sommets dans V p. Un exemple d'application de cette permutation est donné à la gure 3.6 Nous appelerons Fig. 3.5 Matrice originale Fig. 3.6 Matrice permutée par la suite cette permutation permutation en bloc diagonal avec recouvrement[6]. Pour illustrer cela, nous allons montrer comment construire les parties avec recouvrements à partir de la partition précédente. Contruction des partitions avec recouvrement A partir des séparateurs S i entre les parties V i, on peut construire une décomposition avec recouvrement du graphe G comme suit : W 1 = V 1 S 1, W i = S i 1 V i S i (i = 2,..., p 1), W p = V p S p 1. Il faut remarquer que p W i = V et que W i W i+1 = S i i=1 A partir de cette division de V on construit les sous domaines A i à partir des sous ensemble W i et le recouvrement C i (i = 1,..., p 1) à partir des sous ensembles S i qui permettent de dénir la forme explicite de Schwarz multiplicatif. Les étapes suivantes vont nous permettre de construire le partitionnement 1D du graphe adjacent à A. 1 Permuter la matrice A de sorte que le prol de la matrice permutée soit réduit. Le graphe G dans la suite est celui de la matrice permutée. 2 Dénir une partition initiale Π de V. Cette étape vise essentiellement à construire des parties V i qui satisfassent la contrainte de partitionnement 1D

58 3.4. Construction de la partition initiale 51 3 Raner la partition Π. Dans cette étape on essaye de minimiser le séparateur S entre les parties V i (i = 1,..., p). A la première étape de notre algorithme, nous avons choisi de réduire le prol de la matrice car en le faisant on réduirait au nal la taille de S. Pour le faire nous avons utilisé les permutations obtenues par l'algorithme reverse Cuthill-Mackee [36] (rcm) ou les permutations obtenues par l'algorithme de Sloan [37] (sloan). La première permutation a pour eet de réduire la bande de la matrice alors que la deuxième a pour eet de réduire le prol. Nous verrons dans les résultats expérimentaux que la permutation de Sloan fournie les meilleurs résultats. Dans la suite, nous allons supposer qu'on part d'un partitionnement des arêtes de G, et à partir de cela nous allons construire un partitionnement des sommets de G, c'est à dire on va construire le couple (S, (V i ) i [1:p] ). 3.4 Construction de la partition initiale Il s'agit dans ce paragraphe de construire une partition de départ Π 0 du graphe G. Cette partition devra essentiellement satisfaire la contrainte de partitionnement 1D c'est à dire que s'il existe une arête (u, v) entre les parties V i et V j alors i j 1. Il faut rappeller qu'au départ il s'agit d'un partitionnement des arêtes. Supposons qu'une partition Π quelconque satisfasse la contrainte de partitionnement 1D. On note par G(Π) le graphe quotient correspondant. Alors le graphe G(Π) a une structure linéaire. Si de plus les deux extrémités ne sont pas en relation alors le graphe quotient G(Π) est un arbre. Nous allons supposer que les deux extrémités de la partition Π de G ne sont pas en relation c'est à dire (v i, v j ) E(v i V 1 ou v j V p ). Dans ce cas G(Π) est un arbre. En conséquence, la partition initiale Π 0 cherchée est un arbre construit à partir de G. Pour construire un arbre à partir d'un graphe, il sut de parcourir ce graphe en largeur ou en profondeur. Nous utilisons dans notre cas un parcours en largeur car comparativement au parcours en profondeur il produit un arbre plus profond qui comme on le verra est une condition importante pour avoir une bonne partition nale. Nous allons suivre les étapes suivantes pour construire la partition initiale Π Construction d'un arbre à partir T du graphe G. 2. Partitionnement de l'arbre T. 3. Ajustement de la partition trouvée en Construction d'un arbre à partir du graphe G Nous allons pour celà utiliser un algorithme de parcours en largeur du graphe. Il consiste à construire de façon récursive des sous ensembles L i de V tels que L i+1 Adj V (L i ), avec L 0 = {v 0 } et v 0 V un sommet quelconque. Cet algorithme relativement simple à mettre en uvre est décrit par l'algorithme 6 suivant : on peut remarquer que l'arbre produit par l'algorithme 6 dépend étroitement du point de départ v 0 choisi. On représente par l(v 0 ) le nombre de sous ensembles L j produits par l'algorithme 6 avec pour sommet de départ v 0. On appelle encore l(v 0 ) excentricité associée au sommet v 0. Dans la suite L j sera appelé niveau j de l'arbre.

59 Algorithme 6 Construction de l'arbre : T (v 0 ) = Level(G, v 0 ) 1: Données : G = (V, E), v 0 ; 2: Sorties L j,j = 1,...,; T (v 0 ); 3: M ARK = représente l'ensemble de sommet déjà marqué ; 4: v 0 représente le sommet de départ ; 5: L 0 = v 0 ; 6: MARK = MARK L 0, j = 1; 7: tantque MARK V faire 8: L j = ; 9: L j = L j (Adj G (L j 1 ) \ MARK); 10: MARK = MARK Adj G (L j 1 ); 11: si L j = alors 12: Choisir un sommet non marqué v dans V et mettre dans L j ; 13: nsi 14: j = j + 1; 15: n tantque 3.4. Construction de la partition initiale 52 On peut vérier que les sous ensembles L j (j = 1,..., l(v 0 )) réalisent une partition de l'ensemble V des sommets du graphe et que ces partitions vérient la contrainte de partitionnement 1D. Il faut remarquer qu'il s'agit ici d'une partition en l(v 0 ) parties. Ce partitionnement conditionne alors l'existence ou non de la partition initiale Π 0. En eet si l(v 0 ) < p c'est à dire que le nombre de niveaux dans l'arbre est plus petit que le nombre désiré de parties, alors on ne peut pas à partir de cet arbre construire une partition 1D de G. Si par contre l(v 0 ) p alors on peut toujours réaliser une partition de G à partir de l'arbre obtenu. Il devient alors indispensable de trouver un arbre à partir du graphe G qui soit tel que le nombre de niveau l(v 0 ) soit le maximum possible. Pour cela on peut choisir comme sommet de départ, un sommet périphérique du graphe. Dénition Diamètre d'un graphe Le diamètre d'un graphe qu'on notera δ(g) est égal à la plus grande excentricité de ce graphe. C'est à dire δ(g) = max{l(v) avec v V }. Les sommets v V tel que δ(g) = l(v) sont appelés sommets périphériques de G. Dénition Largeur d'un arbre T (v) On appelle largeur de l'arbre T (v) et note ω(t (u)) le cardinal maximal des L j (j = 1,..., l(u)) de T (u). Pour la suite on représentera par V le cardinal de V et par E le cardinal de E. La complexité en temps du calcul des sommets périphériques est de l'ordre de O( V ( V + E )) [38] ce qui est très coûteux. Dans la pratique il n'est pas envisageable de calculer exactement les sommets périphériques du graphe, on remplace alors les sommets périphériques par les sommets pseudo périphériques [38]. Il s'agit d'une heuristique (algorithme 7) proposé par Gibbs et al [38] qui calculent la valeur approchée du diamètre du graphe G. Dans ce cas les sommets associés à ce diamètre portent le nom de sommets pseudo périphériques.

60 3.4. Construction de la partition initiale 53 Algorithme 7 Détermination des sommets pseudo-péripheriques : (v, u) = pseudo(g) 1: Données : G; 2: Sorties (v, u); 3: [A] : Choisir un sommet v de dégré minimum; 4: [B] : Construire T (v) = Level(G, v); Soit S = T l(v). 5: [C] : Choisir s'il existe s S tel que l(s) > l(v). Mettre à jour v s et retourner à l'étape B. Sinon aller à [D]. 6: [D] : Choisir u S tel que la largeur de T (u) soit minimale. La complexité en temps associée à cette heuristique est de O(α ( V + E )) avec α correspondant au degré du sommet de degré minimun du graphe G. Gibbs [38] a montré sur plusieurs exemples que cette heuristique fournit les mêmes résultats que l'algorithme exact. On suppose pour la suite que les sommets pseudo-périphériques trouvés par l'algorithme 7 sont tels que le pseudo-diamètre l(v) est plus grand que p le nombre désiré de partitions. On va maintenant partitionner T (v) en p partitions Partitionnement de T (v) Il s'agit dans ce paragraphe de diviser T (v) de taille l v en p parties telles que le poids des parties sont quasi-identiques. Nous allons formaliser ce problème comme un problème de partitionnement de chaînes de tâches. Dans ce cas, une tâche sera dénie à partir d'un niveau dans l'arbre. On représente par w V (L i ) le poids du niveau i dans l'arbre T. Dans notre cas ce poids correspond soit au cardinal de L i soit à la somme des arêtes incidentes à L i. Il s'agit alors de déterminer une séquence de délimiteurs Π p lv =< τ 1,..., τ p 1 > telle que le coût de la partition C(Π p lv ) soit minimale, avec C(Πp lv ) = max 1 j p ( la suite P j = τ j k=τ j 1 +1 w V (L k ). τ j k=τ j 1 +1 w V (L k )). On pose pour L'article de Pinar [39] sur le partitionnement des chaînes de tâches est une bonne revue des algorithmes existants à ce sujet. Parmi ces algorithmes nous avons choisi d'utiliser un du type ranement itératif qui est présenté ici par l'algorithme 8. Notre choix a été motivé par sa simplicité d'implémentation et aussi par le coût en temps. Pour pouvoir présenter cet algorithme, nous allons introduire la notion de leftist partition(lp). Supposons qu'on dispose d'une partition Π telle que la partie la plus à droite a au moins deux tâches c'est à dire que τ p τ p 1 2. La partition Π sera dite LP si en augmentant P l (pour tout l < p) en retirant w V (L τl +1) de P l+1 alors P l devient le maximum des poids des parties. L'idée de l'algorithme 8 est de construire une suite de partition LP de coût minimum (boucle while) en partant d'une partition initiale qui est LP. Une étude de la complexité en temps de cet algorithme montre qu'il est dans l'ordre de O(p(l v p) lg p) [39]. Il faut remarquer que dans l'algorithme 8 les tâches sont considérées comme indivisibles. A la suite de l'algorithme 8 on obtient une séquence d'entiers τ 0,..., τ p ( τ 0 < τ 1,..., < τ p ) qui réalise une partition de T (v).

61 3.4. Construction de la partition initiale 54 Algorithme 8 Partitionnement de T (v) 1: Données : w i (i = 1,..., l v ); 2: Sorties Π =< τ 1,..., τ p 1 >; On se donne une partition initiale de T (v) choisie comme suit : 3: pour k = 0 : p 1 faire 4: τ k = k ; P k+1 = w V (L k+1 ); 5: n pour 6: τ p = l v ; P lv = l v w V (L k ); k=p 7: répéter 8: b = l'indice de la partition de poids maximun, B = P b ; 9: si τ b = τ b alors 10: Sortir de la "boucle repeter"; La partition obtenue est optimale 11: sinon 12: j = b; 13: nsi 14: tantque P j B and j > 1 faire 15: τ j 1 = τ j 1 + 1; 16: P j = P j w V (L τj 1 ); 17: P j 1 = P j 1 + w V (L τj 1 ); 18: si P j B alors 19: j = j 1; 20: nsi 21: n tantque 22: jusqu'à P 1 B

62 3.4. Construction de la partition initiale 55 Nous pouvons alors déduire une partition des sommets de G en posant V 1 i = τ i+1 1 (i = 1,..., p). On note par Π 1 la partition produite à cette étape. Comme les tâches L i (i = 1,..., l v ) sont indivisibles dans l'algorithme 8, il peut arriver que la partition Π 1 soit très mal équilibrée. Ceci arrive généralement lorsque la largeur ω(t (u)) de l'arbre est supérieure à la taille moyenne des partitions. La gure 3.7 est un exemple de résultat produit par l'algorithme 8 précédent. Si on suppose que le poids des tâches est le nombre de sommets par partition, alors le nombre moyen de sommets par partie est de B = 22/4. On observe que la w V (V 2 ) = 8 > B. La raison est que V 2 est constitué d'une seule tâche et comme elle est indivisible elle doit constituer la partie V 2. La gure 3.8 est une amélioration de la gure 3.7. Dans ce cas on se permet de diviser les tâches. Le paragraphe suivant décrit en détail comment réaliser cela. k=τ i L k Fig. 3.7 Partition produite par algorithme 8 Fig. 3.8 Amélioration de la partition de la gure Ajustement de Π 1 Posons σ min = w V (V )/p (w V (V )/p) θ et σ max = w V (V )/p + (w V (V )/p) θ, avec θ correspondant au seuil de tolérance entre les parties de la partition. Il s'agit dans cette étape de réduire si nécessaire la taille de certaines parties Vj 1 (j = 1,..., p) de Π 1. La nécessité étant justiée par le fait qu'il existe Vj 1 tel que v V (V j ) > σ max. Les parties Vj 1 de Π 1 ayant chacune au plus deux voisins, alors leur mise à jour ne peut se faire que par Vj 1(mise à jour par la gauche) ou Vj+1(mise 1 à jour par la droite). Pour simplier notre présentation on va supposer que la mise à jour se fait à gauche. Supposons qu'il existe une partie V 1 l tel que w V (V 1 l ) > σ max. L'ajustement du poids de V 1 l va consister à chercher un sous ensemble Y V 1 l Si un tel ensemble existe, alors il est enlevé de V 1 tel que w V (Y ) > w V (Adj V 1 (Y )). l 1 l (ligne 7 algorithme 9) et mis dans V l+1.

63 3.5. Ranement des séparateurs de Π 0 56 Ensuite pour garder la contrainte de partitionnement 1D le sous ensemble Adj Vl 1 (Y ) est mis dans V l (ligne 8 et boucle repeter algorithme 9 ) ceci jusqu'à la première partition c'est à dire l = 1. On répète le processus jusqu'à ce qu'il n'existe plus V 1 l tel que w V (V 1 l ) > σ max. An d'éviter la boucle innie, on verrouille la partition V 1 l une fois qu'elle a été sélectionnée (ligne 3 algorithme 9). Algorithme 9 Ajustement de Π 1 1: Données Π 1, G ; 2: Resultat : Patition initiale Π 0 ; 3: mark[i]= false pour i = 1,..., p; 4: tantque V 1 i 5: si Y tel que Ω(Adj V 1 i 1 6: Z = Y ; 7: Vi 1 = Vi 1 \ Z ; i+1 Z ; 8: Vi+1 1 = V 1 9: j = i; 10: répéter 11: V 1 j = V 1 j tel que w V (Vi 1 ) > σ max et mark[i] true faire (Y )) < w V (Y ) alors Adj(Z, V 1 (Z)); (Z); 12: V 1 j 1 = V 1 j 1 \ Adj V 1 j 1 13: Z = Adj V 1 j 1 14: j = j 1; j 1 ); 15: jusqu'à ( Z == ) or( j == 1); 16: mark[i] = true; 17: sinon 18: mark[i] = true; 19: nsi 20: n tantque Soit β la complexité en temps utilisée pour déterminer le sous ensemble Y. La mise à jour des parties V 1 l (l = 1,..., p) se fait en un temps de l'ordre de O( V ). En conclusion la complexité en temps de l'algorithme 9 est dans O( V k β) avec k le nombre de parties V 1 l (l = 1,..., p) qui sont telles que w V (V 1 l ) > σ max. Comme résultat de l'algorithme nous avons la partition initiale Π 0 qui est telle que chaque partie Vj 0 (j = 1,..., p) a au plus deux voisins Vj 1 0 et Vj+1 0 et w V (Vj 0) σ max. On peut alors passer à la deuxième étape de notre algorithme qui va consister à réduire la taille des séparateurs entre les parties. 3.5 Ranement des séparateurs de Π 0 Dénition Minimun vertex cover Un Vertex cover d'un graphe G = (V, E) est un sous ensemble C de V tel que toutes les arêtes de G ont un sommet dans C. Un Minimun vertex cover est un Vertex cover de taille minimum. On appelle séparateur entre Vj 0 et Vj+1 0 qu'on note par S j, l'ensemble formé des sommets adjacents à Vj 0 et Vj+1. 0 L'objectif de cette section est de déterminer les séparateurs S j (j =

64 3.5. Ranement des séparateurs de Π ,..., p 1) de taille minimum. Considérons dans un premier temps les parties V1 0 et V2 0. Le séparateur de taille minimum entre les deux ensembles est l'ensemble minimum des sommets qui permet de recouvrir toutes les arêtes entre V1 0 et V2 0. Dans la littérature cet ensemble s'appelle minimum vertex cover. Pour déterminer ce sous ensemble on peut juste calculer le maximum matching du graphe biparti entre V1 0 et V2 0. Pour illustration prenons la gure 3.9 qui est un exemple de partition en trois parties. Dans cette gure, les arêtes internes aux parties sont omises. Les sommets correspondants au minimum vertex cover sont ceux qui ne sont pas remplis, ils forment le séparateur. Si on retire de ces parties les séparateurs, on obtient une nouvelle partition de G formée des sous graphes W 1,..., W p et des séparateurs S 1,..., S p 1, avec W j = V j \ (S j S j 1 ). L'objectif de cette section est de réduire la taille des séparateurs S j (j = 1,..., p). Il faut noter que cette réduction est faite en respectant les contraintes de partitionnement 1D et d'équilibre de charge entre parties. Formellement, réduire la taille du séparateur S j entre W j 1 et W j+1 consiste à déterminer un sous ensemble Y S j tel que en retirant Y de S j et en y ajoutant Adj Wj+1 (Y ) ou Adj Wj 1 (Y ) la taille de S j sera réduite. Formellement, il s'agit de trouver Y S j tel que Adj Wj 1 (Y ) < Y ou Adj Wj+1 (Y ) < Y. Fig. 3.9 Partition Π 0 Fig Partition Π 0 avec les séparateurs

65 3.5. Ranement des séparateurs de Π 0 58 Il existe plusieurs algorithmes dans la littérature qui visent à réduire la taille des séparateurs après l'obtention d'une partition initiale. L'un des plus utilisés a été introduit par Kernighan et Lin [40]. Ce même algorithme a été par la suite amélioré par Fiduccia et Matteyses [41]. Il consiste à associer un gain (négatif ou positif) au mouvement potentiel d'un sommet de part et d'autre des parties W j. L'algorithme va déplacer le sommet ayant le plus grand gain en valeur absolu. Cet algorithme est très ecace lorsque le graphe est de petite taille. C'est pour cette raison qu'il est à la base de la phase de ranement dans les partitionnements du type multi niveaux [10, 11]. La particularité des algorithmes précédents est qu'ils déplacent un seul sommet à la fois. Une autre approche consiste à déplacer un sous ensemble de sommets à la fois. Cette approche a été introduite par Liu [42]. Considérons les deux premières parties W 1 et W 2 séparées par S 1. Supposons que le cardinal de W 1 est supérieur à celui de W 2. Pour réduire S 1, Liu [42] cherche s'il existe Y S 1 tel que Y > Adj W1 (Y ). Si un tel ensemble existe alors en retirant W 1 de S 1 pour mettre dans W 2 et en retirant Adj W1 (Y ) de W 1 pour S 1 on réduirait ainsi la taille de S 1. Nous avons utilisé le même principe que celui de Liu [42] pour réduire les séparateurs (S i ). Il existe néanmoins deux points de diérence avec l'algorithme original. Le premier point est l'introduction de la contrainte de partitionnement 1D (ligne 16, algorithme 10 ). Le deuxième point est sur la détermination du sous ensemble Y. Dans [42] le sous ensemble Y est tel que Y Adj W1 (Y ) = 1. Autrement dit, le déplacement du sous ensemble Y permet de réduire un seul élément dans S i. Ceci peut devenir très coûteux pour algorithme 10 qui pour chaque sous ensemble Y doit mettre à jour toute la partition. Nous avons remplacé cette approche par une approche basée sur la décomposition de Dulmage-Mendelsohn du graphe biparti déni entre S i et W i. Le prochain paragraphe va montrer comment construire Y à partir de la décomposition de Dulmage- Mendelsohn Décomposition de Dulmage-Mendelsohn pour le calcul de Y La décomposition de Dulmage-Mendelsohn est une décomposition canonique d'un graphe biparti. Elle a été utilisée par Pothen et Fan dans [43] pour déterminer une forme bloc triangulaire d'une matrice creuse. Nous allons l'utiliser ici pour réduire les séparateurs entre parties. Supposons que le séparateur à réduire est S i et que W i S i 1 > W i+1 S i+1. Posons Z = W i S i 1. On associe à ces ensembles le graphe biparti H = (Z, S 1, E 1 ) avec E 1 l'ensemble des arêtes qui relient Z à S 1. L'objectif de ce paragraphe est de montrer comment à partir de la décomposition de Dulmage-Mendelsohn de H on peut déterminer un sous ensemble Y S i tel que Adj Z (Y ) < Y. Mais avant, il convient de donner quelques dénitions permettant de comprendre cette décomposition. On appelle matching M de H un sous ensemble des arêtes n'ayant aucun sommet en commun. Une marche ou walk est une séquence de sommets v 0,..., v n 1, v n telle que (v i, v i+1 ) E 1. Une marche alternée par rapport au matching M est une marche où les arêtes alternent dans M. Un chemin alterné est une marche alternée dans laquelle les sommets ne se répètent pas. Un chemin alterné augmenté est un chemin alterné dont les sommets de départ et d'arrivée ne sont pas dans le matching M. La taille d'un matching M est le nombre d'arêtes dans M. Le maximum matching est le matching de taille maximum. Un sommet est dit marqué s'il appartient au matching M.

66 Supposons que M est un maximum matching de H Ranement des séparateurs de Π 0 59 Dénition Décomposition de Dulmage-Mendelsohn La décomposition de Dulmage-Mendelsohn consiste à diviser le graphe biparti H en sous ensembles de la manière suivante : V R = Ensemble des sommets de Z atteint par un chemin alterné partant d'un sommet non marqué de Z. HR = Ensemble des sommets de Z atteints par un chemin alterné partant d'un sommet non marqué de S i. SR = Z (V R HR). V C = Ensemble des sommets de S i atteints par un chemin alterné partant d'un sommet non marqué de Z. HC = Ensemble des sommets de S i atteints par un chemin alterné partant d'un sommet non marqué de S i. SR = S i (V C HC). Algorithme 10 Réduction des séparateurs 1: Données : G = (V, E), partition Π 0 avec V partitionné entre W 1,..., W k et S 1,..., S k 1. 2: Sortie : Partition Π avec W 1,..., W k et S 1,..., S k 1. 3: Initialisation Π = Π 0, q = 0; 4: Initialisation du vecteur ref[i] = true pour i = 1,..., k 1; 5: tantque i tel que ref[i] = true faire 6: Soit S i le séparateur de cardinalité maximum et tel que ref[i] = true; 7: m = S i ; 8: Supposons que W i S i 1 > W i+1 S i+1 ; 9: Z = W i S i 1 ; 10: Rechercher Y S i tel que Adj(Y, Z) < Y ; Utiliser pour cela la deuxième phase de decomposition de Dulmage Mendelsohn 11: si Y alors 12: q = q + 1; 13: Construction d'une nouvelle partition P q ; 14: W i+1 = W i+1 Y ; 15: S i = (S i Y ) Adj(Y, Z); 16: update(g, Y, i); 17: si Π q est équilibré et max S j j=1:k < m alors 18: Alors renvoyer cette partition comme le résultat Π = P q ; 19: sinon 20: ref[i] = false; 21: nsi 22: sinon 23: ref[i] = false; 24: nsi 25: n tantque Pothen et Fan dans [43] ont montré que les sous ensembles précédents sont indépendants du choix du maximum matching M et de plus que ces ensembles vérient les inégalités suivantes :

67 3.6. Expériences numériques 60 V R > V C, SR = SC et HR < HC. Posons Y = HC, il s'ensuit alors Adj Z (Y ) < Y car Adj Z (Y ) = HR. On montre aussi que Y est le plus petit sous ensemble de S i qui maximise la diérence Y Adj Z (Y )) dans le graphe biparti H et que Y est unique. Ainsi donc, l'algorithme de détermination de Y se divise en deux phases : 1 On cherche le maximum matching M du graphe biparti H entre Z et S i. 2 On partitionne Z selon M en sous ensembles HR, SR et V R et S i selon M en V C, HC et SR. La complexité en temps de cet algorithme est dominée par la phase 1 qui peut être implémentée dans O( S i E i ) en supposant que S i < Z. Une fois le sous ensemble Y déterminé, on peut retourner à la ligne 16 de l'algorithme 10 pour mettre à jour les partitions Mise à jour de la partition Comme nous l'avons mentionné aux lignes 14 et 15 de l'algorithme 10, la mise à jour de la partition doit consister dans un premier temps à mettre Y dans W i+1 (ligne 14 de l'algorithme 10) ensuite à mettre Adj Z (Y ) dans S i (ligne 15 de l'algorithme 10). Si Adj Wi 1 (Adj Z (Y )) alors pour maintenir la contrainte de partitionnement 1D, on doit propager cette mise à jour aux autres parties W i, S j et W j avec j = 1,..., i 1(ligne 16 de l'algorithme 10). Cette situation se produit lorsque, après la partition initiale, on a une partie qui est constituée d'un seul niveau de l'arbre (voir section 3.4.1). L'algorithme 11 décrit la mise à jour de la partition. Pour besoin de simplication, nous avons supposé que W i S i 1 > W i+1 S i+1. Lorsque W i S i 1 < W i+1 S i+1 l'algorithme est similaire. Il sut alors de propager les modications de la partition vers des parties d'index supérieures à S i. Cette mise à jour peut se faire avec une complexité O(n) si la propagation part du premier séparateur S 1. Pour terminer cette section sur le ranement des séparateurs, nous allons faire une estimation de sa complexité en temps. A chaque passe de l'algorithme 10 on calcule la décomposition de Dulmage-Mendelsohn en O( S k E k ) et ensuite on met à jour la partition en O(n). Dans ce cas, la complexité en temps d'une passe est de O( S k E k + n). Comme on a au maximum p passes de l'algorithme 10 alors sa complexité en temps sera de O(( S max E max + n)p), où S max est le séparateur de taille maximum et E max l'ensemble des arêtes de taille maximum. 3.6 Expériences numériques Les expériences sont divisées en deux phases. Dans la première phase, on étudie par les expériences la qualité de notre algorithme. Dans la deuxième phase, on présente l'eet de notre partitionnement dans le produit matrice vecteur. Machines Les tests sont réalisés sur les clusters du projet GRID'5000. Pour la phase de partition proprement dite nous utilisons un n ud dont les processeurs ont une fréquence de 2.2Ghz et une mémoire de taille 2Go. Pour la phase matrice-vecteur, nous avons utilisé le cluster Paraquad.

68 3.6. Expériences numériques 61 Algorithme 11 update(g,y,i) Données : G = (V, E), Y, i (l'indice du séparateur à mettre à jour separator). F = Adj(Y, W i ); T = Adj(Y, S i 1 ); W i = W i F ; S i 1 = S i 1 T ; j = i 1; tantque T and j 1, and Partition équilibrée faire F = Adj(T, W j ); T = Adj(T, S j 1 ), Si j > 1, Sinon T = ; S j = S j F T ; W j = W j F ; S j 1 = S j 1 T, Si j > 1; Chercher Z S j tel que Adj(Z, W j S j 1 ) = ; S j = S j Z ; W j+1 = W j+1 Z ; j = j 1; n tantque Problèmes tests Les cinq problèmes tests sont matrix_new_3, stomach, torso3, af_shell9, ldoor, et G3_circuit. Ils proviennent de la collection des matrices creuses de l'université de Floride [31] Évaluation de l'algorithme de partitionnement Comme nous l'avons mentionné à la section 3.4.1, les caractéristiques de l'arbre T inuencent la qualité de la partition. Pour décrire grossièrement l'arbre T, nous avons besoin des trois paramétres suivants : 1. Le nombre de niveaux dans l'arbre : NUML. 2. La taille moyenne des niveaux dans l'arbre : AVG. 3. La largeur de l'arbre : MAXCL. Il est aussi important pour nous de décrire la matrice d'entrée, car pour certaines matrices creuses comme celles ayant une ligne ou colonne pleine une telle partition n'existe pas. La taille de la matrice ainsi que le nombre d'éléments non nuls dans la matrice sont représentés par N et NNZ. Nous représentons dans la table 3.1 la légende des diérents symboles utilisés dans les tables Les Tables présentent les résultats obtenus par notre algorithme. Dans ces expériences, nous avons utilisé comme permutation initiale sloanou rcm. Nous avons conservé sur ces tables (colonne TINIT) le meilleur des résultats. On considère comme seuil d'équilibre entre partition θ = 20%. La Table 3.2 présente les résultats de notre algorithme de partitionnement 1D sur la matrice matrix_new_3. On observe dans cette table que MAXCL=6364 lorsque la permutation de départ est rcm et MAXCL=8843 si elle sloan. Comme nous l'avons vu en section si la taille moyenne des parties est inférieure à MAXCL alors les parties seront mal équilibrées. C'est ce qu'on observe lorsque le nombre de parties passe à 32 (NP=32). Dans cet exemple, bien que

69 3.6. Expériences numériques 62 Symbole # Signication MAX/AVG Ratio entre la taille maximum des partitions et la taille moyenne des partitions. SEPSIZE La taille totale des séparateurs. La somme de la taille des séparateurs S i (i = 1,..., k 1). SEPSIZE/N Le ratio des séparateurs par rapport à la taille de la matrice N. ELT Temps mis durant le partitionnement. TINIT Type de permutation initiale. Tab. 3.1 Légende pour les tables Matrix N NNZ NUML MAXCL AVGL sloan rcm sloan rcm sloan rcm matrix_new_ NP MAX/AVG SEPSIZE SEPSIZE/N ELT TINIT 4 1, ,09 8,00 sloan 8 1, ,08 8,00 sloan 16 1, ,11 8,00 sloan 32 1, ,13 13,00 rcm Tab. 3.2 Partitionnement de la matrice matrix_new_3 le nombre de niveaux NUML dans l'arbre est important cela ne garantit pas que les parties trouvées seront bien équilibrées. Ceci parce que les tailles des niveaux de l'arbre sont aussi mal équilibrées (MAXCL/AVGL=2948). La table 3.3 fournit un résultat meilleur que la table 3.2. Les parties produites sont équilibrées (MAX/AVG 1, 17) par rapport au seuil de 20%. Ceci est dû au fait que le ratio MAXCL/AV GL 2 est faible. Si on compare le temps écoulé dans ce cas et celui de la table 3.2, on observe que celui de la table 3.3 est plus petit, pourtant la taille de la matrice matrix_new_3 est plus petite que celle de la matrice stomach. La raison est que dans le cas de la table 3.2 la phase de ranement des séparateurs est très coûteuse. A la table 3.6 on a aussi des parties bien équilibrées, même si le ratio MAXCL/AV GL 419 est très grand. La raison est que dans tous les cas le ratio N/NP > MAXCL. On peut aussi observer que la taille des séparateurs est très importante. Par exemple pour NP = 64 on a Matrix N NNZ NUML MAXCL AVGL stomach NP MAX/AVG SEPSIZE SEPSIZE/N ELT TINIT 4 1, ,003 1,00 sloan 8 1, ,02 1,00 sloan 16 1, ,04 7,00 sloan 32 1, ,08 1,00 sloan 64 1, ,17 1,00 sloan Tab. 3.3 Partitionnement de la matrice stomach

70 3.6. Expériences numériques 63 Matrix N NNZ NUML MAXCL AVGL sloan rcm sloan rcm sloan rcm torso NP MAX/AVG SEPSIZE SEPSIZE/N ELT TINIT ,047 8,00 sloan 8 1, ,09 25,00 sloan 16 1, ,19 7,00 sloan 32 1, ,34 5,00 sloan 64 1, ,18 5,00 sloan Tab. 3.4 Partitionnement de la matrice torso3 Matrix N NNZ NUML MAXCL AVGL sloan rcm sloan rcm sloan rcm af_shell NP MAX/AVG SEPSIZE SEPSIZE/N ELT TINIT 4 1, ,009 3,00 sloan 8 1, ,02 3,00 sloan 16 1, ,04 3,00 sloan 32 1, ,09 3,00 sloan 64 1, ,19 3,00 sloan Tab. 3.5 Partitionnement de la matrice af_shell9 environ 31% de la matrice dans le séparateur. Ceci se justie par le fait que la matrice d'entrée n'est pas très creuse. On a environ 23 éléments non nuls par lignes. Les tables 3.4, 3.5 et 3.7 présentent des résultats quasi-identiques sur la qualité du partitionnement produit. Les parties sont très bien équilibrées dans les trois cas. Comme nous l'avons dit pour le cas de stomach la raison est que le ratio MAXCL/AV G est faible. On peut observer dans la table 3.4 que lorsque le nombre de parties NP = 64, la taille moyenne des parties N/NP = 4050 devient inférieure à MAXCL = Par conséquence, le niveau correspondant à M AXCL formera une partie à la suite de l'algorithme 8 (première étape du partitionnement initial). Par conséquent le ratio MAX/AV G = 1, 33 sera au dessus du seuil de tolérance de 20% xé au départ. Mais à la suite de la phase d'ajustement, l'algorithme 9 parvient à réduire MAX/AV G = 1, 14(voir table 3.4). Pour conclure cette partie d'expérimentation, on peut dire que l'équilibrage des partitions obtenues par notre algorithme dépend étroitement de l'arbre construit à la première phase de de notre algorithme. A la section 3.4 nous avons souligné que la qualité de la partition produite par notre algorithme dépendait du nombre de niveaux dans l'arbre. Cependant comme on a pu l'observer à la table 3.2, cette condition n'est pas susante. Par contre, à la table 3.4 on a pu observer qu'avec un nombre réduit de niveaux dans l'arbre on avait une bonne partition. Ainsi donc, une indication sur la qualité future des partitions produites par notre algorithme doit se faire par le ratio MAXCL/AV GL. Plus ce ratio est petit, mieux la partition obtenue sera équilibrée.

71 3.6. Expériences numériques 64 Matrix N NNZ NUML MAXCL AVGL sloan rcm sloan rcm sloan rcm ldoor NP MAX/AVG SEPSIZE SEPSIZE/N ELT TINIT 4 1, ,02 73,00 sloan 8 1, ,05 76,00 sloan 16 1, ,10 76,00 sloan 32 1, ,20 75,00 sloan 64 1, ,3 79,00 sloan Tab. 3.6 Partitionnement de la matrice ldoor Matrix N NNZ NUML MAXCL AVGL sloan rcm sloan rcm sloan rcm G3_circuit NP MAX/AVG SEPSIZE SEPSIZE/N ELT TINIT 4 1, ,0008 2,00 rcm 8 1, ,02 3,00 rcm 16 1, ,04 3,00 rcm 32 1, ,08 8,00 sloan 64 1, ,17 11,00 sloan Tab. 3.7 Partitionnement de la matrice G3_circuit

72 3.6. Expériences numériques Qualité du produit matrice-vecteur Les partitions que nous avons obtenues sont utilisées pour construire la forme explicite de Schwarz multiplicatif, laquelle forme est alors utilisée comme préconditionneur des méthodes de Krylov. Dans ces méthodes les deux opérations de base sont le produit matrice-vecteur et l'application du préconditionneur à un vecteur. On utilise le plus souvent la même distribution de la matrice pour le préconditionneur que pour l'opération correspondant au produit matricevecteur. Nous allons montrer que bien que le partitionnement que nous avons construit était destiné à la construction de la forme explicite de Schwarz multiplicatif, il peut aussi permettre de réaliser le produit matrice-vecteur. Pour cela, nous allons évaluer le temps mis pour calculer N = 30 produits matrice-vecteur avec la matrice distribuée selon le partitionnement 1D et selon METIS [10] et montrer que dans les deux cas, ce temps écoulé semble sensiblement identique. Dans les tables , T it (Metis) représente le temps mis pour calculer les 30 vecteurs lorsque le partitionnement est Metis [10], et T it (Bdo) le temps mis pour calculer ces 30 vecteurs lorsque le partitionnement est notre algorithme. On peut observer dans toutes ces tables que le temps mis pour calculer ces 30 vecteurs est sensiblement identique dans les deux cas. En conclusion, on retient de ces expériences que, bien que, le partitionnement 1D ne soit pas réalisé explicitement pour la distribution des données dans l'opération matrice-vecteur, le temps mis pour réaliser le produit matrice-vecteur est néamoins presque identiques au temps mis pour réaliser le produit matrice-vecteur lorsque la distribution de la matrice est réalisée par Metis. En dénitive la même distribution des données sera utilisée pour la forme explicite de Schwarz que pour le produit matrice-vecteur. NP # : T it (Bdo) T it (Metis) 4 0,11 0,10 8 0,08 0, ,06 0, ,04 0, ,04 0,01 Tab. 3.8 Temps écoulé pour la matrice matrix_new_3 NP # : T it (Bdo) T it (Metis) 4 0,21 0,18 8 0,11 0, ,06 0, ,05 0, ,04 0,01 Tab. 3.9 Temps écoulé pour la matrice stomach NP # : T it (Bdo) T it (Metis) 4 0,70 0,58 8 0,34 0, ,17 0, ,09 0,07 Tab Temps écoulé pour la matrice torso3 NP # : T it (Bdo) T it (Metis) 4 1,19 1,07 8 0,60 0, ,30 0, ,10 0, ,05 0,05 Tab Temps écoulé pour la matrice ldoor

73 NP # : T it (Bdo) T it (Metis) 4 1,10 0,85 8 0,54 0, ,28 0, ,20 0, ,10 0,05 Tab Temps écoulé pour la matrice G3_circuit 3.7. Conclusion Conclusion Nous avons décrit dans ce chapitre un algorithme de partitionnement des matrices avec pour contrainte que chaque partition a au plus deux voisins. Cette forme de partitionnement est à la base de la forme explicite de Schwarz présentée au chapitre 2. L'algorithme présenté dans ce chapitre est divisé en deux grandes étapes. Dans la premiere étape, on construit une partition initiale qui satisfait la contrainte de partitionnement 1D. Pour cela, nous avons construit un arbre à partir du graphe adjacent à la matrice et par la suite nous avons partitionné cet arbre aux nombres de partitions désirées pour obtenir la partition initiale. Dans la deuxième étape, nous avons utilisé la décomposition canonique de Dulmage Mendelhson pour réduire la taille des séparateurs entre les parties de la partition. Les résultats expérimentaux nous ont permis de constater deux choses : la première c'est que la qualité du résultat obtenu dépend étroitement de l'arbre qu'on obtient. Si le nombre de niveaux dans l'arbre est grand (par rapport au nombre de parties) et que les niveaux de l'arbre ont sensiblement la même taille, alors on obtiendra une bonne qualité du résultat. la deuxième chose c'est que bien que le partititionnement 1D ait été construit pour la distribution des données dans la forme explicite de Schwarz multiplicatif, on peut aussi l'utiliser pour la distribution des données pour l'opération matrice-vecteur. Nous allons donc utiliser cette distribution dans le chapitre suivant pour réaliser une implémentation paralléle de GMRES préconditionné par Schwarz multiplicatif.

74 Chapitre 4 GMRES parallèle préconditionné par Schwarz multiplicatif 4.1 Introduction Il s'agit dans ce chapitre de décrire notre mise en uvre parallèle de GMRES préconditionné par Schwarz multiplicatif. Cette mise en uvre est faite pour un environnement d'ordinateur distribué. Dans ce cas on évitera d'utiliser les opérations de communication globales comme les produits scalaires, les normes. Le parallélisme dans le préconditionneur Schwarz multiplicatif sera réalisé par un pipeline. Ce chapitre se divise en deux grandes parties. La première partie concerne l'implémentation de notre méthode alors que la seconde partie vise essentiellement à la présentation des résultats et à la comparaison avec les autres préconditionneurs parallèles comme ceux présents dans PETSc [3, 44] et parms [4]. 4.2 Notions de base Soit A R n n et v R n. Dénition Espace de Krylov L'espace de Krylov de dimension m+1 associé à la matrice A et au vecteur v est l'espace vectoriel engendré par l'ensemble des vecteurs suivants : On notera pour simplicité K m+1 (A, v) par K m+1. K m+1 (A, v) = {v, Av, A 2 v,..., A m v} (4.1) Procédé d'arnoldi Le procédé d'arnoldi permet de construire une base orthonormée de K m par recurrence sur m. Cela permet ensuite de projeter le problème original en un problème approché dans cet espace. Il permet alors de : 1. D'obtenir la solution d'un système linéaire d'équation de matrice A.(GMRES et FOM [2, 45]) 67

75 2. D'obtenir les valeurs propres et vecteurs propres de A (ARPACK [46]) GMRES séquentiel De déterminer l'exponentielle de la matrice A ou toute autre fonction analytique de A. Dans ce travail on utilise le procédé d'arnoldi dans la résolution des systèmes linéaires d'équation. Soit H m+1 R (m+1) (m+1) et V m R n (m+1). L'algorithme 12 est une description du procédé d'arnoldi où l'orthogonalisation de tout vecteur image de l'espace de Krylov est réalisée par la méthode de Gram-Schmidt modiée. Les notations H(:, i) et V (:, i) sont celles de Matlab pour Algorithme 12 Procédé d'arnoldi 1: Données : A, v ; 2: V (:, 1) = V (:, 1)/ V (:, 1) ; 3: pour i = 1 : m faire 4: w i = AV (:, i); 5: pour j = 1 : i faire 6: H(i, j) = V (:, j) T w i ; 7: w i = w i H(i, j)v (:, j); 8: n pour 9: H(i + 1, i) = w i ; 10: si w i == 0.0 alors 11: Arrêter le procédé; 12: sinon 13: V (:, i + 1) = w i /H(i + 1, i); 14: nsi 15: n pour signier la colonne i des matrices H et V. En arithmétique exacte, d'après l'algorithme 12 on peut déduire les relations suivantes : AV m = V m H m + w m e T m = V m+1 Hm V T m AV m = H m (4.2) où H m R (m+1) m est tel que H m (1 : m, 1 : m) = H m = V T m AV m est une matrice Hessenberg supérieure et H m (m + 1, 1 : m) = (0,..., 0, h m+1,m ) et V m est une base orthonormée de l'espace de Krylov K m. On retient alors qu'en arithmétique exacte, le procédé d'arnoldi entrelace deux étapes : 1. Construction de l'espace de Krylov K m+1, 2. Factorisation QR de la matrice K m+1 = V m+1 R m+1 Pour paralléliser le procédé d'arnoldi, nous allons séparer le procédé d'arnoldi en deux étapes indépendantes. 4.3 GMRES séquentiel GMRES [47](Generalized minimum residual) est une méthode itérative utilisée pour la résolution des systèmes linéaires d'équation. Soit le système : Ax = b (4.3)

76 4.4. GMRES parallèle 69 et x 0 la solution initiale. L'idée de cette méthode est de chercher la solution x de l'équation (4.3) dans l'espace engendré par x 0 +K m. Comme le procédé d'arnoldi permet de construire une base orthogonale de K m, alors on choisit comme itéré dans l'espace engendré par x 0 + K m le vecteur x m = x 0 + V m y (4.4) avec y R m qui minimise la norme eucludienne du résidu. Ainsi, le résidu r m vérie les relations suivantes : r m = b Ax m = b (Ax 0 + AV m y) = r 0 AV m y = βv 1 V m+1 Hm y relation d'arnoldi de l'équation (4.2) = V m+1 (βe 1 H m y) d'où r m = βe 1 H m y avec β = r 0 et e 1 le premier vecteur de la base canonique. Le choix de y à l'équation (4.4) est fait tel que la quantité r m = βe 1 H m y soit minimale. On déduit alors l'itération de GMRES à l'algorithme 13 A la ligne 15 de l'algorithme 13, si H(i + 1, i) = 0 on montre dans [2] que GMRES a convergé vers la solution exacte du système 4.3. Nous supposons que m < n et que GMRES redémarre après m itérations internes. En eet, lorsque n = m, en arithmétique exacte, GMRES converge toujours vers la solution lorsque la matrice est non singulière. Mais à cause du coût mémoire que cela induirait en prenant n = m (V est une matrice dense même si A est creuse), on prend généralement m << n. Ceci n'est pas sans conséquence, car dans plusieurs cas, le choix de m peut conduire à une situation de stagnation du résidu. Une solution à ce problème de stagnation est de préconditionner le système représenté par l'équation (4.3). Soit M la matrice de préconditionnement. Pour appliquer ce préconditionnement, on remplace le système 4.3 par (AM 1 )Mx = b (préconditionnement à droite) où M 1 Ax = M 1 b (préconditionnement à gauche) et dans l'algorithme 13 on remplace la matrice A par AM 1 (cas du préconditionneur à droite) ou par M 1 A(préconditionneur à gauche). Pour le cas du préconditionnement à droite on détermine la solution du système non préconditionné par x = M 1 x. 4.4 GMRES parallèle On peut observer que dans l'algorithme 13 la phase la plus coûteuse en temps est le procédé d'arnoldi. Car le problème aux moindres carrés (ligne 21) est de taille très petite (m << n). Par conséquent, si on veut gagner en temps en utilisant un ordinateur parallèle pour résoudre l'équation (4.3) par la méthode de GMRES, il faut paralléliser le procédé d'arnoldi Procédé d'arnoldi parallèle Il existe plusieurs tentatives de parallélisation du procédé d'arnoldi. Le point commun de ces diérentes approches c'est qu'elles permettent d'éviter les opérations globales du type vecteurvecteur ( produits scalaires, normes) qui sont les opérations diciles à implémenter de façon ecace (l'ecacité est dans le sens de parallélisme) dans les ordinateurs parallèles ou vectoriels, ceci à cause de la faible granularité de ces opérations (voir Dongarra [48]). Parmi les approches proposées pour éviter les opérations vecteur-vecteur dans le procédé d'arnoldi on a celles proposées par Walker et al [49] et Jalby, Philippe [50]. Dans [49] Walker remplace dans le procédé

77 4.4. GMRES parallèle 70 Algorithme 13 GMRES(m) 1: Données : A, b, ɛ; 2: Sorties : x; 3: convergence=false; 4: choisir la solution de départ x 0 ; 5: tantque convergence! = true faire 6: r 0 = b Ax 0 ; β = r 0 ; Procédé d'arnoldi : Construction d'une base orthonormée V m de l'espace de Krylov K m. 7: V (:, 1) = r 0 /β ; 8: pour i = 1 : m faire 9: w i = AV (:, i); 10: pour j = 1 : i faire 11: H(i, j) = V (:, j) T w i ; 12: w i = w i H(i, j)v (:, j); 13: n pour 14: H(i + 1, i) = w i ; 15: si w i == 0.0 alors 16: m = i; Sortir de la boucle; 17: sinon 18: V (:, i + 1) = w i /H(i + 1, i); 19: nsi 20: n pour Résoudre le problème aux moindres carrées de taille (m + 1) m pour déterminer y 21: Calculer y R m comme solution de min βe y R m 1 H m y ; 22: x = x 0 + V m y ; 23: si b Ax < ɛ alors 24: convergence=true; 25: sinon 26: x 0 = x; 27: nsi 28: n tantque

78 4.4. GMRES parallèle 71 d'arnoldi, l'orthogonalisation de Gram-Schmidt modié par les reections de Householder. L'inconvénient de cette méthode est qu'elle nécessite en moyenne trois fois plus d'opérations que Gram-Schmidt modié. Dans [50] Jalby et Philippe proposent de réorthogonaliser la base obtenue en utilisant la version classique de Gram-Schmidt. Mais dans ce cas, pour des matrices très mal conditionnées la qualité de la base obtenue n'est pas bonne. Une autre approche proposée pour la première fois par Hindmarsh et al [51] est de découpler la construction de l'espace de Krylov à l'orthogonalisation. Pour cela Hindmarsh et al considère comme base l'espace de Krylov l'ensemble de vecteur représenté par l'équation (4.5) K m+1 (A, v) = {σ 0 v, σ 1 Av,..., σ m A m v} (4.5) Avec σ k > 0(k = 1,..., m) qui sont les facteurs d'échelle permettant de normaliser les vecteurs de K m+1. Par la suite Hindmarsh et al [51] réalisent la factorisation QR de K m+1 pour obtenir la relation d'arnoldi 4.2. Mais, dans la plupart des cas, la base de {σ k A k v} m k=0 se détériore(le conditionnement augmente) très vite lorsqu'on augmente la taille m. Par conséquent, la méthode converge très mal ou alors ne converge même pas du tout. La méthode que nous utilisons pour la parallélisation d'arnoldi est celle proposée par Bai et al [7]. Elle consiste à considérer comme base de l'espace de Krylov l'ensemble des vecteurs représenté par l'équation (4.6). K m+1 (A, v) = {µ 0 v, µ 1 (A λ 1 I)v,..., µ m m k=1 (A λ k I)v} (4.6) Avec µ k > 0(k = 0,..., m) qui sont les facteurs d'echelle permettant de normaliser les vecteurs de K m+1 et λ k C (k = 1,..., m) choisis tels que le conditionnement de la base de K m+1 n'augmente pas trop vite. Reichel [52] a montré que lorsque les {λ k } m k=1 sont choisis comme étant les m valeurs propres de plus grande module A et ordonnées selon l'ordre de Leja, le conditionnement de la base de K m+1 est plus petit que le conditionnement de K m+1 présenté à l'équation (4.5). Dénition Ordre de Leja L'ensemble {λ k } m 1 k=1 a un ordre de Leja si et seulement si : λ 1 = max λ j j=1,...,m j λ j+1 λ j = max k=1 j l=1,...,m k=1 λ l λ k, j=1,...,m-1 Dans la pratique, comme on ne dispose pas des valeurs propres de A, on réalise une itération du procédé d'arnoldi classique(voir algorithme 13)[7, 53]. A partir de la matrice d'hessenberg H m produite par cette itération d'arnoldi, on peut déterminer une approximation des m valeurs propres de plus grand module de A, qui sont en fait les valeurs propres de H m. Comme la matrice est en général non symétrique, les valeurs propres de H m peuvent être complexes. Pour éviter les calculs en arithmétique complexe, dans [7, 54] on calcule les vecteurs de K m+1 comme suit : Pour j 1 et j m, Si λ j est un réel alors k j+1 = σ j+1 (A λ j I) k j Sinon si Im(λ j ) > 0 alors { kj+1 = σ j+1 (A Re(λ j )I) k j k j+2 = σ j+2 (A λ j I)(A λ j I) k j

79 4.4. GMRES parallèle 72 avec k j+1 qui représente le vecteur j + 1 de l'espace K m+1 et Im(λ j ) et Re(λ j ) représentent la partie imaginaire et la partie réelle du complexe λ j. Notre démarche pour la construction de l'espace K m+1 se divise en deux étapes : 1. Calcul de ˆK m+1 = {v, (A λ 1 I)v,..., m (A λ k I)v} k=1 2. Détermination des σ j+1 = 1/ (A λ j I) k j, tel que : k j+1 = σ j+1 (A λ j I) k j lorsque λ j est réelle. σ j+1 = 1/ (A Re(λ j )I) k j et σ j+2 = 1/ (A λ j I)(A λ j I) k j lorsque λ j est complexe. On peut remarquer que, le coût de construction de K m+1 est sensiblement le même que celui de la construction de K m+1 à l'équation (4.5) et que les µ j introduits à l'équation (4.6), vérient l'égalité µ j = σ j σ j 1 σ 1. A la suite de cela on peut réaliser une factorisation QR de K m+1 c'est à dire écrire K m+1 = Ṽm+1 R m+1 (4.7) avec Ṽm+1 R n (m+1), Ṽ T m+1ṽm+1 = I et R m+1 R (m+1) (m+1) une matrice triangulaire supérieure. Pour pouvoir déduire les itérations de GMRES, nous devons déduire la relation d'arnoldi à partir de l'espace de Krylov K m+1 généré a priori. Retrouver la relation d'arnoldi Rappelons que pour éviter l'arithmétique complexe, Bai [7] ainsi que Sidjé [54] proposent d'utiliser la relation suivante entre les colonnes de K m+1 : Si λ j est un réel alors k j+1 = σ j+1 (A λ j I) k j Sinon si Im(λ j ) > 0 alors { kj+1 = σ j+1 (A Re(λ j )I) k j k j+2 = σ j+2 (A λ j I)(A λ j I) k j k j+2 = σ j+2 (A λ j I)(A λ j I) k j = σ j+2 (A 2 kj 2Re(λ j )A k j + λ j 2 kj ) = σ j+2 (A(A Re(λ j )I) k j Re(λ j )A k j + λ j 2 kj ) mais comme alors A k j = Re(λ j ) k j + (1/σ j+1 ) k j+1

80 4.4. GMRES parallèle 73 en conclusion k j+2 = σ j+2 Im(λ j ) 2 kj σ j+2 σ j+1 Re(λ j ) k j+1 + σ j+2 σ j+1 A k j+1 A k j+1 = σ j+1 kj+2 σ j+1 Im(λ j ) 2 kj + σ j+1 Re(λ j ) k j+1 (4.8) σ j+2 Dans le cas où λ l est un réel alors on peut déduire l'expression A k l = λ l kl + (1/σ l+1 ) k l+1 (4.9) A partir des équations (4.8) et (4.9) on peut déduire que A K m = K m+1 Bm (4.10) où B m R (m+1) m λ /σ 2 λ /σ 3... Re(λ j ) σ j+1 Im(λ j ) 2 B m = On suppose ici que Im(λ j ) > 0. A partir de l'équation (4.10) il s'en suit que : 1/σ j+1 Re(λ j ) 0 0 σ j+1 σ j+2... λ m /σ m A K m = K m+1 Bm AṼm = Ṽm+1 R m+1 Bm R 1 m = Ṽm+1 H m (4.11) avec H m = R m+1 Bm R 1 m qui est une matrice Hessenberg supérieure. Si la matrice R m est très mal conditionnée, alors la solution du moindre carré peut être essentiellement dirigée vers les vecteurs propres de R m correspondant aux valeurs propres de plus petit module. Pour éviter celà, on va injecter la solution du moindre carré en utilisant la base K m. Ainsi on a : A K m = K m+1 Bm A K m = Ṽm+1 R m+1 Bm = Ṽm+1 H m (4.12) avec H m = R m+1 Bm est Hessenberg supérieure. A la suite de la relation d'arnoldi précédente,(équation (4.12)) on peut résoudre le problème de moindre carré min H m y βe 1. On peut observer que la qualité de la solution courante x de l'itération de GMRES dépendra étroitement du conditionnement de R m+1. On notera pour la suite par cond(a) le conditionnement de la matrice A. D'après l'équation (4.12), comme cond( R m+1 ) = cond( K m+1 ) car Ṽm+1 est une base orthonormée, on déduit alors que la qualité de la solution de min H m y βe 1 dépend du conditionnement de K m+1. Comme le conditionnement de K m+1 augmente très vite lorsqu'on augmente la valeur de m, nous allons déterminer la valeur de m qui permet de ne pas détériorer la solution y de min H m y βe 1 et par conséquent la solution courante x des itérations de GMRES.

81 4.4. GMRES parallèle Détermination de la taille appropriée du redémarrage de GMRES(m) On considère par z m l'erreur d'arrondi introduite à chaque redémarrage de GMRES(m). La proposition suivante donne un ordre de grandeur de cette erreur. Proposition L'ordre de grandeur de l'erreur d'arrondi est donné par l'équation (4.13) z = O(ɛ y cond( R m ) max( A, B m, 1)) (4.13) Preuve. Ecrivons pour chaque étape de GMRES, la valeur de l'erreur d'arrondi produite. Notons avant que les factorisations QR sont obtenues par les reections de Householder et les rotations de Givens. Dans ce cas la norme du facteur Q, Q = 1. A K m = K m+1 Bm + Em 1 : Em 1 R n m et Em 1 = O(ɛ K m+1 A ) (4.14) K m+1 = Q m+1 Rm+1 + Em+1 2 : Em+1 2 R n (m+1) et Em 2 = O(ɛ R m+1 )( car Q m+1 = 1) (4.15) H m = R m+1 Bm R 1 m + Em 3 : Em 3 R (m+1) m Em 3 = O(ɛ B m cond( R m )) (4.16) Soit y solution du problème min H m y βe 1 H m y = R m+1 Bm R 1 m y + Emy 3 d'où Q m+1 Hm y = Q m+1 Rm+1 Bm R 1 m y + Q m+1 E 3 my = ( K m+1 Em+1) 2 B R 1 m = (A K m Em) 1 1 R m y Em+1 2 B R 1 m = A( Q m + Em 2 1 R m )y Em 1 = A Q m y + z m y + Q m+1 Emy 3 d'après l'équation (4.15) m y + Q m+1 Emy 3 d'après l'équation (4.14) R 1 m y E 2 m+1 T m R 1 m y + Q m+1 E 3 my (4.17) où z = AEm 2 1 R m y Em 1 1 R m y Em+1 2 B R 1 m m y + Q m+1 Emy 3 (4.18) On déduit d'après tout ceci que z = O(ɛ y cond( R m ) max( A, B m, 1)) Nous allons maintenant déduire dans quelle condition l'erreur d'arrondi z détériore la solution courante x. Si la solution courante de l'itération de GMRES est x = x + Q m y et que r = r A Q m y est le résidu correspondant, alors r = β Q m+1 e 1 A Q m y = Q m+1 (βe 1 H m y) + z βe 1 H m y + z (4.19) D'après l'inégalité (4.19), on déduit que pour que la solution x ne soit pas trop détériorée par l'itération courante de GMRES, il faut que z α βe 1 H m y. (4.20)

82 4.4. GMRES parallèle 75 avec α une constante appartenant à R(dans nos calculs, on prend α = 1). Posons ψ m = ɛ y cond( R m ) max( A, B m, 1) Comme dans la pratique on ne peut pas avoir la valeur de z, si ψ m α βe 1 H m y (4.21) alors on aura aussi z τ βe 1 H m y avec τ réel positif. Sinon nous allons chercher la plus grande valeur de l m telle que ψ l < βe 1 H l y. La valeur de l trouvée sera celle utilisée lors du redémarrage suivant de GMRES pour la génération a priori de la base K m. Il faut remarquer que le vecteur y qui vérie ψ l < βe 1 H l y est aussi de taille l. Nous pouvons alors écrire maintenant notre version parallèle de GMRES GMRES parallèle Le nom de Newton est donné à cette version de GMRES de Bai et al [7] parce que l'espace de Krylov K m+1 est associé à un polynôme de Newton. Il faut remarquer que la diérence entre Algorithme 14 Newton GMRES 1: ɛ :La tolérance du résidu 2: β = r 0 Initialisation des paramètres 3: Calcul de A Si le système est préconditionné, déterminer une estimation de la norme du système préconditionné; 4: Appliquer l'algorithme 13 pour déterminer la matrice Hessenberg H m et x 0 5: Calculer les valeurs propres {λ i } m i=1 de H m et les ordonner selon l'ordre de Leja Convergence=false ; 6: r = b Ax; v=r; 7: tantque Convergence faire 8: Calculer K m m+1 = {µ 0 v, µ 1 (A λ 1 I)v,..., µ m (A λ k I)v}; 9: Calculer la factorisation QR de K m+1. Km+1 = Ṽm+1 R m+1 ; 10: Déterminer la taille l m appropriée de l'espace de Krylov. Mettre à jour m c'est à dire m = l. 11: Calculer la matrice d'hessenberg H m de l'équation (4.12). A K m = Ṽm+1 H m ; 12: Calculer y m comme solution de min βe y R m 1 H m y ; 13: Calculer la solution : x = x + K m y m ; b Ax 14: si < ɛ alors b 15: convergence=true; 16: sinon 17: r = b Ax et β = r et v = b Ax b 18: nsi 19: n tantque l'algorithme 14 et ceux proposés par Bai et al [7] ainsi que Erhel [53] se situe au niveau de la ligne 10 qui permet de déterminer la taille appropriée de la base de Krylov. Dans l'algorithme 14 précédent, les parties consommatrices en temps sont : la construction de l'espace de Krylov k=1

83 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif 76 préconditionné K m+1 et la factorisation QR. Ainsi donc, la parallélisation de GMRES doit passer par la parallélisation des deux étapes précédentes. Dans le paragraphe suivant, nous allons décrire la mise en uvre parallèle de GMRES préconditionné par Schwarz multiplicatif. 4.5 Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif Outils de la mise en uvre Notre mise en uvre a été faite pour être déployée sur des ordinateurs à mémoire distribuée. D'un point de vue logiciel, elle a pour socle PETSc [3] (Portable Extensible Toolkit for Scientic computing). Le choix de PETSc a été motivé par sa simplicité d'utilisation, mais aussi par la possibilité de l'interfacer avec d'autres logiciels d'algèbre linéaire creuse comme SuperLu [55] et MUMPS [56]. La gure 4.1 présente une architecture logicielle de PETSc. En ce qui nous concerne, nous nous sommes limités à utiliser les fonctions des couches Matrices, Vectors, PC et KSP. La mise en uvre va consister à dénir les opérations suivantes : Fig. 4.1 Architecture logiciel de PETSc [3] 1. Distribution de la matrice 2. Produit Matrice-vecteur 3. Produit Préconditionneur-vecteur 4. Factorisation QR 5. Détermination de la taille appropriée de la base de Krylov.

84 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif Distribution des données Il s'agit ici de partager la matrice A et le vecteur x sur les processeurs. Dans la distribution des données, on va faire la distinction entre la distribution pour la construction du préconditionneur et la distribution pour le produit matrice-vecteur. Dans les deux cas, la distribution des données est statique c'est à dire que lorsque la distribution est réalisée, elle ne change plus tout au long des opérations. Distribution des données pour le préconditionneur On suppose que la matrice A est partitionnée en p partitions telle que chaque partie a au plus deux voisins (Voir chapitre 3) et par la suite elle a été permutée en bloc diagonal avec recouvrement. C'est à dire comme à la gure 4.2. La distribution de la matrice va consister A 1 C 1 A 2 A = C 2 A 3 C 3 A 4 Fig. 4.2 Distribution de la matrice à aecter à chaque processeur p i (i = 1,..., p) un bloc A i (i = 1,..., p) de la matrice A. Il faut remarquer que cette distribution de la matrice est faite en dupliquant les parties recouvertes entre les blocs A i. Dans ce cas, il faut plus d'espace mémoire pour distribuer la matrice A sur un ordinateur distribué que d'espace mémoire pour la représenter sur un ordinateur avec un processeur. Ceci est dû au fait qu'au niveau de chaque sous domaine, Schwarz multiplicatif résout un sous problème, et pour pouvoir utiliser une méthode directe sur les sous domaines il faut que la sous matrice soit assemblée. Distribution pour le produit matrice-vecteur Au niveau de chaque processeur p i, on remplace par zéro la sous matrice recouverte entre la sous matrice A i et la sous matrice A i+1. On obtient une matrice B i qui a la forme de la gure 4.3 suivante : dans les deux cas, on distribue le vecteur x avec redondance des recouvrements

85 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif 78 B i = Fig. 4.3 Bloc élémentaire pour le produit matrice vecteur 0 (voir gure 4.4). Ainsi, chaque tranche x i (i = 1,..., p) du vecteur x est aectée au processeur p i (i = 1,..., p). Pour chaque sous vecteur x i on considère par x u i la partie recouverte avec x i 1 et x d i la partie recouverte avec x i+1. Si i = 1 alors x 0 i n'est pas dénie et si i = p alors x d i n'est pas dénie. Posons N la taille du système obtenu en dupliquant les recouvrements à chaque partie. x 1 x 2 x = x 3 x 4 Fig. 4.4 Distribution du vecteur Produit matrice-vecteur Nous allons décrire ici comment réaliser le produit matrice vecteur avec la distribution précédente de la matrice et du vecteur. Il s'agit alors de calculer y = σ(a λi)x. Sans nuire à la généralité, nous allons supposer que ce produit correspond à y = Ax. Nous avons deux cas possibles pour le vecteur y. Soit y R n dans ce cas on dit que le vecteur est assemblé (correspond à la taille réelle du système), soit y R N et dans ce cas on dit que le vecteur n'est pas assemblé

86 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif 79 (car les recouvrements sont cohérents). Soit B i la matrice B i complétée par zéro à la dimension p p de A. Alors A = B i. Ainsi y = B i x. On déduit alors l'algorithme 15 décrit dans [57]. i=1 i=1 Algorithme 15 y = Ax 1: Chaque processeur p i détient B i, x i selon la distribution précédente 2: z i = B i x i ; Calcul du produit local à chaque processeur 3: si i < p alors 4: Le processeur p i envoie z d i au processeur p i+1 ; 5: nsi 6: si i > 1 alors 7: Le processeur p i reçoit dans f, z d i 1 envoyé par le processeur p i 1 ; 8: z u i = z u i + f ; 9: nsi A ce niveau le vecteur z représente bien z = Ax. Pour besoin de consistance entre z et x, on peut assembler les sous vecteur z i ; 10: si i > 1 alors 11: Le processeur p i envoie z u i au processeur p i 1 ; 12: Le processeur p i reçoit dans z d i, z u i+1 envoyer par le processeur p i+1 ; 13: y i = z i ; 14: nsi Application de la forme explicite de Schwarz multiplicatif à un vecteur Rappelons que la forme explicite de Schwarz multiplicatif s'écrit comme suit : M 1 = Ā 1 p C p 1 Ā 1 p 1 Ā 1 2 C 1 Ā 1 1 (4.22) Il s'agit ici de décrire comment réaliser le produit y = M 1 x sur p > 1 processeurs. D'après la relation 4.22, on voit qu'au niveau de chaque processeur on résout un sous problème A i t i = z i et par la suite on réalise le produit C i zi d = yi d. Mais pour le faire, il faut qu'au niveau du processeur p i on ait au préalable reçu la tranche yi 1 d de y i 1. Ceci conduit à l'algorithme 16 suivant au niveau de chaque processeur. On peut observer qu'au début de l'algorithme 16 (ligne 3), chaque processeur p i (i > 1) fait une attente de réception de la partie de recouvrement yi 1 d produite par le processeur p i 1. Ceci a alors pour eet de rendre l'algorithme 16 séquentiel. Le seul parallélisme ici étant le fait que les données soient distribuées sur les processeurs. On peut observer néanmoins que les données évoluent sur les processeurs comme dans un pipeline. Ainsi, si on avait un ot de vecteurs à calculer on aurait eu alors un gain en temps relatif au nombre de processeurs (sous-domaines). Dans notre cas, le ot de vecteurs à calculer est la base de l'espace de Krylov K m à construire Construction de l'espace de Krylov préconditionné Nous allons montrer ici comment on peut utiliser les algorithmes 16 et 15 précédents dans un pipeline d'instructions pour calculer les vecteurs de la base de l'espace de Krylov K m+1 dont les vecteurs sont dénis par la récurrence k j+1 = σ j+1 (M 1 A λi) k j avec σ j+1 = 1/ (M 1 A λ j I) k j.

87 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif 80 Algorithme 16 y = M 1 x 1: Chaque processeur p i détient A i, x i 2: si i > 1 alors 3: Le processeur p i reçoit y d i 1 du processeur p i 1 4: Mettre dans x i le vecteur y d i 1, c'est à dire x u i = yd i 1. 5: nsi 6: Résoudre le système local A i y i = x i ; 7: si i < p alors 8: y d i = C iy d i ; 9: Le processeur p i envoie y d i au processeur p i+1 ; 10: nsi Pour besoin de consistance du vecteur y on envoie les parties recouvertes du vecteur au processeur qui est à gauche du processeur courant 11: si i > 1 alors 12: Le processeur p i envoie y u i au processeur p i 1 ; 13: nsi 14: si i < p alors 15: Le processeur p i reçoit y u i+1 venant du processeur p i+1 ; 16: y d i = yu i+1 ; 17: nsi 18: { Le processeur p i détient y i } Le processus de construction de l'espace de Krylov est divisé en deux étapes : 1. Construction de la base ˆK m+1 = {v, (A λ 1 I)v,..., (A λ k I)v} et calcul des constributions locales à chaque processeur des normes m k=1 j (A λ k I)v = ˆk j. 2. Détermination des σ j = 1/ (M 1 A λ j I) k j, tel que k j+1 = σ j+1 (M 1 A λi) k j. On va supposer sans nuire à la généralité que ˆk j+1 = M 1ˆt j, avec ˆt j = Aˆk j. On montrera par la suite comment calculer en même temps σ j+1 = 1/ (M 1 A λ j I) k j sans faire recours aux opérations globales. Nous allons expliquer comment fonctionne ce pipeline en nous appuyant sur la gure 4.5. On peut voir que lorsque le processeur p 1 a terminé son opération élémentaire (inversion et produit avec le recouvrement) relative à l'application du préconditionneur, il communique (èche avec bout vide et couleur bleu sur la gure 4.5 ) la partie du vecteur recouverte avec p 2 au processeur p 2. Le processeur p 2 réalise aussi les mêmes opérations que le processeur p 1, et pour besoin de consistance avec p 1 envoie (èches épaisses en interrompues sur la gure 4.5 ) la tranche du vecteur recouverte avec p 1 au processeur p 1. La partie recouverte avec le processeur p 3 est aussi envoyée par le processeur p 2 au processeur p 3. A cet instant, l'application du préconditionneur au processeur p 1 est terminée. Le processeur p 1 engage alors l'opération du produit du nouveau vecteur préconditionné avec k=1

88 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif Communications liées à y = Ax Communications liées à l'activation de p i+1 par p i dans z = M 1 y Communications liées à la consistance du produit z = M 1 y Fig. 4.5 Exemple de calcul de K 4 A (rappelons qu'on calcule ˆk j+1 = M 1 Aˆk j ) pour calculer le nouveau vecteur de Krylov. Le processeur p 1 réalise alors le produit local (ligne 2 algorithme 15 page 79), ensuite doit attendre que le processeur p 2 lui communique (ligne 4 algorithme 15 page 79) sa tranche du vecteur résultant aussi du produit local qui est recouvert avec lui (ceci correspond aux èches à double tête sur la gure 4.5). Mais, pour que le processeur p 2 puisse réaliser ce produit local, il faut que la consistance au niveau du préconditionneur soit réalisée entre les processeurs p 2 et p 3 (èches épaisses en interrompues sur la gure 4.5 ). Une fois cette consistance réalisée, le processeur p 1 peut engager alors le vecteur suivant de l'espace de Krylov. En conclusion, pour que le processeur p i puisse s'activer pour le calcul du vecteur ˆk j+1, il faut que le processeur p i+2 ait déjà réalisé l'inverse du préconditionneur sur le vecteur ˆk j. Pour illustration, on peut voir la gure 4.6 du proling qui montre la dépendance entre les processeurs dans la construction à priori de l'espace de Krylov. Il faut remarquer que n'eurent été les communications bloquantes dûes au produit matricevecteur dans la construction de l'espace de Krylov, on aurait eu une dépendance de 1 processeur dans les gures 4.5 et 4.6. En eet, si on suppose que la matrice A à la gure 4.2 est distribuée en bloc élémentaire H i comme le montre la gure 4.7 et que les vecteurs sont distribués selon le même principe, le produit matrice-vecteur ne nécessite pas de communication entre les processeurs. Avec cette distribution de la matrice pour le produit matrice vecteur, on peut observer sur le proling de la construction de l'espace de Krylov de la gure 4.8 qu'on a eectivement une dépendance de 1. Il faut noter ici qu'on a une redondance de données dans la distribution de la matrice pour eectuer le produit matrice vecteur.

89 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif 82 Fig. 4.6 Proling de la construction de la base de Krylov sur M 1 A réalisé par Souopgui [58] H i = 0 A i 0 Fig. 4.7 Autre distribution de la matrice Dans la suite, nous privilégions une distribution sans redondance de la matrice A comme à la gure 4.3. Ce choix est justié par le fait que dans la pratique la distribution des matrices pour des opérations matrice-vecteur est généralement faite sans redondance. On peut aussi obtenir une dépendance de 1 lorsque la décomposition de la matrice est avec recouvrement faible. Nous allons le montrer. Construction de l'espace de Krylov préconditionné. Cas d'une décomposition avec recouvrement faible Si la matrice est décomposée avec recouvrement faible, alors chaque sous bloc A i (voir gure 4.2) de A a la forme bloc triangulaire de l'équation (4.23). De la même façon, on distribue les vecteurs c'est à dire comme à l'équation (4.24). A i = C i B 12 i 0 Bi 21 Bi 22 Fi 2 0 Ei 2 C i+1 x 1 i x 2 i x 3 i x i = (4.23) (4.24) Pour pouvoir tirer prot du fait que la décomposition est avec recouvrement faible, nous allons remplacer M 1 A par I M 1 N dans la construction de l'espace de Krylov. Ainsi, pour construire

90 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif 83 Fig. 4.8 Proling de la construction de la base de Krylov sur M 1 A pour la distribution de la gure 4.7. l'espace de Krylov il nous faut alors décrire comment appliquer un vecteur à la matrice N. Ceci fait l'objet de l'algorithme 17 (voir [57]) qui s'appuie sur la relation 2.16 de la page 32. Algorithme 17 t = Nx 1: Chaque processeur p i détient A i, x i selon la distribution précédente 2: y i = Bi 12 x 2 i ; Calcul du produit local à chaque processeur 3: si i > 0 alors 4: Le processeur p i envoie y i au processeur p i 1 ; 5: nsi 6: si i < p alors 7: Le processeur p i reçoit dans f, y i envoyé par le processeur p i+1 ; 8: solve C i+1 z = f ; 9: t 2 i = F 2 10: t 1 i = 0; 11: t 3 i = 0; 12: sinon 13: t p = 0; 14: nsi i z ; A partir de l'algorithme 17, nous allons décrire comment construire un pipeline de dépendance 1 pour le calcul des vecteurs de l'espace de Krylov. Supposons qu'au niveau du processeur p i on est en train de calculer la tranche du vecteur ˆk j. Pour cela, ce processeur va réaliser les opérations relatives à l'application de M 1 à un vecteur. Il devra attendre que le processeur p i+1 lui envoie après résolution du système local, la tranche recouverte avec lui. Après cela, le processeur p i doit multiplier le résultat par la matrice N pour engager le vecteur suivant ˆk j+1 de Krylov. Après avoir réalisé l'opération à la ligne 2 de l'algorithme 17, le processeur p i doit attendre (ligne 7 algorithme 17) une tranche du vecteur venant du processeur p i+1. Il faut remarquer que le processeur pi+1 n'a pas besoin d'attendre que le processeur p i+2 lui envoie la tranche recouverte correspondante au résultat du produit avec M 1 pour réaliser la communication à la ligne 4 de l'algorithme 17. Ceci parce que la communication à la ligne 4 de l'algorithme 17 est la tranche interne du vecteur. Par conséquent, lorsque le processeur p i aura

91 4.5. Mise en uvre parallèle de GMRES préconditionnée par Schwarz multiplicatif 84 réalisé la réception venant du processeur p i+1 ( Ligne 7 de l'algorithme 17), il réalise le reste des opérations de l'algorithme 17 et passe au produit par M 1. Ceci prouve que pour passer du vecteur ˆk j au vecteur ˆk j+1, le processeur p i a réalisé une attente de 1. Pour illustration nous avons sur la gure 4.9 le proling de construction de l'espace de Krylov sur une matrice tridiagonale. Le choix de matrice tridiagonale est justié par le fait que le partitionnement en 1D conduit généralement à un partitionnement avec faible recouvrement. Fig. 4.9 Proling de la construction de la base de Krylov sur M 1 N pour un recouvrement faible. Pour terminer le calcul de K m+1, il nous reste à calculer les σ i. Calcul des σ j (j = 0,..., m) Il s'agit ici de montrer comment on peut calculer les valeurs de σ j sans utiliser les opérations globales. En eet, si on utilise les opérations globales pour le calcul des σ j (j = 1,..., m) cela aura pour eet d'introduire les points de synchronisation dans le pipeline et par conséquent de le détruire. L'idée alors est de ne pas calculer σ j directement après avoir produit le vecteur ˆk j de l'espace de Krylov. On va alors pour celà supposer que le pipeline précédent calcule l'espace de Krylov ˆK m+1 = {ˆk 0, ˆk 1,, ˆk m } avec ˆk j+1 = (M 1 A λ j I)ˆk j. Posons α j+1 = ˆk j+1. Au niveau de chaque processeur (gure 4.5) on peut calculer la contribution locale à ˆk j+1. Pour celà, il sut d'ajouter à la suite de la ligne (8) de l'algorithme 16, une instruction pour le calcul du produit scalaire ((ˆk I j+1,i )T, ˆk I j+1,i ). Avec ˆk I j+1,i qui représente le vecteur ˆk j+1,i auquel on a retiré ˆk d j+1,i c'est à dire la partie recouverte avec le processeur p i+1. Une fois cette contribution obtenue, on peut la communiquer au processeur suivant p i+1 au même instant qu'on communique ˆk d j+1,i ( ligne 9 algorithme 16). Le processeur p i+1 reçoit la contribution du processeur p i, l'ajoute à sa propre contribution et communique le résultat au processeur suivant. Ceci jusqu'au dernier processeur p p. Au processeur p p on a alors α j+1 = ˆk j+1. A partir de cela on va alors calculer les σ j (j = 1,..., m) sans introduire les points de synchronisation.

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R 2. RAPPEL DES TECHNIQUES DE CALCUL DANS R Dans la mesure où les résultats de ce chapitre devraient normalement être bien connus, il n'est rappelé que les formules les plus intéressantes; les justications

Plus en détail

NOTATIONS PRÉLIMINAIRES

NOTATIONS PRÉLIMINAIRES Pour le Jeudi 14 Octobre 2010 NOTATIONS Soit V un espace vectoriel réel ; l'espace vectoriel des endomorphismes de l'espace vectoriel V est désigné par L(V ). Soit f un endomorphisme de l'espace vectoriel

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes. Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

Cours 02 : Problème général de la programmation linéaire

Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la Programmation Linéaire. 5 . Introduction Un programme linéaire s'écrit sous la forme suivante. MinZ(ou maxw) =

Plus en détail

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

Résolution d équations non linéaires

Résolution d équations non linéaires Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique

Plus en détail

Structures algébriques

Structures algébriques Structures algébriques 1. Lois de composition s Soit E un ensemble. Une loi de composition interne sur E est une application de E E dans E. Soient E et F deux ensembles. Une loi de composition externe

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

Asynchronisme : Cadres continu et discret

Asynchronisme : Cadres continu et discret N d ordre : 151 Année 2006 HABILITATION À DIRIGER DES RECHERCHES UNIVERSITÉ DE FRANCHE-COMTÉ Spécialité Informatique présentée par Sylvain CONTASSOT-VIVIER Docteur en Informatique Sujet Asynchronisme :

Plus en détail

D'UN THÉORÈME NOUVEAU

D'UN THÉORÈME NOUVEAU DÉMONSTRATION D'UN THÉORÈME NOUVEAU CONCERNANT LES NOMBRES PREMIERS 1. (Nouveaux Mémoires de l'académie royale des Sciences et Belles-Lettres de Berlin, année 1771.) 1. Je viens de trouver, dans un excellent

Plus en détail

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples 45 Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples Les espaces vectoriels considérés sont réels, non réduits au vecteur nul et

Plus en détail

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin. Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).

Plus en détail

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. 1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

1.5 0.5 -0.5 -1.5 0 20 40 60 80 100 120. (VM(t i ),Q(t i+j ),VM(t i+j ))

1.5 0.5 -0.5 -1.5 0 20 40 60 80 100 120. (VM(t i ),Q(t i+j ),VM(t i+j )) La logique oue dans les PME/PMI Application au dosage de l'eau dans les bétons P.Y. Glorennec INSA de Rennes/IRISA glorenne@irisa.fr C. Hérault Hydrostop christophe@hydrostop.fr V. Hulin Hydrostop vincent@hydrostop.fr

Plus en détail

Cours d analyse numérique SMI-S4

Cours d analyse numérique SMI-S4 ours d analyse numérique SMI-S4 Introduction L objet de l analyse numérique est de concevoir et d étudier des méthodes de résolution de certains problèmes mathématiques, en général issus de problèmes réels,

Plus en détail

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils

Plus en détail

Exercices de dénombrement

Exercices de dénombrement Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.

Plus en détail

Équations non linéaires

Équations non linéaires CHAPTER 1 Équations non linéaires On considère une partie U R d et une fonction f : U R d. On cherche à résoudre { x U 1..1) f x) = R d On distinguera les cas d = 1 et d > 1. 1.1. Dichotomie d = 1) 1.1.1.

Plus en détail

Retournement Temporel

Retournement Temporel Retournement Temporel Rédigé par: HENG Sokly Encadrés par: Bernard ROUSSELET & Stéphane JUNCA 2 juin 28 Remerciements Je tiens tout d'abord à remercier mes responsables de mémoire, M.Bernard ROUSSELET

Plus en détail

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Calculer avec Sage. Revision : 417 du 1 er juillet 2010 Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1

Plus en détail

Couples de variables aléatoires discrètes

Couples de variables aléatoires discrètes Couples de variables aléatoires discrètes ECE Lycée Carnot mai Dans ce dernier chapitre de probabilités de l'année, nous allons introduire l'étude de couples de variables aléatoires, c'est-à-dire l'étude

Plus en détail

1 Introduction et modèle mathématique

1 Introduction et modèle mathématique Optimisation parallèle et mathématiques financières Optimisation parallèle et mathématiques financières Pierre Spiteri 1 IRIT ENSEEIHT, UMR CNRS 5505 2 rue Charles Camichel, B.P. 7122 F-31 071 Toulouse,

Plus en détail

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Régis Boulet Charlie Demené Alexis Guyot Balthazar Neveu Guillaume Tartavel Sommaire Sommaire... 1 Structure

Plus en détail

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1 CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste

Plus en détail

Vers l'ordinateur quantique

Vers l'ordinateur quantique Cours A&G Vers l'ordinateur quantique Données innies On a vu dans les chapîtres précédents qu'un automate permet de représenter de manière nie (et même compacte) une innité de données. En eet, un automate

Plus en détail

Principe de symétrisation pour la construction d un test adaptatif

Principe de symétrisation pour la construction d un test adaptatif Principe de symétrisation pour la construction d un test adaptatif Cécile Durot 1 & Yves Rozenholc 2 1 UFR SEGMI, Université Paris Ouest Nanterre La Défense, France, cecile.durot@gmail.com 2 Université

Plus en détail

CHAPITRE VIII : Les circuits avec résistances ohmiques

CHAPITRE VIII : Les circuits avec résistances ohmiques CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On

Plus en détail

Programmation linéaire

Programmation linéaire Programmation linéaire DIDIER MAQUIN Ecole Nationale Supérieure d Electricité et de Mécanique Institut National Polytechnique de Lorraine Mathématiques discrètes cours de 2ème année Programmation linéaire

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane Poteaux Adrien XLIM-DMI, UMR-CNRS 6172 Université de Limoges Soutenance de thèse 15 octobre

Plus en détail

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

Méthodes de développement. Analyse des exigences (spécification)

Méthodes de développement. Analyse des exigences (spécification) 1 / 16 Méthodes de développement Analyse des exigences (spécification) 1 -Objectifs de l'analyse des exigences... 2 2 - Approfondissement et formalisation du besoin... 2 2.1 Séparation des besoins, contraintes

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Géométrie dans l espace Produit scalaire et équations

Géométrie dans l espace Produit scalaire et équations Chapitre 11. 2ème partie Géométrie dans l espace Produit scalaire et équations Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES 2ème partie Produit scalaire Produit scalaire

Plus en détail

Chapitre 2 Le problème de l unicité des solutions

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

Happy birthday ZSet High performance computing dans ZSet

Happy birthday ZSet High performance computing dans ZSet Happy birthday ZSet High performance computing dans ZSet F. Feyel & P. Gosselet Architectures SMP NUMA memory memory memory Distribué memory memory 2 memory memory Hybride memory memory memory memory memory

Plus en détail

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN 1. Introduction Le règlement (UE) n 610/2013 du 26 juin 2013 a modifié la convention d'application de l'accord de Schengen,

Plus en détail

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

Plus en détail

Exercices Corrigés Premières notions sur les espaces vectoriels

Exercices Corrigés Premières notions sur les espaces vectoriels Exercices Corrigés Premières notions sur les espaces vectoriels Exercice 1 On considére le sous-espace vectoriel F de R formé des solutions du système suivant : x1 x 2 x 3 + 2x = 0 E 1 x 1 + 2x 2 + x 3

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

Plus en détail

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. L usage d une calculatrice est autorisé Durée : 3heures Deux annexes sont à rendre avec la copie. Exercice 1 5 points 1_ Soit f la

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Axiomatique de N, construction de Z

Axiomatique de N, construction de Z Axiomatique de N, construction de Z Table des matières 1 Axiomatique de N 2 1.1 Axiomatique ordinale.................................. 2 1.2 Propriété fondamentale : Le principe de récurrence.................

Plus en détail

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2. Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2. Techniques de correction pour les options barrières 25 janvier 2007 Exercice à rendre individuellement lors

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci http://liris.cnrs.fr/hamamache.kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

Plus en détail

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation

Plus en détail

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008) Examen optimisation Centrale Marseille (28) et SupGalilee (28) Olivier Latte, Jean-Michel Innocent, Isabelle Terrasse, Emmanuel Audusse, Francois Cuvelier duree 4 h Tout resultat enonce dans le texte peut

Plus en détail

Date : 18.11.2013 Tangram en carré page

Date : 18.11.2013 Tangram en carré page Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches

Plus en détail

Introduire un nouveau type de maille ou un nouvel élément de référence

Introduire un nouveau type de maille ou un nouvel élément de référence Titre : Introduire un nouveau type de maille ou un nouvel [...] Date : 05/10/2012 Page : 1/11 Introduire un nouveau type de maille ou un nouvel élément de référence Résumé : Ce document décrit ce qu il

Plus en détail

Compte rendu des TP matlab

Compte rendu des TP matlab Compte rendu des TP matlab Krell Stella, Minjeaud Sebastian 18 décembre 006 1 TP1, Discrétisation de problèmes elliptiques linéaires 1d Soient > 0, a R, b 0, c, d R et f C([0, 1], R). On cerce à approcer

Plus en détail

Algorithmes d'apprentissage

Algorithmes d'apprentissage Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt

Plus en détail

CNAM UE MVA 210 Ph. Durand Algèbre et analyse tensorielle Cours 4: Calcul dierentiel 2

CNAM UE MVA 210 Ph. Durand Algèbre et analyse tensorielle Cours 4: Calcul dierentiel 2 CNAM UE MVA 210 Ph. Duran Algèbre et analyse tensorielle Cours 4: Calcul ierentiel 2 Jeui 26 octobre 2006 1 Formes iérentielles e egrés 1 Dès l'introuction es bases u calcul iérentiel, nous avons mis en

Plus en détail

THÈSE PRÉSENTÉE À L'UNIVERSITÉ DE BORDEAUX I ÉCOLE DOCTORALE DE MATHÉMATIQUES ET D'INFORMATIQUE. Par Bruno LATHUILIÈRE POUR OBTENIR LE GRADE DE

THÈSE PRÉSENTÉE À L'UNIVERSITÉ DE BORDEAUX I ÉCOLE DOCTORALE DE MATHÉMATIQUES ET D'INFORMATIQUE. Par Bruno LATHUILIÈRE POUR OBTENIR LE GRADE DE N o d'ordre : 41 THÈSE PRÉSENTÉE À L'UNIVERSITÉ DE BORDEAUX I ÉCOLE DOCTORALE DE MATHÉMATIQUES ET D'INFORMATIQUE Par Bruno LATHUILIÈRE POUR OBTENIR LE GRADE DE DOCTEUR SPÉCIALITÉ : INFORMATIQUE Méthode

Plus en détail

Année Universitaire 2009/2010 Session 2 de Printemps

Année Universitaire 2009/2010 Session 2 de Printemps Année Universitaire 2009/2010 Session 2 de Printemps DISVE Licence PARCOURS : CSB4 & CSB6 UE : INF 159, Bases de données Épreuve : INF 159 EX Date : Mardi 22 juin 2010 Heure : 8 heures 30 Durée : 1 heure

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université

Plus en détail

Correction de l examen de la première session

Correction de l examen de la première session de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi

Plus en détail

Ebauche Rapport finale

Ebauche Rapport finale Ebauche Rapport finale Sommaire : 1 - Introduction au C.D.N. 2 - Définition de la problématique 3 - Etat de l'art : Présentatio de 3 Topologies streaming p2p 1) INTRODUCTION au C.D.N. La croissance rapide

Plus en détail

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Filtrage stochastique non linéaire par la théorie de représentation des martingales Filtrage stochastique non linéaire par la théorie de représentation des martingales Adriana Climescu-Haulica Laboratoire de Modélisation et Calcul Institut d Informatique et Mathématiques Appliquées de

Plus en détail

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi Thèse High Performance by Exploiting Information Locality through Reverse Computing Présentée et soutenue publiquement le 21 décembre 2011 par Mouad Bahi pour l obtention du Doctorat de l université Paris-Sud

Plus en détail

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES Sommaire 1 Méthodes de résolution... 3 1.1. Méthode de Substitution... 3 1.2. Méthode des combinaisons linéaires... 6 La rubrique d'aide qui suit s'attardera aux

Plus en détail

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m 1 épartement de Physique, Université Laval, Québec Pierre Amiot, 1. La fonction delta et certaines de ses utilisations. Clientèle Ce texte est destiné aux physiciens, ingénieurs et autres scientifiques.

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

2. Activités et Modèles de développement en Génie Logiciel

2. Activités et Modèles de développement en Génie Logiciel 2. Activités et Modèles de développement en Génie Logiciel Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Les Activités du GL Analyse des besoins Spécification globale Conceptions architecturale

Plus en détail

Manipulateurs Pleinement Parallèles

Manipulateurs Pleinement Parallèles Séparation des Solutions aux Modèles Géométriques Direct et Inverse pour les Manipulateurs Pleinement Parallèles Chablat Damien, Wenger Philippe Institut de Recherche en Communications et Cybernétique

Plus en détail

Intégration et probabilités TD1 Espaces mesurés Corrigé

Intégration et probabilités TD1 Espaces mesurés Corrigé Intégration et probabilités TD1 Espaces mesurés Corrigé 2012-2013 1 Petites questions 1 Est-ce que l ensemble des ouverts de R est une tribu? Réponse : Non, car le complémentaire de ], 0[ n est pas ouvert.

Plus en détail

T.P. FLUENT. Cours Mécanique des Fluides. 24 février 2006 NAZIH MARZOUQY

T.P. FLUENT. Cours Mécanique des Fluides. 24 février 2006 NAZIH MARZOUQY T.P. FLUENT Cours Mécanique des Fluides 24 février 2006 NAZIH MARZOUQY 2 Table des matières 1 Choc stationnaire dans un tube à choc 7 1.1 Introduction....................................... 7 1.2 Description.......................................

Plus en détail

Correction du baccalauréat ES/L Métropole 20 juin 2014

Correction du baccalauréat ES/L Métropole 20 juin 2014 Correction du baccalauréat ES/L Métropole 0 juin 014 Exercice 1 1. c.. c. 3. c. 4. d. 5. a. P A (B)=1 P A (B)=1 0,3=0,7 D après la formule des probabilités totales : P(B)=P(A B)+P(A B)=0,6 0,3+(1 0,6)

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

LES DÉTERMINANTS DE MATRICES

LES DÉTERMINANTS DE MATRICES LES DÉTERMINANTS DE MATRICES Sommaire Utilité... 1 1 Rappel Définition et composantes d'une matrice... 1 2 Le déterminant d'une matrice... 2 3 Calcul du déterminant pour une matrice... 2 4 Exercice...

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche Bachir Bekka Février 2007 Le théorème de Perron-Frobenius a d importantes applications en probabilités (chaines

Plus en détail

Conception d'un réseau de transport d'électricité

Conception d'un réseau de transport d'électricité La Fédération Française des Jeux Mathématiques et la Société de Calcul Mathématique SA avec l'appui de Réseau de Transport d'electricité Conception d'un réseau de transport d'électricité Auteurs : Florian

Plus en détail

Une application de méthodes inverses en astrophysique : l'analyse de l'histoire de la formation d'étoiles dans les galaxies

Une application de méthodes inverses en astrophysique : l'analyse de l'histoire de la formation d'étoiles dans les galaxies Une application de méthodes inverses en astrophysique : l'analyse de l'histoire de la formation d'étoiles dans les galaxies Ariane Lançon (Observatoire de Strasbourg) en collaboration avec: Jean-Luc Vergely,

Plus en détail

Représentation géométrique d un nombre complexe

Représentation géométrique d un nombre complexe CHAPITRE 1 NOMBRES COMPLEXES 1 Représentation géométrique d un nombre complexe 1. Ensemble des nombres complexes Soit i le nombre tel que i = 1 L ensemble des nombres complexes est l ensemble des nombres

Plus en détail

Multiprogrammation parallèle générique des méthodes de décomposition de domaine

Multiprogrammation parallèle générique des méthodes de décomposition de domaine Multiprogrammation parallèle générique des méthodes de décomposition de domaine Andréa Schwertner-Charão To cite this version: Andréa Schwertner-Charão. Multiprogrammation parallèle générique des méthodes

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes): Master Chimie Fondamentale et Appliquée : spécialité «Ingénierie Chimique» Examen «Programmation, Simulation des procédés» avril 2008a Nom : Prénom : groupe TD : I. Programmation I. 1 Ecrire un programme

Plus en détail

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Rencontre sur la thématique du Calcul Haute Performance - 13 juin 2012. Better Match, Faster Innovation

Rencontre sur la thématique du Calcul Haute Performance - 13 juin 2012. Better Match, Faster Innovation Better Match, Faster Innovation Rencontre sur la thématique du Calcul Haute Performance - 13 juin 2012 Meeting on the theme of High Performance Computing TABLE DES MATIÈRES Qu est ce qu un imatch? STI

Plus en détail

Théorème du point fixe - Théorème de l inversion locale

Théorème du point fixe - Théorème de l inversion locale Chapitre 7 Théorème du point fixe - Théorème de l inversion locale Dans ce chapitre et le suivant, on montre deux applications importantes de la notion de différentiabilité : le théorème de l inversion

Plus en détail

Dans cette définition, il y a trois notions clés: documents, requête, pertinence.

Dans cette définition, il y a trois notions clés: documents, requête, pertinence. Introduction à la RI 1. Définition Un système de recherche d'information (RI) est un système qui permet de retrouver les documents pertinents à une requête d'utilisateur, à partir d'une base de documents

Plus en détail

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument Formes algébriques et trigonométriques, module et argument Exercice - - L/Math Sup - On multiplie le dénominateur par sa quantité conjuguée, et on obtient : Z = 4 i 3 + i 3 i 3 = 4 i 3 + 3 = + i 3. Pour

Plus en détail

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1 La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1 La licence Mathématiques et Economie-MASS de l Université des Sciences Sociales de Toulouse propose sur les trois

Plus en détail

Programmation linéaire

Programmation linéaire CHAPTER 1 Programmation linéaire 1.1. Qu'est-ce que la programmation linéaire 1.1.1. Exemple: le problème du régime de Polly [1, p.3]. Besoins journaliers: Énergie: 2000 kcal Protéines: 55g Calcium: 800

Plus en détail

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines FctsAffines.nb 1 Mathématiques, 1-ère année Edition 2007-2008 Fonctions affines Supports de cours de mathématiques de degré secondaire II, lien hpertete vers la page mère http://www.deleze.name/marcel/sec2/inde.html

Plus en détail

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples, Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très

Plus en détail