24.06.2013 Views

TH`ESE - Enseeiht

TH`ESE - Enseeiht

TH`ESE - Enseeiht

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

N o Ordre : 1303<br />

THÈSE<br />

présentée en vue de l’obtention<br />

du titre de<br />

DOCTEUR DE L’INSTITUT NATIONAL POLYTECHNIQUE DE TOULOUSE<br />

Spécialité : INFORMATIQUE<br />

par<br />

GUIVARCH Ronan<br />

LABORATOIRE D’INFORMATIQUE ET DE MATHÉMATIQUES<br />

APPLIQUÉES (ENSEEIHT–IRIT)<br />

Résolution parallèle de problèmes aux limites couplés par des<br />

méthodes de sous-domaines synchrones et asynchrones.<br />

Soutenue le 17 Juin 1997 devant le jury composé de<br />

Président du Jury : M. J.C. MIELLOU<br />

JURY : M. M. GARBEY Rapporteur<br />

M. J.C. MIELLOU Rapporteur<br />

M. H.C. BOISSON Examinateur<br />

M. J. NOAILLES Examinateur<br />

M. A. RIGAL Examinateur<br />

M. Ph. ROUZAUD Examinateur<br />

M. P. SPITÉRI Examinateur


O Breizh, ma bro ! Me gar ma bro ;<br />

Tra ma vo’r mor Vel mur’n he zro,<br />

Ra vezo digabestr, Ma bro !<br />

Ô, Bretagne mon pays ! Je t’aime ;<br />

Tant que la mer t’encerclera telle une muraille,<br />

Mon pays, tu resteras libre.<br />

À mes parents, à Marie et Alain


Cette étude a été entreprise au Laboratoire d’Informatique et de Mathématiques Appliquées de L’ École<br />

Nationale Supérieure d’ Électrotechnique, d’Électronique, d’Informatique et d’Hydraulique de Toulouse, sous la<br />

direction de Pierre Spitéri ; je tiens à le remercier pour son soutien et son aide qui m’ont permis de mener à<br />

bien ces travaux. Je tiens à lui assurer ma profonde gratitude pour m’avoir initié à la recherche.<br />

Je tiens également à assurer de ma reconnaisance :<br />

Monsieur J.C. Miellou, Professeur à l’Université de Franche-Comté, qui a accepté d’être rapporteur de<br />

cette thèse, et qui par ses remarques pertinentes, son soutien constant et ses encouragements m’a permis<br />

de faire avancer mes travaux,<br />

Monsieur M. Garbey, Professeur à l’Université Claude Bernard de Lyon 1, Directeur du Centre pour<br />

le Développement du Calcul Scientifique Parallèle de l’Université de Lyon 1, qui me fait l’honneur d’être<br />

rapporteur de ce travail, et qui par ses conseils avisés m’a aidé à améliorer la présentation de ce manuscrit,<br />

Monsieur H.C. Boisson, Directeur de Recherche à l’Institut de Mécanique des Fluides de Toulouse avec<br />

qui nous avons eu l’occasion de collaborer sur des thèmes scientifiques complémentaires. Je remercie aussi<br />

J.P. Bombaud qui a mis à ma disposition les moyens de visualisation de l’I.M.F.T.,<br />

Monsieur A. Rigal, Professeur à l’Université Paul Sabatier de Toulouse, pour l’intérêt porté à mes travaux<br />

et pour son aimable participation au jury d’examen,<br />

Monsieur Ph. Rouzaud, Directeur du C.N.U.S.C., qui a accepté d’être membre de mon jury ainsi que<br />

pour les facilités qu’il m’a accordées pour l’utilisation du multiprocesseur SP2 du C.N.U.S.C. Je profite de<br />

l’occasion pour adresser mes remerciements à Madame M. Batlle, Messieurs G. Urbach, J.L. Ambrosino<br />

et G. Gil pour l’aide technique qu’ils m’ont apportée et qui a contribué au bon déroulement de ce travail.<br />

Je remercie Ph. Fallandry pour le soin apporté à la phase de visualisation des résultats du problème<br />

d’électrophorèse,<br />

Monsieur J. Noailles, Professeur à l’Institut National Polytechnique de Toulouse pour l’attention bienveillante<br />

et constante qu’il a toujours manifestée vis-à-vis de mon travail.<br />

J’adresse également mes remerciements à Didier El Baz, chargé de recherche C.N.R.S. au L.A.A.S. de Toulouse<br />

pour les conversations constructives et fructueuses que nous avons pu mener durant ce travail de thèse.<br />

Je remercie aussi L. Giraud du C.E.R.F.A.C.S. ainsi que toutes les personnes du deuxième étage du laboratoire<br />

d’informatique : P. Amestoy, Ph. Berger, M. Daydé, J. Decamps et D. Ruiz pour les discussions intéressantes<br />

que nous avons eues ensemble et pour la bonne ambiance qui règne à cet étage.<br />

Je tiens aussi à remercier J.B. Caillau pour l’aide apportée au niveau de l’utilisation de Matlab, M. Coulon<br />

pour son travail préliminaire sur le solveur 3D de Navier et Stokes, M. Charpentier, X. Crégut et M. Pantel<br />

pour leur aide en L ATEX ainsi que les nombreux thésards et permanents du L.I.M.A.<br />

Je remercie l’ensemble du personnel enseignant et administratif de la filière et du département informatique<br />

de l’E.N.S.E.E.I.H.T pour la sympathie qu’ils m’ont témoignée durant la réalisation de ce travail, en particulier<br />

Monsieur J.L. Basille qui a accepté de me parrainer durant mon monitorat et Monsieur G. Padiou pour avoir<br />

facilité mes conditions de travail au sein du L.I.M.A.<br />

Je remercie aussi le personnel du Service Édition de l’E.N.S.E.E.I.H.T pour le soin qu’il a apporté à la<br />

réalisation du tirage de ce document.


Mots Clés :<br />

Résumé :<br />

- Calcul Scientifique Haute Performance - Méthodes de sous-domaines<br />

- Parallélisme - Méthode Alternée de Schwarz<br />

- Algorithmes Asynchrones<br />

-<br />

- Problème de Navier-Stokes<br />

Équations aux Dérivées Partielles<br />

Nous nous intéressons à la résolution de problèmes aux limites linéaires ou non-linéaires de grandes tailles<br />

résolus à l’aide d’algorithmes parallèles sur machines multiprocesseurs à mémoire distribuée.<br />

Dans les algorithmes que nous considérons, les processeurs communiquent de manière asynchrone ou synchrone<br />

les résultats de leurs calculs. Dans le présent travail nous avons mixé les aspects communication synchrone et<br />

asynchrone avec les méthodes de sous-domaines. On considère plus particulièrement le couplage entre la méthode<br />

alternée de Schwarz et les algorithmes synchrones et asynchrones. Indépendemment de la résolution d’équations<br />

aux dérivées partielles classiques intervenant en physique mathématique, nous nous sommes intéressés à l’implantation<br />

de ces algorithmes sur machines multiprocesseurs à mémoire distribuée au moyen des outils parallèles<br />

que fournissent P.V.M. ( Parallel Virtual Machine ) et M.P.I. ( Message Passing Interface ).<br />

Dans un premier temps nous rappelons la formulation classique des algorithmes synchrones et asynchrones<br />

ainsi que les conditions d’étude de la convergence de ces méthodes ; nous présentons l’adaptation de ces résultats<br />

au cas des méthodes de sous-domaines avec recouvrement et nous appliquons ces critères à des problèmes aux<br />

limites classiques.<br />

Ensuite nous exposons les algorithmes parallèles asynchrones avec communication flexible ; nous présentons<br />

le lien avec les méthodes de sous-domaines ainsi que les critères de convergence pour l’étude de problèmes aux<br />

limites non linéaires, en particulier dans le cas de maillages éléments finis non structurés.<br />

Dans un troisième temps nous exposons l’implantation de ces méthodes sur le multiprocesseurs I.B.M.-SP2<br />

du C.N.U.S.C. ( Centre National Universitaire Sud de Calcul de Montpellier ) à l’aide de P.V.M. et M.P.I. Nous<br />

proposons des schémas d’implantation des algorithmes asynchrones et synchrones classiques et des algorithmes<br />

asynchrones avec communication flexible en utilisant les routines de communications de P.V.M. et de M.P.I.<br />

Nous présentons par la suite l’analyse ainsi que les tests numériques pour la résolution de deux types de<br />

problèmes aux limites : un problème de convection-diffusion, soit linéaire, soit perturbé par une application<br />

diagonale non décroissante, ce qui dans ce dernier cas conduit à un problème non linéaire. Le second problème<br />

traité est le problème de Navier-Stokes 2D. L’utilisation de la formulation fonction courant-tourbillon conduit<br />

à la résolution d’une équation de convection-diffusion couplée à une équation de Poisson.<br />

Finalement nous montrons que les résultats étudiés précédemment s’appliquent à la résolution d’un problème<br />

d’électrophorèse 3D où interviennent les équations de Navier-Stokes couplées à une équation de transport et à<br />

une équation de potentiel.


Parallel solution of linked boundary value problems with synchronous<br />

and asynchronous subdomains methods.<br />

Keywords :<br />

- High Performance Scientific Computation - Decomposition Methods<br />

- Parallelism - Alternating Schwarz Method<br />

- Asynchronous Algorithms - Navier-Stokes Problem<br />

- Partial Differential Equations<br />

We study the solution of large linear and non linear boundary value problems solved with parallel algorithms<br />

on distributed memory multiprocessors.<br />

In the present work we are interested by asynchronous Schwarz alternating method for the solution of boundary<br />

value problems. In this kind of method, the components of the iteration vector are updated in parallel by the<br />

different processors without any order nor synchronization. Independently of the solution of boundary value<br />

problems, we study the implementation of these algorithms on distributed memory multiprocessors with P.V.M.<br />

( Parallel Virtual Machine ) and M.P.I. ( Message Passing Interface ).<br />

In a first chapter of our work, we recall the classical formulation of synchronous and asynchronous algorithms<br />

and the convergence conditions of these methods ; we present the adaptation of these results to subdomains<br />

methods with overlapping and we apply these criteria to some classical boundary value problems.<br />

We expose in a second chapter the parallel algorithms with flexible communication and present the link with<br />

the subdomains methods and the convergence criteria for the study of non linear boundary value problems, in<br />

particular with a finite elements mesh.<br />

The third chapter concerns the implementation of these methods on the I.B.M.-SP2 of the C.N.U.S.C. at<br />

Montpellier with P.V.M. and M.P.I. We propose the implementation schemes of classical synchronous and<br />

asynchronous algorithms and asynchronous algorithms with flexible communication by using P.V.M. and M.P.I.<br />

communication routines.<br />

We present in chapter four and five the analysis and the numerical tests for the solution of two kinds of<br />

boundary value problems : the convection-diffusion problem, linear or perturbated by a monotone nondecreasing<br />

operator, which leads to a non linear problem. The second problem is the 2D Navier-Stokes problem with the<br />

classical vorticity-stream function formulation which leads to the solution of a convection-diffusion equation<br />

linked to a regular Poisson equation.<br />

Finally we show that the results studied above can be applied to the solution of a 3D electrophoresis problem<br />

where take occurs the Navier-Stokes problem linked with a mass transport equation and a potential equation.


Introduction générale.<br />

L’étude de phénomènes intervenant dans des domaines comme la physique, la chimie, la mécanique, la<br />

météorologie, la recherche pétrolière ou l’économie conduit à l’élaboration de modèles mathématiques de plus en<br />

plus sophistiqués. Le développement de tels modèles, toujours plus complexes et prenant en compte le maximum<br />

de phénomènes physiques, est facilité par les possibilités actuelles de calcul. Ces progrès dans la modélisation<br />

sont liés également à l’émergence de l’utilisation des simulations numériques dans l’industrie.<br />

La résolution numérique de tels modèles, où interviennent des équations aux dérivées partielles couplées,<br />

conduit à la résolution de systèmes algébriques de très grandes tailles surtout si on se place dans des domaines<br />

tridimensionnels. Par exemple l’étude complète du comportement d’un avion conduit à la résolution des<br />

équations de Navier-Stokes simplifiées ; si le nombre de paramètres physiques, vitesses, déformations, pression<br />

... est de 20 et que l’on considère une discrétisation par un maillage de 10 7 points, nous obtenons un système<br />

de 2 × 10 8 équations non linéaires à 2 × 10 8 inconnues [6] ; la difficulté numérique rencontrée dans ce contexte<br />

est de plus aggravée par le fait que le problème considéré est un problème d’évolution, ce qui compte tenu du<br />

surcroît de la non-linéarité augmente considérablement le calcul : dans notre exemple cela conduirait à un total<br />

de 10 13 opérations arithmétiques.<br />

Jusqu’à ces dernières années les ordinateurs utilisés avait un comportement séquentiel conforme à l’architecture<br />

de Von Neumann. Actuellement des travaux sont encore réalisés sur ce type de machine pour diminuer leur<br />

cycle de base ainsi que pour augmenter leurs capacités de stockage. Cependant les temps de restitution des<br />

programmes informatiques traitant les problèmes de type industriels précédemment évoqués demeurent toujours<br />

trop important. Parmi les solutions envisageables pour diminuer ce temps de calcul, le parallélisme est une voie<br />

actuellement très étudiée.<br />

Pour la résolution numérique parallèle des équations aux dérivées partielles sur machines multiprocesseurs, les<br />

méthodes de sous-domaines sont bien adaptées. Parmi les méthodes de sous-domaines on considère généralement,<br />

soit des méthodes de sous-domaines sans recouvrement comme la méthode du complément de Schur, soit des<br />

méthodes de sous-domaines avec recouvrement comme la méthode alternée de Schwarz. Si on se réfère aux<br />

travaux de J. Zou et K.H. Hoffman [7], il apparaît que cette dernière méthode semble être très performante<br />

pour résoudre l’équation de Poisson classique.<br />

Les machines multiprocesseurs nécessitent dans leur utilisation traditionnelle des synchronisations entre les<br />

processeurs ainsi que la gestion de sections critiques ; ce qui complique considérablement la tâche du programmeur<br />

et entraîne des pertes de temps au niveau du calcul. Inversement, dès les années 1970, on a assisté à<br />

l’analyse du comportement théorique d’itérations asynchrones. Les travaux menés dans ce domaine sont nombreux<br />

et on peut citer le travail initial de D. Chazan et W. Miranker [3] pour la résolution de problèmes linéaires.<br />

0.1


Ces travaux on été étendus dans le cas de systèmes non-linéaires par F. Robert et all [17], [18], dans une situation<br />

où les processeurs communiquent entre eux de manière synchrone. Dans ces deux études, l’analyse de la convergence<br />

a été effectuée par des techniques de contraction en norme vectorielle. Dans un même temps J.C. Miellou<br />

a étudié des algorithmes chaotiques à retards ; l’analyse de ces méthodes est effectuée soit par des techniques<br />

de contraction en norme vectorielle [8], [10], soit par des techniques d’ordre partiel [9] ; dans ces travaux l’asynchronisme<br />

est modélisé par des retards bornés. Ces derniers travaux on été étendus par G.M. Baudet [1] dans le<br />

cadre des algorithmes asynchrones parallèles où les retards considérés peuvent être infinis, la convergence étant<br />

étudiée par des techniques de contraction. Citons également les travaux de D.P. Bertsekas et J. Tsitsiklis [2] où<br />

les itérés successifs appartiennent à des espaces emboîtés ce qui assure la convergence, ce dernier travail ayant<br />

été repris par M. Boulbrachêne, P. Cortey-Dumont et J.C. Miellou [14] en prenant en compte la propagation<br />

d’erreur d’arrondi. Dans un contexte différent M.N. El Tarazi a également établi un résultat de convergence des<br />

algorithmes asynchrones par des techniques de contraction selon une norme scalaire appropriée [4]. Les travaux<br />

de J.C. Miellou et P. Spitéri [12] et ceux de L. Giraud et P. Spitéri [5] fournissent des critères simples assurant<br />

la convergence en norme vectorielle des itérations asynchrones. En effet, si on considère un problème découpé<br />

par blocs de la forme :<br />

Au + φ(u) = b<br />

où A est une matrice et φ un opérateur diagonal croissant, à condition que le couplage entre les sous-systèmes<br />

soit raisonnable, on obtiendra la convergence en norme vectorielle si une des conditions suivantes est vérifiée :<br />

soit les blocs diagonaux sont définis positifs, soit ces mêmes blocs sont à diagonale dominante.<br />

Notons cependant que l’asynchronisme considéré au paragraphe précédent ne présente pas le maximum de<br />

flexibilité dans la mesure où les échanges inter-processeurs ont lieu lorsqu’un processeur a terminé une itération<br />

sur le bloc dont il a la charge. Dans un travail récent J.C. Miellou, D. El Baz et P. Spitéri [15] ont considéré<br />

des processus parallèles asynchrones où les communications sont plus flexibles ; ce type d’algorithme est bien<br />

formulé par l’introduction de relaxations approchées où un processeur peut utiliser des valeurs d’itérations<br />

partielles correspondant aux itérations en cours des autres processeurs. Ces méthodes sont envisageables lorsque<br />

l’opérateur à inverser est une M-fonction au sens de Rheinboldt [16] ; les techniques d’analyse de ces algorithmes<br />

utilisent le principe de maximum discret ce qui conduit à des itérés ordonnés de manière monotone croissante ou<br />

décroissante en fonction des propriétés de la valeur d’approximation initiale de la solution. Dans ce contexte le<br />

travail de J.C. Miellou [9] avec analyse en ordre partiel précédemment évoqué rentre dans ce cadre plus général.<br />

Pour la résolution d’équations aux dérivées partielles, on peut mixer les aspects communication synchrone<br />

et asynchrone avec les méthodes de sous-domaines. C’est dans ce cadre d’étude que se situe le présent travail<br />

où on considère plus particulièrement, compte tenu de l’article de J. Zou et K.H. Hoffman [7], le couplage<br />

entre la méthode alternée de Schwarz et les algorithmes synchrones et asynchrones. Indépendemment de<br />

la résolution d’équations aux dérivées partielles classiques intervenant en physique mathématique, nous nous<br />

sommes intéressés à l’implantation de ces algorithmes sur machines multiprocesseurs à mémoire distribuée au<br />

moyen des outils parallèles que fournissent P.V.M. ( Parallel Virtual Machine ) et M.P.I. ( Message Passing<br />

Interface ).<br />

Le présent mémoire se subdivise en 5 chapitres. Au chapitre 1, on rappelle la formulation classique des<br />

algorithmes synchrones et asynchrones ainsi que les conditions d’étude de la convergence de ces méthodes ;<br />

nous présentons l’adaptation de ces résultats au cas des méthodes de sous-domaines avec recouvrement et nous<br />

appliquons ces critères à des problèmes aux limites classiques.<br />

0.2


Le chapitre 2 expose les algorithmes parallèles asynchrones avec communication flexible et présente le lien avec<br />

les méthodes de sous-domaines. Ce chapitre se termine par l’application des critères de convergence pour l’étude<br />

de problèmes aux limites non linéaires, en particulier dans le cas de maillages éléments finis non structurés.<br />

Le chapitre 3 concerne l’implantation de ces méthodes sur le multiprocesseur I.B.M.-SP2 du C.N.U.S.C.<br />

( Centre National Universitaire Sud de Calcul de Montpellier ) à l’aide de P.V.M. et M.P.I. Nous proposons des<br />

schémas d’implantation des algorithmes considérés aux chapitres 1 et 2 en utilisant les routines de communication<br />

de P.V.M. et de M.P.I.<br />

Dans les deux chapitres suivants nous présentons l’analyse ainsi que les tests numériques pour la résolution de<br />

deux types de problèmes aux limites. Au chapitre 4, on étudie le cas du problème de convection-diffusion, soit<br />

linéaire, soit perturbé par une application diagonale non décroissante, ce qui dans ce dernier cas conduit à un<br />

problème non linéaire ; dans ces deux situations, le cadre formel envisagé aux chapitres 1 et 2 est applicable. De<br />

plus dans ce chapitre nous présentons le parti que l’on peut tirer de situations où le coefficient de diffusion est<br />

petit et où on utilise des discrétisations décentrées des termes de convection, ce qui conduit à des algorithmes<br />

performants à condition d’adopter un balayage convenable des points de discrétisation en accord avec la structure<br />

quasi-triangulaire de la matrice ; ce point est compatible sans restriction avec le cadre formel présenté aux<br />

chapitres 1 et 2. Le second problème traité au chapitre 5 est le problème de Navier-Stokes 2D. L’utilisation de la<br />

formulation fonction courant-tourbillon conduit à la résolution d’une équation de convection-diffusion couplée à<br />

une équation de Poisson. Dans ce contexte on traite l’équation de convection-diffusion par les méthodes étudiées<br />

au chapitre 4, l’équation de diffusion étant résolue de manière efficace par une variante de la méthode de Schwarz<br />

proposée par J.C. Miellou [11].<br />

Le dernier chapitre concerne un problème d’électrophorèse en écoulement continu. Ce procédé utilisé pour<br />

analyser les mélanges de protéines biologiques conduit à la résolution de problèmes d’équations aux dérivées<br />

partielles couplées comportant l’équation de Navier-Stokes, régissant l’hydrodynamique, l’équation de transport<br />

de la concentration des espèces en présence et l’équation de potentiel généralisé du champ électrique. Dans ce<br />

chapitre nous vérifions que ces équations peuvent être discrétisées de manière à obtenir des systèmes rentrant<br />

dans le cadre de l’accrétivité et des M-fonctions présentées aux chapitres 1 et 2. Nous vérifions par une méthode<br />

séquentielle la faisabilité numérique des simulations et présentons divers résultats numériques.<br />

0.3


0.4


Rfrences.<br />

1. G.M. Baudet, Asynchronous iterative methods for multiprocessors, Journal of A.C.M., 25 (1978), pp. 226–<br />

244.<br />

2. D. P. Bertsekas and J. Tsitsiklis, Parallel and Distributed computation, Numerical Methods, Englewood<br />

cliffs : Prentice Hall, (1989)<br />

3. D. Chazan and W. Miranker, Chaotic relaxation, Linear Algebra Appl., 2 (1969), pp. 199–222.<br />

4. M.N. El Tarazi, Some convergence results for asynchronous algorithms, Numerisch Mathematik, 39 (1982),<br />

pp. 325–340.<br />

5. L. Giraud and P. Spitéri, Parallel resolution of non-linear boundary values problems, M.2 A.N., 25 (1991),<br />

pp. 579–606.<br />

6. A. Herscovici, Introduction aux grands ordinateurs scientifiques, Eyrolles (1986).<br />

7. K.H. Hoffman and J. Zou , Parallel efficiency of domain decomposition methods, Parallel Computing, 19<br />

(1993), pp. 1375–1391.<br />

8. J. C. Miellou, Itérations chaotiques à retards, C.R.A.S. Paris, 278 (1974), pp. 957–960.<br />

9. J. C. Miellou, Itérations chaotiques à retards, étude de la convergence dans le cas d’espaces partiellement<br />

ordonnés, C.R.A.S. Paris, 280 (1975), pp. 233–236.<br />

10. J. C. Miellou, Algorithmes de relaxation chaotiques à retard, RAIRO R1, (1975), pp. 55–82.<br />

11. J.C. Miellou , Variantes synchrones et asynchrones de la méthode alternée de Schwarz , Rapport de recherche<br />

E.R.A. de mathématiques n ◦ 070654, Université de Besançon, (1982).<br />

12. J. C. Miellou et P. Spitéri, Un critère de convergence pour des méthodes générales de point fixe, M.2 A.N.,<br />

(1985), pp. 170–201.<br />

13. J. C. Miellou, Asynchronous iterations in order intervals, Parallel Algorithms, M. Cosnard et al. ed, Amsterdam<br />

: North-Holland, (1986), pp. 85–96.<br />

14. J. C. Miellou, Ph. Cortey-Dumont and M. Boulbrachêne, Perturbation of fixed-point iterative methods,<br />

Advances in Parallel computing 1, AI Press Inc., (1990), pp. 81–122.<br />

15. J.C. Miellou, D. El Baz and P. Spitéri, A new class of asynchronous iterative algorithms with order interval,<br />

IRIT/94-34-R report, LCS report 1994-16/LAAS 94324 report, (1994) à paraitre dans Mathematics of<br />

Computation.<br />

16. W. C. Rheinboldt, On M-functions and their application to nonlinear Gauss-Seidel iterations and to network<br />

flows, J. Math. Anal. and Appl., 32 (1970), pp. 274–307.<br />

17. F. Robert, M. Charnay et F. Musy, Itérations chaotiques série-parallèle pour des équations non-linéaires de<br />

point fixe, Aplikace Mathematik, 20 (1975), pp. 1–38.<br />

18. F. Robert, Convergence locale d’itération chaotique non-linéaire, C.R.A.S. série A, 284 (1977), pp. 679–682.<br />

19. P. Spitéri, Parallel asynchronous algorithms for solving boundary value problems , In Parallel algorithms,<br />

Eds M. Cosnard et al., North Holland, (1986) pp. 73–84.<br />

0.5


Chapitre 1<br />

Algorithmes parallèles asynchrones et<br />

synchrones classiques.<br />

Introduction.<br />

Dans ce chapitre nous nous intéressons à des algorithmes itératifs de relaxation synchrones et asynchrones<br />

pour résoudre de grands systèmes d’équations linéaires ou non-linéaires issus de discrétisation d’équations ou<br />

d’inéquations aux dérivées partielles. La modélisation de ces algorithmes asynchrones a été développée successivement<br />

par D. Chazan et Miranker [8] dans le cadre linéaire, J.C. Miellou [22], G. Baudet [2], D. Bertsekas [6]<br />

dans le cadre non-linéaire ; citons également les travaux de F. Robert ( [27],[28] ) dans le cas synchrone. La<br />

modélisation de ces algorithmes est effectuée en introduisant une stratégie de choix des composantes pour<br />

rendre compte du parallélisme ainsi qu’une notion de retards pour rendre compte de l’asynchronisme entre les<br />

processeurs.<br />

Dans le présent chapitre, la convergence des algorithmes est étudiée par des techniques de contraction ; la<br />

démarche générale peut se résumer comme suit : étant donné un système d’équations ou d’inéquations fonctionnelles<br />

non-linéaires, nous décomposons ce système en sous-systèmes. La convergence de ces algorithmes de<br />

relaxation est assurée soit par des propriétés de contraction en norme vectorielle ( voir [2], [22] ), soit par des<br />

propriétés de contraction pour une norme scalaire adaptée de l’application de point fixe associé au problème [12].<br />

Ces propriétés de contraction sont obtenues dans le cas où les opérateurs régissant les sous-systèmes diagonaux<br />

possèdent des propriétés d’accrétivité forte et si les fonctions d’interactions entre les sous-problèmes vérifient<br />

des conditions de Lipschitz convenables.<br />

Dans le cas d’un problème discrétisé de la forme<br />

AX + φ(X) = b<br />

où A est une matrice et φ est un opérateur diagonal croissant, on obtient des critères d’application simples à<br />

vérifier si la matrice A a des coefficients diagonaux strictement positifs et est à diagonale dominante, ou encore<br />

si elle est définie positive ou si c’est une M-matrice ( [15], [30], [31] ).<br />

Ces méthodes sont applicables pour l’analyse de la convergence de la méthode alternée de Schwarz avec<br />

recouvrement. Il suffit de vérifier que si l’opérateur régissant le problème initial possède les propriétés précédentes<br />

1.1


alors l’opérateur obtenu en appliquant le procédé de Schwarz possède lui aussi des propriétés analogues. On<br />

retrouve ainsi dans ce cadre un résultat de D.J. Evans et W. Derer [13].<br />

Dans le premier paragraphe de ce chapitre nous rappelons la modélisation des algorithmes de relaxation<br />

synchrones et asynchrones, puis dans le paragraphe suivant nous exposons la notion d’accrétivité qui permet<br />

d’analyser la convergence. Nous adaptons les critères de convergence précédents au cas de la méthode alternée<br />

de Schwarz et étudions quelques exemples.<br />

1.2


1 Rappel de la modélisation des algorithmes de relaxation synchrones et asynchrones – résultats<br />

de convergence.<br />

1.1 Définitions. Un résultat de convergence en norme vectorielle.<br />

Soit E un espace de Banach réflexif ( en pratique, dans les applications, E sera l’espace IR n . ) et β un entier<br />

naturel ; pour ℓ ∈ {1, . . . , β}, soit {Eℓ} une famille d’espaces de Banach réflexifs telle que :<br />

on note |.|ℓ la norme de Eℓ.<br />

E =<br />

β<br />

Eℓ; (1.1)<br />

ℓ=1<br />

Soit X un élément de E ; on considère la décomposition suivante de X compatible avec la décomposition de<br />

E :<br />

X = {x1, . . . , xℓ, . . . , xβ}, xℓ ∈ Eℓ, pour ℓ ∈ {1, . . . , β}. (1.2)<br />

Soit q la norme vectorielle canonique sur E définie comme suit :<br />

Soit F une application de D(F ) ⊂ E à valeurs dans D(F ), telle que :<br />

où ∅ dénote l’ensemble vide.<br />

q(X) = {|x1|1, . . . , |xℓ|ℓ, . . . , |xβ|β}. (1.3)<br />

D(F ) = ∅ (1.4)<br />

Compte tenu de la décomposition de E, on peut considérer la décomposition suivante pour F :<br />

et on considère le problème de point fixe :<br />

F (X) = {F1(X), . . . , Fℓ(X), . . . , Fβ(X)} (1.5)<br />

⎧<br />

⎨<br />

⎩<br />

Déterminer X ∗ ∈ D(F ) tel que :<br />

X ∗ = F (X ∗ )<br />

Remarque 1.1. La décomposition de E en espace produit fini d’espaces de Banach est nécessaire pour<br />

décrire le parallélisme, dans la mesure où l’utilisation de machines multiprocesseurs implique la décomposition<br />

des problèmes en sous-problèmes couplés.<br />

Afin de résoudre l’équation (1.6) par des algorithmes de relaxation parallèles synchrones ou asynchrones, nous<br />

rappelons les définitions et résultats suivants [22] :<br />

Dfinition 1.1. Une stratégie S est définie par une suite {s(p)} p∈IN telle que :<br />

(1.6)<br />

∀p ∈ IN, s(p) ⊂ {1, 2, . . . , β} et s(p) = ∅. (1.7)<br />

1.3


∀ℓ ∈ {1, . . . , β}, l’ensemble {p ∈ IN | ℓ ∈ s(p)} est infini. (1.8)<br />

Dfinition 1.2. une suite de retards R est définie par une suite {r(p)} p∈IN telle que :<br />

et ∀ℓ ∈ {1, . . . , β}, ∀p ∈ IN, l’application :<br />

est une fonction non décroissante de p qui vérifie :<br />

∀p ∈ IN r(p) = {r1(p), . . . , rℓ(p), . . . , rβ(p)} ∈ IN β ,<br />

p −→ ρℓ(p) = p − rℓ(p)<br />

ρℓ(p) ≥ 0 et ρi(p) = p, ∀ i ∈ s(p) (1.9)<br />

lim<br />

p→∞ ρℓ(p) = +∞. (1.10)<br />

Compte tenu de définitions précédentes, les algorithmes parallèles de relaxation asynchrones peuvent<br />

être définis comme suit :<br />

où :<br />

Dfinition 1.3. Soit X 0 ∈ D(F ), on considère alors la suite {X p } d’éléments de E définie par induction :<br />

∀p ∈ IN, ∀ℓ ∈ {1, . . . , β}, x p+1<br />

ℓ<br />

=<br />

⎧<br />

⎨ x<br />

⎩<br />

p<br />

ℓ si ℓ ∈ s(p),<br />

Fℓ(W ) si ℓ ∈ s(p),<br />

W ∈ E et W = {. . . , x p−rk(p)<br />

k , . . .}.<br />

(1.11)<br />

Remarque 1.2. La notion de stratégie correspond aux numéros des composantes sur lesquelles on travaille<br />

et rend bien compte du parallélisme ; à l’itération p on traitera en parallèle les composantes dont les numéros<br />

appartiennent à s(p). Il convient toutefois de noter que l’hypothèse (1.8) signifie que l’on doit en théorie relaxer<br />

une infinité de fois chacune des composantes du bloc-vecteur. La notion de retards rend compte de l’asynchronisme<br />

avec lequel est traitée chacune des composantes du vecteur X ; lorsque les retards sont identiquement<br />

nuls, la formulation (1.11) correspond alors aux algorithmes de relaxation synchrones [27] ; si de plus pour tout<br />

p ∈ IN :<br />

- s(p) = {1, 2, . . . , β}, (1.11) modélise l’algorithme de Jacobi par blocs ;<br />

- s(p) = {p mod(β) + 1}, (1.11) modélise l’algorithme de Gauss-Seidel par blocs.<br />

On renvoie à [27] pour des choix de s(p) correspondant à la méthode des directions alternées et à la méthode<br />

de Southwell.<br />

On précise également que l’algorithme défini par (1.11) modélise une méthode de relaxation, où chaque<br />

composante xℓ est calculée à l’aide des valeurs d’interaction disponibles wk.<br />

1.4


On peut alors énoncer le résultat général de convergence suivant établi par J.C. Miellou [22] et G. Baudet<br />

[2] :<br />

Proposition 1.1. Sous les hypothèses (1.4) et :<br />

alors :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

F admet un point fixe X ∗ ∈ D(F ) (1.12)<br />

F est contractante en X ∗ pour la norme vectorielle q<br />

i.e. qu’il existe une matrice J de taille β × β, non négative,<br />

de rayon spectral ρ(J) < 1 telle que l’inégalité suivante soit vérifiée :<br />

q(F (X ∗ ) − F (W )) ≤ J q(X ∗ − W ), ∀W ∈ D(F )<br />

- (1.11) définit X p quel que soit p et {X p } reste dans D(F) ;<br />

- {X p } converge fortement vers X ∗ point fixe de F .<br />

(1.13)<br />

Remarque 1.3. L’inégalité (1.13) correspond à une condition de Lipschitz vectorielle et la proposition 1.1<br />

est l’analogue vectoriel du théorème de point fixe adapté aux itérations parallèles asynchrones.<br />

Remarque 1.4. On envisage à présent l’introduction d’un paramètre de relaxation ω dans l’algorithme (1.11) ;<br />

on considère donc une application Fω, de domaine D(F ), définie par :<br />

Fω(X) = (1 − ω)X + ωF (X).<br />

On sait alors [22] que Fω admet X ∗ pour point fixe et que si de plus :<br />

ω ∈]0,<br />

alors Fω est contractante en norme vectorielle, la matrice de contraction étant :<br />

2<br />

[ (1.14)<br />

1 + ρ(J)<br />

Jω = |1 − ω|I + ωJ. (1.15)<br />

De plus, sous les hypothèses (1.4), (1.12) et (1.13), on a pour la suite {X p } l’estimation de la vitesse asymptotique<br />

de convergence ( [18], [22] ) :<br />

1.2 Un résultat de convergence en norme scalaire.<br />

lim<br />

p→∞ sup|Xp − X ∗ | 1<br />

p ≤ ρ(J).<br />

Soit ρ(J) le rayon spectral de la matrice J ; grâce au théorème de Perron-Frobenius on sait que :<br />

⎧<br />

⎨<br />

⎩<br />

∀ν ∈ [ ρ(J), 1 [, il existe un vecteur Γ ν de IR β de composantes strictement positives tel que :<br />

J Γ ν ≤ ν Γ ν<br />

1.5<br />

(1.16)


Soit γ ν ℓ la ℓ ième -composante du vecteur Γ ν ; alors on peut définir la norme scalaire suivante sur E =<br />

( voir [22] ) :<br />

et on obtient alors le résultat suivant [22] :<br />

|xℓ|ℓ<br />

Xν,J = max<br />

ℓ∈{1,...,β} γν ℓ<br />

β<br />

ℓ=1<br />

Eℓ<br />

(1.17)<br />

Proposition 1.2. Soit F une application de D(F ) ⊂ E à valeurs dans D(F ), et vérifiant une propriété<br />

de contraction en norme vectorielle du type (1.13). Soit J une matrice de taille β × β non négative de rayon<br />

spectral ρ(J) strictement inférieur à 1, alors pour tout X ∗ , W ∈ D(F ), on a :<br />

F (X ∗ ) − F (W )ν,J ≤ ν X ∗ − W ν,J. (1.18)<br />

Remarque 1.5. Autrement dit si F est contractante pour la norme vectorielle q alors il existe une norme<br />

scalaire définie par (1.17) pour laquelle l’application F est contractante.<br />

On peut alors énoncer un résultat de convergence établi par M.N. El Tarazi [12] :<br />

Proposition 1.3. Sous les hypothèses (1.4), (1.12) et (1.18), la suite {X p } définie par (1.11) converge<br />

fortement vers X ∗ point fixe de F .<br />

2 Analyse de la convergence.<br />

2.1 Rappel de la notion d’accrétivité<br />

Pour analyser la convergence des algorithmes asynchrones et synchrones et donner ainsi des conditions suffisantes<br />

de convergence liées aux propriétés des opérateurs à inverser, nous rappelons la notion d’opérateur<br />

accrétif.<br />

2.1.1 Définitions.<br />

E étant un espace de Banach, soit E ∗ son dual topologique ; on note respectivement |.| et |.| ∗ les normes<br />

définies sur E et E ∗ et 〈 , 〉 la forme bilinéaire qui met en dualité E et E ∗ .<br />

Dfinition 1.4. On appelle opérateur de dualité G associé à E l’opérateur de E vers E ∗ défini par :<br />

∀X ∈ E, G(X) = {g ∈ E ∗ | |g| ∗ = |X|, 〈X, g〉 = |X| 2 }.<br />

Remarque 1.6. On montre que l’opérateur de dualité est le sous-différentiel de la demi norme au carré.<br />

Soit Λ un opérateur de D(Λ) à valeurs dans E.<br />

Dfinition 1.5. Λ est un opérateur fortement accrétif si :<br />

∀ (X, X ′ ) ∈ D(Λ) 2 , ∃ g ∈ G(X − X ′ ) et ∃ c ∈ IR + tels que :<br />

〈Λ(X) − Λ(X ′ ), g〉 ≥ c |X − X ′ | 2 .<br />

1.6


Remarque 1.7. Si c est nul l’opérateur Λ est un opérateur accrétif ; si de plus l’inégalité est stricte, l’opérateur<br />

Λ est strictement accrétif.<br />

Remarque 1.8. Cette notion d’accrétivité généralise au cas des espaces de Banach la notion d’opérateur<br />

monotone dans les espaces de Hilbert. En effet dans le cas où E est un espace de Hilbert, E étant identifié à<br />

son dual, alors on vérifie aisément que :<br />

g = X − X ′ si X = X ′<br />

et les notions d’accrétivité et de monotonie coïncident [4].<br />

2.1.2 Cas de IR n : caractérisation des matrices fortement accrétives.<br />

Soit m ∈ IN ; dans ce paragraphe on considère que E = IR m et on note A une matrice carrée de taille m × m<br />

de coefficients ( aℓk ) (ℓ,k)∈({1,...,m}) 2.<br />

La notion de matrices fortement accrétives joue un rôle important dans l’analyse de la convergence des algorithmes<br />

parallèles asynchrones et synchrones pour la résolution d’équations aux dérivées partielles discrétisées.<br />

Nous pouvons caractériser ces matrices dans IR m muni des normes classiques :<br />

Proposition 1.4.<br />

- Une condition nécessaire et suffisante pour que la matrice A soit fortement accrétive dans IR m muni de<br />

la norme euclidienne |.|2, est que A soit une matrice fortement définie positive, i.e. qu’il existe un réel<br />

positif n tel que :<br />

〈AX, X〉 ≥ n |X| 2 2, ∀ X ∈ IR m , (X = 0).<br />

- Une condition nécessaire et suffisante pour que la matrice A soit fortement accrétive dans IR m muni de<br />

la norme ℓ1, est qu’il existe un réel positif n tel que pour tout ℓ ∈ {1, . . . , m} :<br />

aℓℓ ≥ n,<br />

m<br />

aℓℓ −<br />

k = 1<br />

k = ℓ<br />

|akℓ| ≥ n (diagonale strictement dominante par colonne).<br />

- Une condition nécessaire et suffisante pour que la matrice A soit fortement accrétive dans IR m muni de<br />

la norme du max ℓ∞, est qu’il existe un réel positif n tel que pour tout ℓ ∈ {1, . . . , m} :<br />

aℓℓ ≥ n,<br />

m<br />

aℓℓ −<br />

k = 1<br />

k = ℓ<br />

|aℓk| ≥ n (diagonale strictement dominante par ligne).<br />

Dmonstration. Pour les démonstrations de ces résultats de caractérisation des matrices fortement accrétives<br />

nous renvoyons à [15] et [30].<br />

Remarque 1.9. La caractérisation des matrices accrétives se déduit de la remarque 1.7 ; on montre [30] les<br />

résultats suivants :<br />

1.7


- Une condition nécessaire et suffisante pour que la matrice A soit accrétive dans IR m muni de la norme<br />

euclidienne est que A soit une matrice semi-définie positive.<br />

- Une condition nécessaire et suffisante pour que la matrice A soit accrétive dans IR m muni de la norme ℓ1,<br />

est que :<br />

* les coefficients diagonaux de la matrice A soient non négatifs ;<br />

* la matrice A soit à dominance diagonale en colonne, i.e. :<br />

aℓℓ ≥<br />

m<br />

k = 1<br />

k = ℓ<br />

|akℓ|, ∀ ℓ ∈ {1, . . . , m}<br />

- Une condition nécessaire et suffisante pour que la matrice A soit accrétive dans IR m muni de la norme ℓ∞<br />

est que :<br />

* les coefficients diagonaux de la matrice A soient non négatifs ;<br />

* la matrice A soit à dominance diagonale en ligne, i.e. :<br />

aℓℓ ≥<br />

m<br />

k = 1<br />

k = ℓ<br />

|aℓk|, ∀ ℓ ∈ {1, . . . , m}<br />

Remarque 1.10. A étant une matrice définie positive on peut vérifier par un raisonnement de compacité<br />

très simple qu’il existe un nombre c, strictement positif, tel que<br />

< AX, X >≥ c|X| 2 2, ∀X<br />

où c correspond à la valeur minimale de J(Y ) =< AY, Y > avec |Y |2 = 1.<br />

2.1.3 Perturbation d’un opérateur accrétif par un opérateur diagonal.<br />

Dans de nombreuses applications, en particulier la résolution de problèmes aux limites non-linéaires, on<br />

considère la perturbation d’un opérateur accrétif par un opérateur diagonal croissant. On a alors les résultats<br />

suivants :<br />

Proposition 1.5. Soient Λ un opérateur accrétif de E, I l’identité de E et θ un réel positif<br />

alors l’opérateur Λ + θI est fortement accrétif.<br />

Dmonstration. En effet ∀ X ∈ E, ∃g ∈ G(X),<br />

〈ΛX + θX, g〉 = 〈ΛX, g〉 + θ〈X, g〉 ≥ θ|X| 2 donc : 〈ΛX + θX, g〉 ≥ θ|X| 2<br />

Dfinition 1.6. Soit Λ un opérateur de E. On dit que Λ est m-accrétif si :<br />

- Λ est accrétif,<br />

- ∀ θ ∈ IR + , ℑm(θΛ + I) = E.<br />

1.8


Remarque 1.11. Cette notion d’opérateur m-accrétif correspond à celle d’opérateur accrétif maximal, c’est<br />

à dire que si on prolonge l’opérateur on perd la notion d’accrétivité. Pour de plus amples détails sur ces notions<br />

et ces résultats, nous renvoyons à [4].<br />

Proposition 1.6. Soit Λ un opérateur accrétif et Λ d un opérateur m-accrétif éventuellement multivoque,<br />

alors Λ + Λ d est m-accrétif.<br />

2.2 Caractérisation d’une classe d’opérateurs assurant la convergence des algorithmes asynchrones : les opérateurs<br />

H-accrétifs<br />

où<br />

On considère le problème suivant :<br />

Λ(X) + Λ d (X) ∋ 0 , X ∈ E (1.19)<br />

Λ : D(Λ) ⊂ E −→ E<br />

est une application univoque, et Λ d est une application diagonale éventuellement multivoque.<br />

Pour analyser la convergence des algorithmes de relaxation asynchrones et synchrones, on se place de nouveau<br />

dans le cadre de la décomposition de E présentée au paragraphe 1.1.<br />

Pour tout ℓ ∈ {1, . . . , β}, soit Dℓ ⊂ Eℓ. On pose alors :<br />

D(Λ) =<br />

et on décompose alors l’application Λ(X) de manière compatible avec la décomposition de E de la manière<br />

suivante :<br />

Λ(X) = {Λ1(X), . . . , Λℓ(X), . . . , Λβ(X)}.<br />

Pour tout W ∈ D(Λ), pour tout k, ℓ ∈ {1, 2, . . . , β}, soit Λ W ℓk l’application de Dk dans Eℓ définie par :<br />

β<br />

ℓ=1<br />

xk ∈ Dk −→ Λ W ℓk (xk) = Λℓ(w1, . . . , wk−1, xk, wk+1, . . . , wβ).<br />

Remarque 1.12. Si on s’intéresse à une décomposition par blocs de l’opérateur Λ, si k = ℓ l’application<br />

Λ W ℓℓ (xℓ) représente l’analogue du ℓ-ième bloc diagonal de l’opérateur Λ(X) et lorsque k = ℓ, l’application<br />

Λ W ℓk (xk) fait référence à l’interaction entre le ℓ-ième et le k-ième bloc.<br />

Pour tout ℓ ∈ {1, 2, . . . , β}, soit E ∗ ℓ , muni de la norme |.|∗ ℓ , le dual de Eℓ. Par application du théorème de<br />

Hahn-Banach on peut considérer la multi-application Gℓ définie comme suit :<br />

telle que<br />

où 〈 , 〉ℓ désigne le produit de dualité entre Eℓ et E ∗ ℓ .<br />

Dℓ<br />

∀ xℓ ∈ Eℓ −→ Gℓ(xℓ) ⊂ E ∗ ℓ<br />

∃ gℓ ∈ Gℓ(xℓ) , 〈xℓ, gℓ〉ℓ = | xℓ | 2 ℓ et | xℓ |ℓ = | gℓ | ∗ ℓ<br />

1.9


On considère l’hypothèse suivante :<br />

⎧<br />

Il existe une Z-matrice N de coefficients nℓk,<br />

⎪⎨<br />

⎪⎩<br />

(nℓℓ > 0 et nℓk ≤ 0 si k = ℓ) de taille β × β, telle que :<br />

∀ ℓ ∈ {1, 2, . . . , β}, ∀ X, X ′ ∈ D(Λ),<br />

∃ gℓ ∈ Gℓ(xℓ − x ′ ℓ ) vérifiant :<br />

〈Λℓ(X) − Λℓ(X ′ ), gℓ〉ℓ ≥<br />

β<br />

nℓk|xℓ − x ′ ℓ|ℓ.|xk − x ′ k|k<br />

Dfinition 1.7. L’hypothèse (1.20) étant vérifiée, on dira que la matrice N correspondante est :<br />

i une minorante Z-accrétive de Λ ;<br />

ii une minorante M-accrétive de Λ si la Z-matrice N est une M-matrice ;<br />

k=1<br />

.<br />

(1.20)<br />

Proposition 1.7. Moyennant des hypothèses de régularité du domaine de définition et de l’opérateur considéré,<br />

hypothèses toujours vérifiées dans les applications qui nous intéressent, la condition (1.20) est équivalente à l’ensemble<br />

des conditions :<br />

⎧<br />

⎨ ∀ ℓ ∈ {1, 2, . . . , β}, ∀ W ∈ D(Λ), ∀ (xℓ, x<br />

⎩<br />

′ ℓ) ∈ (Dℓ) 2 , ∃ gℓ ∈ Gℓ(xℓ − x ′ ℓ) tel que :<br />

〈ΛW ℓℓ (xℓ) − ΛW ℓℓ (x′ ℓ), gℓ〉ℓ ≥ nℓℓ|xℓ − x ′ ℓ| 2 (1.21)<br />

ℓ<br />

⎧<br />

⎨<br />

⎩<br />

∀ W ∈ D(Λ), ∀ (ℓ, k) ∈ ({1, 2, . . . , β}) 2 , tels que k = ℓ, ∀ (xℓ, x ′ ℓ) ∈ (Dℓ) 2<br />

|Λ W ℓk (xk) − Λ W ℓk (x′ k)|ℓ ≤ −nℓk|xk − x ′ k|k<br />

(1.22)<br />

Remarque 1.13. Les conditions (1.21) et (1.22) traduisent respectivement une condition d’accrétivité forte<br />

pour le ℓ ième sous-problème diagonal et une condition de Lipschitz pour les termes de couplage entre les blocs ℓ<br />

et k. Les hypothèses de régularité mentionnées, du domaine de définition et de l’opérateur, sont respectivement<br />

des hypothèses de quasi-densité au sens de Kato [17] et d’hémi-continuité ( voir [24] et [30] ).<br />

Dfinition 1.8. La condition (1.20) étant vérifiée, si N est une minorante M-accrétive de l’opérateur Λ, on<br />

dira que Λ est H-accrétif.<br />

On précise ici les propriétés de l’opérateur Λ d dans le cas où Λ d est multivoque et se décompose de manière<br />

compatible avec la décomposition de E sous la forme :<br />

Λ d (X) = {Λ d 1(x1), . . . , Λ d ℓ (xℓ), . . . , Λ d β(xβ)} ⊂ E<br />

où Λ d ℓ est également une multi-application de D(Λd ℓ ) ⊂ Eℓ dans Eℓ, vérifiant l’hypothèse de m-accrétivité<br />

suivante : ⎧ ⎨<br />

⎩<br />

∀ (xℓ, x ′ ℓ) ∈ (D(Λ d ℓ ))2 , ∀ ηℓ ∈ Λ d ℓ (xℓ), ∀ η ′ ℓ ∈ Λ d ℓ (x′ ℓ)<br />

∃ gℓ ∈ Gℓ(xℓ − x ′ ℓ) tel que 〈ηℓ − η ′ ℓ, gℓ〉ℓ ≥ 0.<br />

2.3 Un résultat de contraction en norme vectorielle pour une décomposition en blocs du problème.<br />

On considère à présent le problème (1.19) où :<br />

(1.23)<br />

Λ est un opérateur H-accrétif. (1.24)<br />

1.10


Λ d est une multi-application diagonale m-accrétive. (1.25)<br />

On désire utiliser des méthodes parallèles de relaxation asynchrones pour résoudre le problème (1.19).<br />

Pour cela on considère une décomposition du problème (1.19) en β sous-problèmes ; on conserve les hypothèses<br />

précédentes et on les complète par les suivantes :<br />

∀ ℓ ∈ {1, 2, . . . , β}, Λℓ est défini sur Dℓ =<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

ℓ−1 <br />

k=1<br />

Ek × Dℓ ×<br />

β<br />

k=ℓ+1<br />

L’application Iℓ étant l’identité dans Eℓ, on suppose que,<br />

∀ W ∈ E, ∀ ℓ ∈ {1, 2, . . . , β}, l’application :<br />

xℓ −→ Λ d ℓ (xℓ) + Λ W ℓℓ (xℓ) − nℓℓIℓ<br />

est m-accrétive.<br />

Soit W ∈ E, on considère alors les problèmes :<br />

⎧<br />

⎨<br />

⎩<br />

∀ ℓ ∈ {1, 2, . . . , β}, Déterminer xℓ ∈ Eℓ tel que :<br />

0 ∈ Λ d ℓ (xℓ) + Λ W ℓℓ (xℓ).<br />

Grâce aux hypothèses (1.26), (1.27), les problèmes (1.28) ont tous une solution que l’on pose :<br />

X = {x1, x2, . . . , xβ}<br />

et on peut associer au problème (1.28) l’application de point fixe :<br />

de telle sorte que :<br />

xℓ = Fℓ(W )<br />

X = {. . . , xℓ, . . .} = {. . . , Fℓ(W ), . . .} = F (W )<br />

Soit D la matrice diagonale β × β de coefficients dℓ = nℓℓ.<br />

Ek<br />

(1.26)<br />

(1.27)<br />

(1.28)<br />

Soit L ( respectivement U ) la matrice strictement triangulaire inférieure ( respectivement triangulaire<br />

supérieure ) de coefficients :<br />

<br />

<br />

<br />

<br />

Lℓk =<br />

−nℓk si k < ℓ<br />

0 si k ≥ ℓ<br />

respectivement Uℓk =<br />

−nℓk si k > ℓ<br />

0 si k ≤ ℓ<br />

et J = D −1 (L + U).<br />

Proposition 1.8. Les hypothèses (1.26) et (1.27) étant vérifiées, F est bien définie sur E, de manière<br />

univoque, admet pour unique point fixe X ∗ , solution du problème (1.19) et de plus :<br />

avec : ρ(J) < 1.<br />

∀ W ∈ E, q(F (X ∗ ) − F (W )) ≤ J q(X ∗ − W ) (1.29)<br />

1.11


Dmonstration. voir [24] et [30]<br />

Corollaire 1.9. On considère les algorithmes de relaxation asynchrones appliqués à l’approximation du<br />

point fixe X∗ β<br />

de l’application F définie sur l’espace produit E = à valeurs dans ce même espace.<br />

Sous les hypothèses de la proposition 1.8, il y a convergence vers X ∗ des itérés obtenus par ces méthodes, à<br />

partir d’un élément quelconque X 0 ∈ E.<br />

2.4 Convergence des algorithmes asynchrones associés à la décomposition en sous-domaines du problème.<br />

On désire résoudre le problème (1.19) par les mêmes algorithmes parallèles asynchrones envisagés précédemment,<br />

mais pour un découpage du problème en grands blocs ou, de manière équivalente, en sous-domaines, les grands<br />

blocs étant constitués de blocs adjacents de la décomposition envisagée au paragraphe 2.3.<br />

Pour cela, on considère les hypothèses suivantes :<br />

⎧<br />

Soit α un entier naturel tel que α ≤ β, soit {βi} pour i ∈ {1, . . . , α}<br />

⎪⎨<br />

une famille d’entiers tels que :<br />

α<br />

βi = β<br />

⎪⎩<br />

i=1<br />

et ∀ i ∈ {1, . . . , α}, βi = 0<br />

⎧<br />

i−1<br />

⎪⎨<br />

Soit pour tout i ∈ {1, . . . , α}, αi = βj, avec la convention :<br />

⎪⎩<br />

On a l’égalité suivante :<br />

α1 = 0 et Ei =<br />

αi+1 <br />

ℓ=αi+1<br />

Eℓ.<br />

E =<br />

α<br />

Ei<br />

i=1<br />

j=1<br />

k=1<br />

(1.30)<br />

(1.31)<br />

et pour tout W ∈ E, on effectue la décomposition suivante, compatible avec la nouvelle décomposition de E en<br />

produit fini d’espaces de Banach :<br />

W = { ˜w1, . . . , ˜wi, . . . , ˜wα}<br />

et soit ˜q(W ) la norme vectorielle canonique définie sur E :<br />

˜q(W ) = {| ˜w1|1, . . . , | ˜wi|i, . . . , | ˜wα|α}<br />

où pour i ∈ {1, . . . , α}, | . |i est la norme définie sur Ei.<br />

Λ étant l’application de D(Λ) ⊂ E à valeurs dans E, pour tout W ∈ D(Λ), on note :<br />

Λ(W ) = { Λ1(W ), . . . , Λi(W ), . . . , α<br />

Λα(W )} ∈ Ei<br />

et Λ W ij<br />

l’application définie par :<br />

˜xj ∈ D( Λ W ij ) =<br />

αi+1 <br />

ℓ=αi+1<br />

1.12<br />

i=1<br />

Dℓ −→ Λ W ij (˜xj) ∈ Ei


où :<br />

où<br />

Λ W ij (˜xj) = Λi( ˜w1, . . . , ˜wj−1, ˜xj, ˜wj+1, . . . , ˜wα).<br />

De même pour Λ d (X), on envisage une nouvelle décomposition Λ d i<br />

˜wi ∈<br />

αi+1 <br />

ℓ=αi+1<br />

définie comme suit :<br />

D(Λ d ℓ ) −→ Λ d i ( ˜wi) (1.32)<br />

Λ d i ( ˜wi) = {Λ d αi+1(wαi+1), . . . , Λ d ℓ (wℓ), . . . , Λ d αi+1 (wαi+1)}<br />

Pour tout W ∈ E, on considère les problèmes :<br />

⎧<br />

⎨ ∀ i ∈ {1, . . . , α}, déterminer ˜xi ∈ Ei tel que :<br />

⎩<br />

Λ d i (˜xi) + Λ W ii (˜xi) ∋ 0.<br />

Si les problèmes (1.33) ont tous une solution, alors on pose :<br />

On considère également l’hypothèse (1.24).<br />

X = {. . . , ˜xi, . . .} = {. . . , Fi(W ), . . .} = F (W )<br />

(1.33)<br />

On partitionne la minorante M-accrétive N de l’opérateur Λ en blocs {Nij} tels que pour tout i, j ∈ {1, . . . , α},<br />

Nij ait pour coefficient nℓk pour k ∈ {αj + 1, . . . , αj + 1} et ℓ ∈ {αi + 1, . . . , αi+1}.<br />

Soit D la matrice diagonale par blocs, de blocs diagonaux Nii :<br />

Soit L et U les matrices strictement triangulaire inférieure et supérieure par blocs, définie par<br />

<br />

<br />

Lij =<br />

−Nij si i > j<br />

0 si i ≤ j<br />

Uij =<br />

−Nij si i < j<br />

0 si i ≥ j<br />

et on pose :<br />

J = D −1 ( L + U).<br />

La matrice D − ( L + U) étant un partitionnement régulier de la matrice N on sait que ρ( J) < 1 ( voir [25] )<br />

et que de plus J étant non négative, J est bien une matrice de contraction pour la norme vectorielle q d’où le<br />

résultat :<br />

Proposition 1.10. Les conditions (1.26), (1.27) et (1.33) étant vérifiées, F est bien définie sur E de manière<br />

univoque, admet pour point fixe X ∗ solution du problème (1.19), et de plus, pour tout W ∈ E :<br />

avec :<br />

˜q (F (W ) − F (X ∗ )) ≤ J ˜q (W − X ∗ )<br />

ρ( J) < 1.<br />

Corollaire 1.11. On considère les algorithmes de relaxation asynchrones appliqués à l’approximation du<br />

point fixe X∗ α<br />

de l’application F définie de l’espace produit E = Ei à valeurs dans ce même espace. Sous les<br />

1.13<br />

i=1


hypothèses de la proposition (1.10), il y a convergence vers X ∗ des itérés obtenues par ces méthodes, à partir<br />

d’un élément quelconque X 0 ∈ E.<br />

Remarque 1.14. Les résultats précédents signifient que si les algorithmes parallèles synchrones et asynchrones<br />

convergent pour une décomposition donnée alors ils convergent aussi pour toute décomposition plus grossière du<br />

problème. Pratiquement, si on peut vérifier qu’il y a convergence pour la décomposition par point du problème,<br />

alors il y a convergence pour toute décomposition en blocs.<br />

2.5 Critères d’application des algorithmes asynchrones et synchrones classiques dans le cas discret.<br />

Proposition 1.12. Soit A une H-matrice alors A est un opérateur H-accrétif.<br />

Dmonstration. A de coefficients ( aℓk ) (ℓ,k)∈({1,...,m}) 2 est une H-matrice et sa matrice de comparaison est<br />

une M-matrice. Cette matrice de comparaison a selon sa définition ( voir [1] ) pour termes diagonaux les |aℓℓ| et<br />

pour termes hors diagonaux les −|aℓk|. Hors la minorante N de A pour la décomposition par points du problème<br />

est exactement la matrice de comparaison de A.<br />

N est donc une M-matrice et A est donc un opérateur H-accrétif ( voir définition 1.8 )<br />

Remarque 1.15. Si A est une M-matrice, elle est sa propre matrice de comparaison et donc sa propre<br />

minorante pour la décomposition par points du problème. A est dans ce cas un opérateur H-accrétif.<br />

Tout problème dont l’opérateur discrétisé est une H-matrice rentre dans le cadre de la H-accrétivité. Les<br />

algorithmes asynchrones et synchrones classiques appliqués à la résolution de ce problème convergent.<br />

Soit Λ un opérateur de IR m de la forme :<br />

Λ(X) = AX + φ(X).<br />

avec A matrice H-accrétif et φ opérateur diagonal croissant.<br />

Proposition 1.13. L’opérateur Λ ainsi défini est un opérateur H-accrétif et la convergence des algorithmes<br />

asynchrones et synchrones classiques est assurée.<br />

Remarque 1.16. Dans la suite pour rentrer dans le cadre de la H-accrétivité, nous montrerons que les<br />

problèmes que nous considérons sont gouvernés par un opérateur Λ qui s’écrit sous cette forme en montrant que<br />

la matrice de discrétisation est soit une H-matrice soit une M-matrice.<br />

3 Application à la méthode alternée de Schwarz.<br />

3.1 Rappels sur la méthode alternée de Schwarz.<br />

La méthode alternée de Schwarz est une méthode de décomposition de domaine avec recouvrement qui est<br />

bien adaptée au parallélisme [16].<br />

Pour présenter cette méthode, on considère un domaine Ω ⊂ IR 2 découpé en N sous-domaines (Ωi) i∈{1,...,N}<br />

1.14


avec recouvrement et on définit les notations suivantes :<br />

Ω = N i=1 Ωi,<br />

<br />

Ωi+1 = ∅,<br />

Ωi<br />

γ1 <br />

i = ∂Ωi Ωi−1, i ∈ {2, . . . , N},<br />

γ2 <br />

i = ∂Ωi Ωi+1, i ∈ {1, . . . , N − 1},<br />

<br />

Γi = ∂Ωi ∂Ω<br />

où ∂Ω est la frontière du domaine Ω, ∂Ωi est la frontière de Ωi, γ 1 i ( resp. γ2 i<br />

droite ) du sous-domaine Ωi, Γi est la restriction de ∂Ω à Ωi.<br />

✟<br />

✟<br />

✟✟✟✟✟✟✟✟✟✟✟✟<br />

✟<br />

✟<br />

✟<br />

✟✟✟✟✟✟✟✟✟✟✟✟<br />

✟✟✟✟✟✟✟✟✟✟✟✟<br />

✟ ✟ ✟✟✟✟✟✟✟✟<br />

✟ ✟✟<br />

✟ ✟✟✟✟✟✟✟✟✟✟✟<br />

✟ ✟✟✟✟✟<br />

Ω1 Ω2 Ω3<br />

γ 1 2 γ 2 1 γ 1 3 γ 2 2<br />

Figure 1.1 : Exemple de décomposition du domaine Ω par trois sous-domaines.<br />

) est la frontière gauche ( resp.<br />

Considérons une équation aux dérivées partielles linéaire ou non-linéaire définie sur Ω, avec des conditions<br />

aux limites de type Dirichlet ; nous avons le problème suivant :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Déterminer u tel que :<br />

Λ(u) = f dans Ω<br />

u /∂Ω = g<br />

(1.34)<br />

où Λ est un opérateur linéaire ou non-linéaire ; u,f et g sont des fonctions appartenant aux espaces fonctionnels<br />

convenablement choisis pour que le problème (1.34) ait une solution.<br />

La méthode alternée de Schwarz consiste à associer au problème (1.34) le système d’équations aux dérivées<br />

partielles pour i ∈ {1, . . . , N} :<br />

1.15


⎧<br />

⎪⎨<br />

⎪⎩<br />

Λ(ui) = fi dans Ωi<br />

ui /Γi = gi<br />

ui /γ 1 i<br />

ui /γ 2 i<br />

= ui−1 /γ 1 i<br />

= ui+1 /γ 2 i<br />

pour 2 ≤ i ≤ N<br />

pour 1 ≤ i ≤ N − 1<br />

(1.35)<br />

La solution de ce système peut donc être obtenue de façon itérative de la manière suivante : soit u0 i donnés<br />

est calculé par la résolution du système :<br />

pour i ∈ {1, . . . , N} alors pour chaque q ≥ 0, u q<br />

i<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Λ(u q<br />

i ) = fi dans Ωi<br />

u q<br />

i = gi<br />

/Γi<br />

u q<br />

i /γ1 i<br />

u q<br />

i /γ2 i<br />

= u q<br />

i−1 /γ 1 i<br />

= u q−1<br />

i+1 /γ 2 i<br />

pour 2 ≤ i ≤ N<br />

pour 1 ≤ i ≤ N − 1<br />

3.2 Méthode alternée de Schwarz et algorithmes parallèles asynchrones et synchrones.<br />

(1.36)<br />

Pour étudier la convergence de la méthode alternée de Schwarz parallélisée avec des algorithmes asynchrones<br />

appliquée à la résolution du problème considéré, on examine les propriétés des opérateurs intervenant dans le<br />

système augmenté associé au procédé de Schwarz ; pour un tel système on considère la décomposition la plus<br />

fine, c’est à dire la décomposition par points. Ainsi dans le cas linéaire si la matrice de discrétisation du problème<br />

est une M-matrice, nous nous retrouvons dans le cadre du paragraphe 2.3.<br />

Dans un premier temps nous vérifions que l’application de la méthode alternée de Schwarz à un problème<br />

linéaire constitué à l’aide d’une M-matrice conduit à un système augmenté linéaire constitué également à l’aide<br />

d’une M-matrice [13].<br />

Proposition 1.14. Soit une A une H-matrice et A la matrice déduite de A par procédé de Schwarz. A est<br />

une H-matrice.<br />

Dmonstration. Nous considérons une discrétisation du domaine Ω en n lignes et m colonnes.<br />

La matrice de discrétisation A obtenue par le schéma classique de discrétisation à cinq points et par exemple<br />

un balayage des points colonne par colonne est une matrice diagonale par blocs, chaque bloc étant de type<br />

n × n :<br />

⎛<br />

⎜<br />

A = ⎜<br />

⎝<br />

A1 B1 0 . . . . . . . . . . . . . . . 0<br />

C2<br />

.<br />

A2<br />

. ..<br />

B2<br />

. ..<br />

0<br />

. ..<br />

. . .<br />

. ..<br />

. . .<br />

. ..<br />

. . .<br />

. ..<br />

. . .<br />

. ..<br />

0<br />

.<br />

0 . . . Cj−1 Aj−1 Bj−1 0 . . . . . . 0<br />

0 . . . 0 Cj Aj Bj 0 . . . 0<br />

0<br />

.<br />

. . .<br />

. ..<br />

. . .<br />

. ..<br />

0<br />

. ..<br />

Cj+1<br />

. ..<br />

Aj+1<br />

. ..<br />

Bj+1<br />

. ..<br />

. . .<br />

. ..<br />

0<br />

.<br />

0 . . . . . . . . . . . . 0 Cm−1 Am−1 Bm−1<br />

0 . . . . . . . . . . . . . . . 0 Cm Am<br />

1.16<br />

⎞<br />

⎟<br />


La matrice A peut s’écrire sous la forme<br />

⎛<br />

A1<br />

⎜ 0<br />

⎜ .<br />

⎜<br />

A = ⎜ 0<br />

⎜ .<br />

⎜<br />

⎝ 0<br />

0<br />

A2<br />

<br />

. ..<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

0<br />

. ..<br />

0<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

Ai<br />

<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

0<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

. ..<br />

AN−1<br />

<br />

0<br />

0<br />

.<br />

0<br />

.<br />

0<br />

⎞<br />

⎟<br />

⎠<br />

0 . . . . . . . . . . . . 0 AN<br />

<br />

avec Ai matrice de discrétisation du problème 1.35 sur Ωi. Supposons que Ωi soit constitué des colonnes m1 à<br />

m2 de Ω ( c’est à dire que les colonnes m1 − 1 et m2 + 1 sont les frontières de Ωi). Alors pour i ∈ {2, . . . , N − 1}<br />

Ai s’écrit de la manière suivante :<br />

⎛<br />

I<br />

⎜ Cm1 ⎜<br />

.<br />

⎜ 0<br />

Ai<br />

⎜<br />

= ⎜ 0<br />

⎜ 0<br />

⎜ .<br />

⎜<br />

⎝ 0<br />

0<br />

Am1<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

0<br />

Bm1<br />

. ..<br />

Cj−1<br />

0<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

0<br />

. ..<br />

Aj−1<br />

Cj<br />

0<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

Bj−1<br />

Aj<br />

Cj+1<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

0<br />

Bj<br />

Aj+1<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

0<br />

Bj+1<br />

. ..<br />

Cm2<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

Am2<br />

0<br />

0<br />

.<br />

0<br />

0<br />

0<br />

.<br />

Bm2<br />

⎞<br />

⎟<br />

⎠<br />

0 . . . . . . . . . . . . . . . 0 0 I<br />

Dans le cas de la matrice A1 ( respectivement AN ) la présence du premier bloc I ( respectivement dernier bloc<br />

I ) dépend des conditions aux limites considérées.<br />

L’obtention de la matrice A à partir de la matrice A peut s’effectuer selon la suite d’étapes suivantes :<br />

i. dans un premier temps on duplique les lignes correspondant aux points du domaine de recouvrement<br />

(éléments frontières inclus) ; la matrice A (1) ainsi obtenue a pour matrice de comparaison une matrice<br />

M(A (1) ) qui est toujours une M-matrice ; A (1) est une H-matrice.<br />

ii. dans un second temps on met à zéro les éléments hors diagonaux des lignes correspondant aux points<br />

situés sur les frontières de recouvrement. La matrice résultante A (2) est toujours une H-matrice. En effet<br />

sa matrice de comparaison est obtenue à partir de M(A (1) ) en mettant à zéro les mêmes éléments hors<br />

diagonaux et reste une M-matrice en appliquant le théorème (3.12) de [32] ( page 85 ).<br />

iii. enfin on normalise ces mêmes lignes ce qui revient à mettre les éléments diagonaux à l’unité.<br />

Donc A est bien une H-matrice.<br />

Remarque 1.17. La démonstration est similaire lorsque l’on utilise une numérotation différente des colonnes.<br />

Proposition 1.15. Soit A une H-matrice et φ opérateur diagonal croissant ; on considère la résolution du<br />

problème :<br />

Λ(u) = 0<br />

1.17


avec Λ(u) = Au + φ(u) − b, b ∈ IR η .<br />

Soit A, φ, b et u les prolongements de A, φ, b et u par le procédé de Schwarz alors l’opérateur<br />

est un opérateur H-accrétif.<br />

Λ(u) = Au + φ(u) − b<br />

Dmonstration. Dans ce système la matrice A est une H-matrice et φ reste un opérateur diagonal croissant<br />

et nous pouvons appliquer les résultats de la proposition 1.10 et du corollaire 1.11.<br />

3.3 Exemples de problèmes d’utilisation de la méthode alternée de Schwarz et des algorithmes parallèles asynchrones<br />

et synchrones.<br />

Les exemples d’application sont nombreux. Nous en présentons quelques uns en commençant par le problème<br />

classique de Poisson :<br />

Exemple 1.1. Nous voulons résoudre le problème de Poisson avec conditions aux limites de Dirichlet homogènes<br />

que nous écrivons sous la forme :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Déterminer u tel que :<br />

−∆u = f dans Ω<br />

u /∂Ω = 0<br />

On discrétise le domaine Ω par un maillage comportant n lignes horizontales et m colonnes verticales.<br />

(1.37)<br />

Nous considérons tout d’abord une numérotation lexicographique des points du maillage et un balayage des<br />

points colonne par colonne. La matrice de discrétisation A de taille (m.n × m.n) obtenue après discrétisation<br />

classique par le schéma à cinq points a la forme suivante :<br />

⎛<br />

A<br />

⎜ −I<br />

⎜ .<br />

⎜<br />

.<br />

⎜ 0<br />

⎜<br />

A = ⎜ 0<br />

⎜ 0<br />

⎜ .<br />

⎜<br />

⎝ 0<br />

−I<br />

A<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

0<br />

−I<br />

. ..<br />

−I<br />

0<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

0<br />

. ..<br />

A<br />

−I<br />

0<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

−I<br />

A<br />

−I<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

0<br />

−I<br />

A<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

0<br />

−I<br />

. ..<br />

−I<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

A<br />

0<br />

0<br />

.<br />

0<br />

0<br />

0<br />

.<br />

−I<br />

⎞<br />

⎟<br />

⎠<br />

0 . . . . . . . . . . . . . . . 0 −I A<br />

1.18


où A est une sous-matrice bloc tri-diagonale de taille n × n.<br />

⎛<br />

4<br />

⎜ −1<br />

⎜<br />

.<br />

⎜ 0<br />

⎜<br />

A = ⎜ 0<br />

⎜ 0<br />

⎜ .<br />

⎜<br />

⎝ 0<br />

−1<br />

4<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

0<br />

−1<br />

. ..<br />

−1<br />

0<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

0<br />

. ..<br />

4<br />

−1<br />

0<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

−1<br />

4<br />

−1<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

0<br />

−1<br />

4<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

0<br />

−1<br />

. ..<br />

−1<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

4<br />

⎞<br />

0<br />

⎟<br />

0 ⎟<br />

. ⎟<br />

0 ⎟<br />

0 ⎟<br />

0 ⎟<br />

. ⎟<br />

−1 ⎠<br />

0 . . . . . . . . . . . . . . . 0 −1 4<br />

Classiquement la matrice A est une M-matrice.<br />

Nous allons maintenant montrer qu’en utilisant la méthode alternée de Schwarz, nous sommes dans le cadre<br />

théorique présenté dans ce chapitre. En effet la décomposition du problème (1.37) par la méthode alternée de<br />

Schwarz aboutit à la résolution de N problèmes de la forme :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Déterminer ui tel que :<br />

−∆ui = fi dans Ωi<br />

ui /Γi = 0<br />

ui /γ 1 i<br />

ui /γ 2 i<br />

= ui−1 /γ 1 i<br />

= ui+1 /γ 2 i<br />

pour 2 ≤ i ≤ N<br />

pour 1 ≤ i ≤ N − 1<br />

On suppose que chaque domaine Ωi comporte mi lignes verticales et n lignes horizontales.<br />

(1.38)<br />

On considère maintenant la matrice de discrétisation A obtenue à partir de A par le procédé de Schwarz<br />

N<br />

N<br />

alterné. Cette matrice a une taille ( mi.n × mi.n) et a la forme suivante :<br />

i=1<br />

i=1<br />

⎛<br />

A1<br />

⎜ 0<br />

⎜ .<br />

⎜<br />

A = ⎜ 0<br />

⎜ .<br />

⎜<br />

⎝ 0<br />

0<br />

A2<br />

. ..<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

0<br />

. ..<br />

0<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

Ai<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

0<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

. ..<br />

AN−1<br />

0<br />

0<br />

.<br />

0<br />

.<br />

0<br />

⎞<br />

⎟<br />

⎠<br />

0 . . . . . . . . . . . . 0 AN<br />

1.19


avec pour i ∈ {2, . . . , N − 1} Ai matrice de discrétisation du problème i du système (1.38).<br />

⎛<br />

I<br />

⎜ −I<br />

⎜<br />

.<br />

⎜ 0<br />

⎜<br />

Ai = ⎜ 0<br />

⎜ 0<br />

⎜ .<br />

⎜<br />

⎝ 0<br />

0<br />

A<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

−I<br />

. ..<br />

−I<br />

0<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

0<br />

. ..<br />

A<br />

−I<br />

0<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

−I<br />

A<br />

−I<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

0<br />

−I<br />

A<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

0<br />

−I<br />

. ..<br />

−I<br />

. . .<br />

. . .<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

A<br />

0<br />

0<br />

.<br />

0<br />

0<br />

0<br />

.<br />

−I<br />

⎞<br />

⎟<br />

⎠<br />

0 . . . . . . . . . . . . . . . . . . 0 I<br />

Cette matrice est de taille ( mi.n × mi.n). La matrice A1 ( respectivement AN ) ne présente pas de bloc I pour<br />

la première colonne du maillage du sous-domaine Ω1 ( respectivement pour la dernière colonne du maillage du<br />

sous-domaine ΩN ) en raison des conditions de Dirichlet homogènes considérées ici.<br />

Compte tenu du résultat de la proposition 1.14, la matrice A est une M-matrice et par conséquent la matrice<br />

de Jacobi associée J est une matrice de contraction. La méthode alternée de Schwarz asynchrone appliquée à<br />

la résolution du problème (1.37) converge.<br />

Remarque 1.18. Nous obtenons les mêmes résultats si nous considérons une numérotation rouge-noir des<br />

colonnes du maillage.<br />

Exemple 1.2. soit le problème suivant sur le domaine Ω, carré ]0, 1[×]0, 1[ :<br />

⎧<br />

Déterminer u tel que :<br />

⎪⎨<br />

⎪⎩<br />

−∆u + a ∂u ∂u<br />

∂x + b ∂y = f dans Ω<br />

u |Γ = 0<br />

(1.39)<br />

On discrétise le Laplacien par une méthode classique de différences finies à cinq points et les dérivées premières<br />

par une méthode de différences finies centrées ; on obtient une matrice de discrétisation A qui est une matrice<br />

par blocs dont chaque bloc diagonal est tri-diagonal. Si on désigne par h le pas de discrétisation alors la matrice<br />

A est une M-matrice si (a, b) ∈ [− 2<br />

h<br />

, 2<br />

h<br />

] × [− 2<br />

h<br />

2 , h ], ce qui correspond au cas où la matrice est à diagonale<br />

dominante et à termes hors diagonaux négatifs ou nuls. Nous pouvons donc appliquer les résultats théoriques<br />

précédents d’où la convergence de la méthode alternée de Schwarz avec parallélisée de façon asynchrone.<br />

Exemple 1.3. Un problème de diffusion fortement non-linéaire.<br />

On considère le problème suivant : ⎧⎪ ⎨<br />

⎪⎩<br />

Déterminer u solution de<br />

−∆u + e au = f dans Ω<br />

u = 0 sur Γ<br />

(1.40)<br />

avec a ∈ IR + et f ∈ L 2 (Ω). En discrétisant le Laplacien par un schéma classique à cinq points et en prenant une<br />

numérotation lexicographique des points du maillage ou une numérotation rouge-noir par blocs, nous obtenons<br />

une matrice de discrétisation A qui est une M-matrice ( voir exemple 1.1 ). Comme a est un réel positif,<br />

l’opérateur Λ d (X) = diag(e axi ) est un opérateur diagonal croissant donc accrétif. Les résultats du paragraphe<br />

(2.1.3) sont applicables ainsi que ceux sur l’utilisation de la méthode alternée de Schwarz asynchrone.<br />

1.20


Exemple 1.4. Soit le problème :<br />

avec θ > 0.<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Déterminer u solution de<br />

−∆u + θu = f sur ]0, 1[×]0, 1[<br />

u = 0 sur Γ<br />

(1.41)<br />

On considère la résolution de ce problème en utilisant la méthode des éléments finis : le domaine Ω est découpé<br />

par des triangles rectangles isocèles de coté h.<br />

W<br />

P<br />

N<br />

O<br />

S<br />

h<br />

Figure 1.2 : Exemple de Triangulation de Ω.<br />

On obtient alors un schéma de discrétisation pour tout point O à l’intérieur de Ω :<br />

avec α = −1 + θh2<br />

12<br />

αX(N) + αX(E) + γX(P ) + βU(O) + γX(Q) + αX(W ) + αX(S) = h 2 f(O).<br />

θh2<br />

θh2<br />

, γ = 12 , β = 4 + 2 .<br />

La matrice de discrétisation est une H-matrice ; en effet sa matrice de comparaison est une matrice irréductible<br />

à diagonale dominante donc une M-matrice. Nous sommes dans le cadre de la H-accrétivité ; les algorithmes<br />

parallèles asynchrones et synchrones classiques s’appliquent à ce problème discrétisé par la méthode des éléments<br />

finis.<br />

Notons que contrairement aux autres exemples la matrice de discrétisation de ce problème n’est pas une<br />

M-matrice car il existe des termes hors diagonaux qui sont positifs ( γ > 0 ).<br />

1.21<br />

Q<br />

E


1.22


Rfrences du chapitre 1.<br />

1. O. Axelsson, Iterative solution methods, Cambridge University Press (1996).<br />

2. G.M. Baudet, Asynchronous iterative methods for multiprocessors, Journal of A.C.M., 25 (1978), pp. 226–<br />

244.<br />

3. P. Benilan, Équations d’évolution dans un espace de Banach quelconque et applications, Thèse de Doctorat<br />

ès Sciences, Orsay (1972).<br />

4. P. Benilan, Semi-groupes non-linéaires, Cours DEA, institut de Mathématiques de l’Université de Besançon<br />

(1975).<br />

5. S. Benjelloun, P. Spitéri and G. Authié, Parallel algorithms for solving the obstacle problem, Computational<br />

Mechanics Publ., Springer-Verlag, 2 (1989), pp. 275–281.<br />

6. D.P. Bertsekas and J. Tsitsiklis, Parallel and Distributed computation, Numerical Methods, Englewood cliffs :<br />

Prentice Hall, (1989).<br />

7. M. Charnay, Itérations chaotiques sur un produit d’espaces métriques, Thèse de 3 e cycle, Lyon (1975).<br />

8. D. Chazan and W. Miranker, Chaotic relaxation, Linear Algebra Appl., 2 (1969), pp. 199–222.<br />

9. P. Comte, Itérations chaotiques à retards. Étude de la convergence dans le cas d’un espace produit d’espaces<br />

vectoriellement normés, C.R.A.S. série A, 281 (1975), pp. 863–866.<br />

10. P. Comte, J.C. Miellou et P. Spitéri, La notion H-accrétivité, Applications, C.R.A.S. série A, 283 (1976),<br />

pp. 655–658.<br />

11. J.D.P. Donnelly, Periodic chaotic relaxation, Linear Algebra Appl., 4 (1971), pp. 117–128.<br />

12. M.N. El Tarazi, Some convergence results for asynchronous algorithms, Numerisch Mathematik, 39 (1982),<br />

pp. 325–340.<br />

13. D.J. Evans and W. Deren, An asynchronous parallel algorithm for solving a class of nonlinear simultaneous<br />

equation, Parallel Computing, 17 (1991), pp. 165–180.<br />

14. D. Feingold and R.S. Varga, Block diagonally dominant matrices and generalization of the Gershgorin circle<br />

theorem, PAC. J. of Math., 12 (1962), pp. 1241–1250.<br />

15. L. Giraud et P. Spitéri, Résolution parallèle de problèmes aux limites non-linéaires, M.2 A.N., 25 (1991),<br />

pp. 73-100.<br />

16. K.H. Hoffman and J. Zou, Parallel efficiency of domain decomposition methods, Parallel Computing, 19<br />

(1993), pp. 1375–1391.<br />

17. I. Kato, Demi-continuity, hemi-continuity and monotonicity, Bull. Amer. Math. Soc., 70 (1964), pp. 548–550.<br />

18. N.X. Luong, Sur la méthode de sur-relaxation dans le cas des problèmes avec contrainte et un résultat de<br />

convergence asymptotique, RAIRO, n o R–2, (1973), pp. 107–113.<br />

19. J.C. Miellou, Opérateurs para-monotones, Thèse de Doctorat ès Sciences, Grenoble (1970).<br />

20. J.C. Miellou, Méthode de Jacobi, Gauss-Seidel, sur-(sous-) relaxation par blocs appliquée à une classe de<br />

problèmes non-linéaires, C.R.A.S. série A, 273 (1971), pp. 1257–1260.<br />

21. J.C. Miellou, Sur une variante de la méthode de relaxation appliquée à des problèmes comportant un opérateur<br />

somme d’un opérateur différentiable et d’un opérateur monotone maximal diagonal, C.R.A.S. série A, 275<br />

(1972), pp. 1107–1110.<br />

22. J.C. Miellou, Algorithmes de relaxation chaotiques à retard, RAIRO R1, (1975), pp. 55–82.<br />

23. J.C. Miellou, A mixte relaxation algorithm applied to quasi variatonal inequations, Colloque IFIP optimisation,<br />

Nice, Math. Lect. Notes, Springer Verlag (1975).<br />

1.23


24. J.C. Miellou and P. Spitéri, Un critère de convergence pour des méthodes générales de point fixe, M.2 A.N.,<br />

(1985), pp. 170–201.<br />

25. J.M. Ortega and W.C. Rheinboldt, Iterative solution of nonlinear equations in several variables, New York :<br />

Academic Press, (1970).<br />

26. F. Robert, Étude et utilisation de normes vectorielles en analyse numérique linéaire, Thèse de Doctorat ès<br />

Sciences, Grenoble (1968).<br />

27. F. Robert, M. Charnay et F. Musy, Itérations chaotiques série-parallèle pour des équations non-linéaires de<br />

point fixe, Aplikace Mathematik, 20 (1975), pp. 1–38.<br />

28. F. Robert, Convergence locale d’itération chaotique non-linéaire, C.R.A.S. série A, 284 (1977), pp. 679–682.<br />

29. P. Spitéri, Simulation d’exécutions parallèles pour la résolution d’inéquations variationnelles stationnaires,<br />

Revue E.D.F., série C, n ◦ 1 (1983), pp. 149–159.<br />

30. P. Spitéri, Contribution à l’étude de grands systèmes non-linéaires, comportement d’algorithmes itératifs,<br />

stabilité de systèmes continus, Thèse de Doctorat ès Sciences, Besançon (1984).<br />

31. P. Spitéri, Parallel asynchronous algorithms for solving boundary value problems, In Parallel algorithms, Eds<br />

M. Cosnard et al., North Holland, (1986), pp. 73–84.<br />

32. R.S. Varga, Matrix iterative analysis, Prentice Hall (1962).<br />

1.24


Chapitre 2<br />

Algorithmes itératifs asynchrones avec<br />

communication flexible.<br />

Introduction.<br />

Les algorithmes itératifs asynchrones avec communication flexible étudiés dans ce chapitre s’appliquent aux<br />

mêmes types de problèmes que ceux évoqués dans le chapitre 1, c’est à dire des grands systèmes d’équations<br />

linéaires ou non-linéaires. Ces algorithmes modélisés par J.C. Miellou, D. El Baz et P. Spitéri ( [13], [16] ) se<br />

caractérisent par des retards différents, non plus globaux au niveau des blocs de composantes mais au niveau<br />

des composantes d’un même bloc. Cela se traduit par une prise en compte de relaxations incomplètes sur les<br />

composantes qui permet de considérer une flexibilité dans les communications entre les processeurs qui résolvent<br />

le problème.<br />

L’utilisation d’une classe particulière d’application, les Λ-sur-applications, permet de modéliser ces algorithmes.<br />

L’étude de la convergence repose, via le principe du maximum discret, sur des techniques d’ordre<br />

partiel et sur l’initialisation des algorithmes par une sur-solution. On montre que les algorithmes sont applicables<br />

aux problèmes dont l’opérateur s’écrit sous la forme Λ(X) = AX − f + φ(X), A étant une M-matrice et<br />

φ(X) un opérateur diagonal non décroissant.<br />

De plus les algorithmes itératifs asynchrones avec communication flexible sont applicables à la méthode<br />

alternée de Schwarz lorsque l’opérateur vérifie les hypothèses mentionnées précédemment.<br />

Signalons que de nombreux travaux d’analyse de la convergence d’algorithmes parallèles asynchrones ont<br />

été réalisés, via des techniques d’ordre partiel par J.C. Miellou [12], N.M. El Tarazi [5] et C. Jacquemart [9] ;<br />

toutefois ces travaux n’étaient pas relatifs à des algorithmes où les communications entre les processeurs avaient<br />

la flexibilité envisagée dans le présent chapitre.<br />

Le premier paragraphe de ce chapitre consiste en un rappel sur les notions de M-fonction et de coercivité pour<br />

l’ordre. Les notions de Λ-sur-applications et les algorithmes itératifs asynchrones avec communication flexible<br />

sont exposés dans le deuxième paragraphe. Enfin nous proposons l’application des critères théoriques précédents<br />

à l’étude d’équations aux dérivées partielles non linéaires et par ailleurs nous montrons que ces derniers critères<br />

sont encore vérifiés dans le cas de maillage éléments finis non structurés.<br />

2.1


1 Position du problème - rappels sur les notions de M-fonction et de coercivité pour l’ordre.<br />

Soit Λ une M-fonction surjective de IR n dans IR n ( voir [14] et [15] ) qui présente les propriétés de horsdiagonale<br />

décroissance et d’inverse monotonie.<br />

Remarque 2.1. Nous rappelons que<br />

- Λ est hors-diagonale décroissante si pour tout X ∈ IR dim(Λ) les fonctions :<br />

<br />

Λℓi : {t ∈ IR|X + tei ∈ IR dim(Λ) } −→ IR,<br />

Λℓi(t) = Λℓ(X + tei), ℓ = i, (ℓ, i) ∈ {1, 2, . . . , dim(Λ)} 2<br />

sont monotones décroissantes où ei ∈ IR dim(Λ) , i ∈ {1, 2, . . . , dim(Λ)} sont les vecteurs de la base canonique.<br />

- Λ est inverse monotone implique que si Λ(X) ≤ Λ(X ′ ), pour tout (X, X ′ ) ∈ IR dim(Λ) × IR dim(Λ) , alors<br />

X ≤ X ′ , où l’inégalité peut être comprise composante à composante.<br />

La surjectivité des M-fonctions peut être caractérisée grâce à la notion de coercivité pour l’ordre [15].<br />

Dfinition 2.1. L’application Λ : IR dim(Λ) → IR dim(Λ) est coercive pour l’ordre si pour toute suite {Xp } p∈IN<br />

avec Xp ∈ IR dim(Λ) , pour tout p telle que Xp ≤ Xp+1 (resp. Xp ≥ Xp+1 ), lim<br />

p→∞ Xp = +∞ (resp. −∞) implique<br />

que lim<br />

p→∞ Λ(Xp ) = +∞ (resp. −∞) où la notation lim<br />

p→∞ Xp = +∞ (resp. −∞) signifie que lim<br />

p→∞ xp i<br />

−∞) pour au moins un indice i.<br />

= +∞ (resp.<br />

Le lien entre la propriété de surjectivité d’une M-fonction et la propriété de coercivité pour l’ordre s’énonce<br />

alors ainsi :<br />

Proposition 2.1. Soit Λ : IR dim(Λ) → IR dim(Λ) , une M-fonction continue. Alors Λ est surjective si et<br />

seulement si Λ est coercive pour l’ordre.<br />

Soit à résoudre le système d’équations suivant :<br />

Sous les hypothèses précédentes, ce problème (2.1) a une unique solution X ∗ .<br />

Si on pose IR n = E et que l’on décompose E de la manière suivante E =<br />

Λ(X) = 0. (2.1)<br />

β<br />

Eℓ, avec Eℓ = IR nℓ et<br />

ℓ=1<br />

β<br />

nℓ = n.<br />

Chaque sous-espace Eℓ est muni de l’ordre partiel naturel ( i.e. composante par composante ) associé au cône<br />

Kℓ = IR nℓ<br />

+ des vecteurs de composantes non négatives de IR nℓ .<br />

Pour chaque élément X ∈ E, on considère la décomposition suivante compatible avec la décomposition de E :<br />

ainsi que la décomposition par blocs de Λ :<br />

X = {x1, . . . , xℓ, . . . , xβ}, xℓ ∈ Eℓ, pour ℓ ∈ {1, . . . , β}, (2.2)<br />

Λ(X) = {Λ1(X), . . . , Λℓ(X), . . . , Λβ(X)} ∈<br />

2.2<br />

ℓ=1<br />

β<br />

Eℓ. (2.3)<br />

ℓ=1


Pour tout ℓ ∈ {1, . . . , β} et W ∈ E, soit l’application suivante :<br />

xℓ −→ Λ W ℓ (xℓ) = Λℓ(w1, . . . , wℓ−1, xℓ, wℓ+1, . . . , wβ). (2.4)<br />

Comme Λ est une M-fonction continue, surjective, il découle du théorème 3.5 de [15] que pour tout ℓ ∈<br />

{1, . . . , β}, et pour tout W ∈ E, l’application xℓ −→ Λ W ℓ (xℓ) est une M-fonction de Eℓ dans Eℓ.<br />

De plus, pour tout ℓ ∈ {1, . . . , β} et pour tout W ∈ E, le système<br />

possède une unique solution x ∗ ℓ .<br />

Λ W ℓ (xℓ) = 0, (2.5)<br />

Ainsi on peut définir une application de point fixe F : E → E, associée avec le problème (2.1) telle que<br />

F (W ) = X ∗ = {x ∗ 1, . . . , x ∗ ℓ , . . . , x ∗ β} (2.6)<br />

L’application F est définie de manière unique. Une importante propriété de l’application F est qu’elle est<br />

monotone croissante sur E ( voir [12] ) ( i.e. que pour tout X, Y ∈ E tels que X ≤ Y, F (X) ≤ F (Y ) ).<br />

2 Λ-sur-applications et nouvelles méthodes asynchrones.<br />

2.1 Itérations asynchrones avec communication flexible.<br />

Pour résoudre l’équation (2.1), on considère comme au chapitre 1 des méthodes itératives générales de point<br />

fixe. Les concepts suivants permettent de définir les algorithmes itératifs asynchrones avec communication<br />

flexible.<br />

Le premier concept est la notion de Λ-sur-solution qui permettra de choisir une valeur initiale du vecteur itéré<br />

pour l’algorithme.<br />

Dfinition 2.2. X ∈ IR n + est une Λ-sur-solution si Λ(X) ≥ 0.<br />

Un deuxième concept important est le concept de segments d’ordre défini comme suit :<br />

Dfinition 2.3. Soient (xℓ, yℓ) ∈ E 2 ℓ tels que xℓ ≤ yℓ, le segment d’ordre < xℓ, yℓ >ℓ est l’ensemble des zℓ ∈ Eℓ<br />

tels que xℓ ≤ zℓ ≤ yℓ. De même soient (X, Y ) ∈ E 2 tels que X ≤ Y alors < X, Y >= {Z ∈ E | X ≤ Z ≤ Y }.<br />

On introduit également la notion suivante pour la définition des algorithmes itératifs asynchrones avec communication<br />

flexible :<br />

Dfinition 2.4. Soit Λ une M-fonction. F Λ est une Λ-sur-application associée à F si pour tout ℓ ∈ {1, . . . , β}<br />

et X ∈ E tels que Λℓ(X) ≥ 0, il existe F Λ ℓ (X) ∈ Eℓ tel que F Λ ℓ (X) ≤ xℓ, Λ X ℓ (F Λ ℓ (X)) ≥ 0 et F Λ ℓ (X) = xℓ si<br />

Fℓ(X) = xℓ.<br />

Les notions de stratégie S = {s(p)} p∈IN , de retards R = {r(p)} p∈IN ainsi que les applications ρℓ définies<br />

au paragraphe 1.1 sont de nouveau nécessaires à la définition de ces algorithmes itératifs asynchrones avec<br />

communication flexible.<br />

2.3


Enfin l’application ρ : IN β → IN β de composantes ρℓ, ℓ ∈ {1, . . . , β} et les ensembles : K p<br />

ℓ = {k ∈ IN | s(k) =<br />

ℓ, 0 ≤ k ≤ p}, ℓ ∈ {1, . . . , β} et p ∈ IN complètent ces définitions et rappels.<br />

Remarque 2.2. L’ensemble K p<br />

ℓ<br />

du bloc-composant ℓ. {K p<br />

ℓ<br />

contient tous les numéros d’itérations inférieur à p qui concernent le calcul<br />

} est une suite dénombrable d’éléments finis de l’ensemble des parties de IN.<br />

À l’aide de tous ces rappels, les algorithmes itératifs asynchrones avec communication flexible s’énonce de la<br />

manière suivante ( voir [16] ) :<br />

où :<br />

et<br />

Dfinition 2.5.<br />

∀p ∈ IN, ∀ℓ ∈ {1, . . . , β}, x p+1<br />

ℓ<br />

=<br />

⎧<br />

⎨ x<br />

⎩<br />

p<br />

ℓ si ℓ ∈ s(p),<br />

F Λ ℓ ( Xp ) si ℓ ∈ s(p),<br />

(2.7)<br />

X 0 = X 0 est une Λ-sur-solution, (2.8)<br />

X p ∈< X p , min(X ρ(p) , X q ) > si p ≥ 1. (2.9)<br />

Xρ(p) est le vecteur de E de composantes x ρℓ(p)<br />

ℓ , ℓ ∈ {1, . . . , β} et q = Max p<br />

k∈K k.<br />

s(p)<br />

Remarque 2.3. En particulier si K p<br />

ℓ = ∅, alors X p ∈< X p , X ρ(p) >.<br />

Les algorithmes itératifs avec communication flexible définies récursivement par les équations (2.7) à (2.9)<br />

sont des méthodes itératives dans lesquelles les itérations sont effectuées en parallèle par au plus β processeurs<br />

sans ordre ni synchronisation. Ces algorithmes présentent plusieurs particularités.<br />

La première est de permettre une communication très flexible entre les processeurs. Lors d’une mise à jour d’un<br />

du vecteur d’itération est pris n’importe où dans le segment d’ordre < xpj<br />

, min(xρj(p) j<br />

bloc x p+1<br />

ℓ , le bloc ˜x p<br />

j<br />

où ˜x q<br />

j<br />

est la valeur utilisée lors de la précédente mise à jour de ce même bloc et xρj(p)<br />

j<br />

, ˜x q<br />

j ) >j,<br />

modélise le comportement<br />

non déterministe du schéma itératif. Ainsi les valeurs des composantes du vecteur d’itération qui interviennent<br />

dans une mise à jour, peuvent provenir de mise à jour en cours de réalisation. Autrement dit un processeur peut<br />

communiquer la valeur courante des composantes en cours de relaxation à tout moment et tous les processeurs<br />

utilisent pour leurs calculs les valeurs les plus récentes du vecteur d’itération. Contrairement aux algorithmes<br />

asynchrones classiques ( voir [2], [3], [4] et [11] ) exposés au chapitre 1, les retards ne se font plus au niveau des<br />

blocs de composantes mais au niveau des composantes d’un même bloc.<br />

La seconde particularité de ce type de méthode est l’utilisation des Λ-sur-applications F Λ , qui permettent de<br />

considérer des relaxations approchées de la solution.<br />

Remarque 2.4. La formulation classique des algorithmes asynchrones ( voir [2], [3], [4] et [11] ) est un cas<br />

particulier des algorithmes définis par 2.5 ; il suffit de séquentialiser le début des calculs des composantes x p<br />

ℓ<br />

pour ℓ ∈ s(p), puisque les mises à jour des composantes des différents blocs sont effectuées indépendemment.<br />

Les retards doivent être modifiés en conséquence. Pour de plus amples détails, nous renvoyons à [13].<br />

2.4


On peut alors établir le résultat de convergence suivant ( voir [13] ) :<br />

Proposition 2.2. Soit Λ une M-fonction continue surjective, F l’application de point fixe associée à Λ<br />

définie par (2.5) et (2.6), F Λ la Λ-sur-application associée à F , X 0 ∈ E une Λ-sur-solution, S une stratégie et<br />

R une séquence de retards. Alors, l’algorithme itératif asynchrone {X p } décrit de (2.7) à (2.9) est bien défini<br />

et présente la propriété suivante :<br />

où ¯ X est une Λ-sur-solution du problème (2.1) et (2.10) signifie :<br />

X p ↓ ¯ X lorsque p → ∞, (2.10)<br />

¯X ≤ . . . ≤ X p+1 ≤ X p ≤ . . . ≤ X 0 et lim<br />

p→∞ Xp = ¯ X.<br />

Remarque 2.5. Les figures 2.1 et 2.2 illustrent le comportement des algorithmes asynchrones et montrent<br />

un exemple d’échange des informations entre les processeurs pour les algorithmes asynchrones classiques (2.1)<br />

et les algorithmes asynchrones avec communication flexible (2.2) ; pour ces derniers, on peut prendre comme<br />

données d’itération n’importe quelle valeur dans le segment d’ordre, représenté schématiquement ici par des<br />

traits verticaux.<br />

t+1<br />

u<br />

i<br />

q+1<br />

u<br />

j<br />

Bloc i<br />

Bloc j<br />

u<br />

i<br />

t<br />

q<br />

u<br />

j<br />

p+1<br />

u<br />

k<br />

Donnée prise en compte<br />

au début de l’itération + t1<br />

Bloc k<br />

p<br />

u<br />

k<br />

Donnée envoyée<br />

à la fin de l’itération p<br />

Figure 2.1 : Exemple de comportement d’un algorithme asynchrone classique.<br />

2.5


Itéré partiel<br />

t+1<br />

u<br />

i<br />

Suite décroissante monotone (Bloc j)<br />

q+1<br />

u<br />

j<br />

Itéré partiel<br />

u<br />

i<br />

t<br />

Suite décroissante monotone (Bloc i)<br />

p+1<br />

u<br />

k<br />

q<br />

u<br />

j<br />

Ordre partiel<br />

Itéré partiel<br />

Itéré partiel<br />

Itéré partiel<br />

p+1<br />

u<br />

k<br />

<<br />

Itéré partiel<br />

p<br />

u<br />

k<br />

u<br />

k<br />

p<br />

p+1<br />

u<br />

k<br />

Valeurs courantes des composantes du k−ième bloc du vecteur d’itération<br />

correspondant aux mises à jour intermédiaires dans les segments d’ordre.<br />

p<br />

u<br />

k<br />

Suite décroissante monotone (Bloc k)<br />

Figure 2.2 : Exemple de comportement d’un algorithme asynchrone avec communication flexible.<br />

2.6


2.2 Une classe particulière de Λ-sur-applications.<br />

Afin d’obtenir un algorithme itératif asynchrone avec communication flexible qui permet de trouver la solution<br />

X ∗ du problème (2.1), il est nécessaire de considérer des Λ-sur-applications particulières ; ces applications définies<br />

par J.C. Miellou, D. El Baz et P. Spitéri [13] se caractérisent de la manière suivante :<br />

Dfinition 2.6. F Λ est une Λ-sur-application M-continue associée à F s’il existe une Λ-sur-application F Π<br />

associée à F telle que F Λ αF Π et<br />

X p ↓ X ∗ lorsque p → ∞, implique que F Π ℓ (X p ) ↓ F Π ℓ (X ∗ ) lorsque p → ∞, ∀ℓ ∈ {1, . . . , β}. (2.11)<br />

La relation d’ordre α entre les Λ-sur-applications qui intervient dans la définition des Λ-sur-applications<br />

M-continue est définie de la façon suivante :<br />

Dfinition 2.7. Deux Λ-sur-applications F Λ et F Π associées à F vérifient la relation F Λ αF Π si pour tout<br />

ℓ ∈ {1, . . . , β} et X ∈ E tels que Λℓ(X) ≥ 0 alors F Π ℓ (X) ∈< F Λ ℓ (X), xℓ >ℓ.<br />

Remarque 2.6. La relation (2.11) peut être interprétée comme une propriété de continuité pour l’ordre au<br />

point X ∗ de l’application F Π .<br />

A l’aide de cette notion de Λ-sur-applications M-continues associées à F , J.C. Miellou et all ont établi le<br />

résultat global de convergence pour les algorithmes itératifs asynchrones avec communication flexible ( voir<br />

[13] ) :<br />

Proposition 2.3. Sous les mêmes hypothèses que la proposition 2.2, soit F Λ une Λ-sur-application Mcontinue<br />

associée à F . Si la stratégie S vérifie :<br />

et que de plus :<br />

{p ∈ IN | ℓ ∈ s(p)} est infini, ∀ℓ ∈ {1, . . . , β}, (2.12)<br />

lim<br />

p→∞ ρℓ(p) = +∞, ∀ℓ ∈ {1, . . . , β}, (2.13)<br />

alors la suite {X p } définie par (2.7), (2.8), (2.9) vérifie X p ↓ X ∗ où X ∗ est l’unique solution du problème<br />

(2.1).<br />

2.3 Critères d’applications des algorithmes itératifs asynchrones avec communication flexible.<br />

L’obtention des Λ-sur-applications est un problème technique compliqué selon l’opérateur Λ considéré.<br />

J.C. Miellou et all ont montré que les algorithmes itératifs asynchrones avec communication flexible s’appliquent<br />

à un opérateur du type Λ(X) = AX −f +φ(X), A étant une M-matrice et φ(X) un opérateur diagonal<br />

non décroissant. On renvoie à [13] pour la détermination des Λ-sur-applications M-continues qui assurent la<br />

convergence des algorithmes.<br />

Remarque 2.7. Dans la cas linéaire, l’application F Λ associée au schéma de relaxation correspond exactement<br />

à l’application de point fixe F .<br />

2.7


2.4 Lien avec la méthode alternée de Schwarz.<br />

Dans le cadre des algorithmes parallèles asynchrones avec communication flexible, on peut également considérer<br />

la méthode alternée de Schwarz. On considère une M-fonction Λ obtenue par la somme d’une M-matrice A par<br />

un opérateur φ diagonal non décroissant. On étudie la résolution du système suivant d’équations non-linéaires :<br />

Λ(X) = 0,<br />

au moyen d’une méthode asynchrone de sous-domaines dérivée de la méthode alternée de Schwarz. Le procédé<br />

d’augmentation de la méthode alternée de Schwarz transforme la matrice A en une matrice A qui est elle aussi<br />

une M-matrice et l’application non-linéaire φ en une application diagonale croissante φ ( voir [8] et [16] ). Ainsi<br />

l’application non-linéaire résultante Λ est une M-fonction surjective ; le problème augmenté ainsi obtenu rentre<br />

dans le cadre de la théorie des algorithmes itératifs asynchrones avec communication flexible.<br />

3 Exemples d’applications des algorithmes itératifs asynchrones avec communication flexible.<br />

Signalons tout d’abord que la plupart des exemples d’application donnés au chapitre 1 rentrent dans le cadre<br />

théorique de ce chapitre. La résolution de ces problèmes peut être effectuée à l’aide des algorithmes itératifs<br />

asynchrones avec communication flexible. En fait les exemples présentés dans ces deux chapitres peuvent soit<br />

être résolus par les algorithmes parallèles asynchrones et synchrones du chapitre 1, soit par les algorithmes<br />

itératifs asynchrones avec communication flexible du présent chapitre.<br />

Exemple 2.1. Le problème du Laplacien :<br />

avec f ∈ L 2 (Ω).<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Déterminer u tel que<br />

−∆u = f dans Ω<br />

u = 0 sur Γ<br />

(2.14)<br />

La matrice de discrétisation A obtenue par un schéma classique de différences finies à cinq points et en prenant<br />

une numérotation lexicographique des points du maillage ou une numérotation rouge-noir par blocs, est une<br />

M-matrice ; les algorithmes itératifs asynchrones avec communication flexible couplés à la méthode alternée de<br />

Schwarz peuvent être utilisés pour résoudre le problème du Laplacien.<br />

Exemple 2.2. Le problème de diffusion non-linéaire suivant :<br />

⎧<br />

Déterminer u solution de<br />

⎪⎨<br />

−∆u + Log(β + δu) = f dans Ω<br />

⎪⎩<br />

u = 0 sur Γ<br />

où δ > 0, β est un coefficient convenablement choisi et f ∈ L 2 (Ω).<br />

L’opérateur discrétisé Λ associé a ce problème est de la forme :<br />

Λ(X) = AX + φ(X).<br />

2.8<br />

(2.15)


où A est la matrice de discrétisation du Laplacien qui classiquement est une M-matrice et où l’opérateur φ est<br />

un opérateur diagonal non décroissant. Ce problème non-linéaire rentre dans le cadre d’application précédent.<br />

Exemple 2.3. Le problème de l’obstacle :<br />

Soit K le cône convexe positif et f ∈ L 2 (Ω) ; soit Λ l’opérateur elliptique défini par :<br />

où ɛ, θ, γ, µ sont des constantes réelles et de plus µ est positive.<br />

Λu = −∆u − ɛ ∂2u ∂u ∂u<br />

+ θ + γ + µu (2.16)<br />

∂x∂y ∂x ∂y<br />

On considère l’inéquation variationnelle suivante :<br />

<br />

Déterminer u ∈ K tel que<br />

a(u, v − u) ≥< f, v − u >, ∀v ∈ K<br />

où a(., .) est la forme bilinéaire classique associée à l’opérateur Λ.<br />

Ce problème peut aussi être formulé comme suit :<br />

<br />

Déterminer u ∈ K tel que<br />

Λu − f + ∂ψK(u) ∋ 0<br />

où ∂ψK est le sous-différentiel de la fonction indicatrice ψK du convexe K.<br />

(2.17)<br />

(2.18)<br />

Pour des valeurs convenables des coefficients ɛ, θ, γ, µ, la discrétisation de l’opérateur Λ conduit à une matrice<br />

A qui est une M-matrice. De plus φ résultat de la discrétisation de l’opérateur ∂ψK est un opérateur diagonal<br />

non décroissant. Nous sommes bien dans le cadre théorique précédent.<br />

Exemple 2.4. Si nous considérons le problème suivant déjà évoqué dans l’exemple 1.4 du chapitre 1 :<br />

⎧<br />

⎪⎨<br />

Déterminer u solution de<br />

−∆u + θu = f sur ]0, 1[×]0, 1[<br />

(2.19)<br />

⎪⎩<br />

u = 0 sur Γ<br />

avec θ > 0, l’utilisation des éléments finis pour la discrétisation conduit à une matrice qui n’est pas une Mmatrice.<br />

En effet il existe des termes hors diagonaux positifs ( γ = θh2<br />

12 > 0).<br />

Ce problème discrétisé par la méthode des éléments finis n’entre pas dans le cadre théorique des M-fonctions.<br />

Par contre si on considère une discrétisation par différences finies classique à cinq points du Laplacien, la<br />

matrice de discrétisation A obtenue est une M-matrice et ce problème rentre dans le cadre des M-fonctions ;<br />

les algorithmes asynchrones avec communication flexible convergent.<br />

Exemple 2.5. Pour montrer que des problèmes discrétisés par la méthode des éléments finis rentrent dans le<br />

cadre des M-fonctions, nous considérons le problème aux limites 2D suivant :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Déterminer u solution de<br />

− ∂<br />

∂x<br />

∂u ∂ (p ∂x ) − ∂y<br />

u = γ sur Γ0,<br />

∂u<br />

∂n + σu = ξ sur Γ1,<br />

∂u (p ∂y ) + qu = g dans Ω,<br />

2.9<br />

(2.20)


sur le domaine polyédrique décrit par la figure 2.3 ( Γ = Γ0 Γ1 ). p, q, σ sont tels que p, q ∈ C( ¯ Ω), σ ∈ C(Γ1)<br />

et<br />

y<br />

0 < p0 ≤ p(x, y) ≤ p1 ∀x, y ∈ ¯ Ω,<br />

0 ≤ q(x, y) ≤ q1 ∀x, y ∈ ¯ Ω,<br />

0 < σ0 ≤ σ(x, y) ≤ σ1 ∀x, y ∈ Γ1.<br />

Γ<br />

1<br />

Ω<br />

Γ<br />

0<br />

Figure 2.3 : Domaine du problème (2.20).<br />

x<br />

(2.21)<br />

On considère une discrétisation du problème (2.20) par la méthode des éléments finis où Ω est décomposé en<br />

triangles. Soit K la matrice de rigidité globale et M le nombre total de points du maillage. Soit el un élément,<br />

T son nombre de nœuds et K (l) sa matrice de rigidité élémentaire.<br />

Proposition 2.4.<br />

(1) Si q(x, y) = 0 ∀(x, y) ∈ el alors<br />

(a) K (l) est semi-définie positive ;<br />

(b) T<br />

s=1 k(l)<br />

rs = 0, r = 1, 2, . . . , T .<br />

(2) Si q(x, y) ≤ 0 ∀(x, y) ∈ el et s’il existe (x0, y0) ∈ el tel que q(x0, y0) > 0 alors<br />

(a) K (l) est définie positive ;<br />

De plus si les fonctions de bases sont linéaires par morceaux ou bilinéaires par morceaux alors<br />

(b) T<br />

s=1 k(l)<br />

rs > 0, r = 1, 2, . . . , T .<br />

Dmonstration. voir [1], théorème 5.1 page 200.<br />

En ce qui concerne les termes hors diagonaux de K (l) quand q(x, y) = 0 ∀(x, y) ∈ el, on montre [1] qu’ils<br />

sont non positifs dans les cas suivants :<br />

(1) Les fonctions de bases sont linéaires par morceaux et θ ≤ π/2, où θ est un angle de el.<br />

2.10


(2) Les fonctions de bases sont bilinéaires par morceaux et<br />

p1/2p0 ≤ β ≤ 2p0/p1,<br />

où β traduit classiquement la condition d’angle dans la méthode des éléments finis.<br />

Si l’inégalité est stricte alors tous les termes hors diagonaux de K (l) sont négatifs.<br />

Si q(x, y) ≥ 0 dans el alors les coefficients hors diagonaux de K (l) sont négatifs si el est suffisamment petit et<br />

si l’une des conditions suivantes est vraie :<br />

(1) Les fonctions de bases sont linéaires par morceaux et<br />

(2) Les fonctions de bases sont bilinéaires par morceaux et<br />

θ ≤ θ0 < π/2. (2.22)<br />

p1/2p0 < β0 ≤ β ≤ β1 < 2p0/p1. (2.23)<br />

Considérons maintenant K la matrice de rigidité globale obtenue en sommant les matrices de rigidité élémentaires<br />

K (l) ; la matrice K vérifie les propriétés suivantes :<br />

Proposition 2.5.<br />

(1) Si q(x, y) = 0 ∀(x, y) ∈ ¯ Ω alors<br />

(a) K est semi-définie positive ;<br />

(b) M<br />

j=1 kij = 0, i = 1, 2, . . . , M.<br />

(2) Si q(x, y) ≤ 0 ∀(x, y) ∈ ¯ Ω et s’il existe (x0, y0) ∈ ¯ Ω tel que q(x0, y0) > 0 alors<br />

(a) K est définie positive ;<br />

De plus si les fonctions de bases sont linéaire par morceaux ou bilinéaires par morceaux alors<br />

(b) M<br />

j=1 kij ≥ 0, i = 1, 2, . . . , M, avec l’inégalité stricte pour certaines lignes.<br />

Dmonstration. voir [1], théorème 5.2 page 203.<br />

Les éléments diagonaux de la matrice K sont positifs et sous les conditions (2.22) ou (2.23), tous les termes<br />

hors diagonaux sont négatifs à condition que les éléments du maillage soient suffisamment petits.<br />

Avec ces conditions la matrice de rigidité du problème est une M-matrice et nous rentrons dans le cadre<br />

théorique des M-fonctions. Nous pouvons appliquer les algorithmes asynchrones avec communication flexible<br />

pour résoudre ce problème aux limites discrétisé par la méthode des éléments finis.<br />

2.11


2.12


Rfrences du chapitre 2.<br />

1. O.Axelsson and V.A. Barker, Finite element solution of boundary value problems, theory and computation,<br />

Academic Press, Inc (1984).<br />

2. G.M. Baudet, Asynchronous iterative methods for multiprocessors, Journal of A.C.M., 25 (1978), pp. 226–<br />

244.<br />

3. D.P. Bertsekas and J. Tsitsiklis, Parallel and Distributed computation, Numerical Methods, Englewood cliffs :<br />

Prentice Hall, (1989).<br />

4. D. Chazan and W. Miranker, Chaotic relaxation, Linear Algebra Appl., 2 (1969), pp. 199–222.<br />

5. M.N. El Tarazi, Contraction et ordre partiel pour l’étude d’algorithmes synchrones et asynchrones en analyse<br />

numérique, Thèse de doctorat d’ État, Université de Besançon (1981).<br />

6. M.N. El Tarazi, Some convergence results for asynchronous algorithms, Numerisch Mathematik, 39 (1982),<br />

pp. 325–340.<br />

7. N.M. El Tarazi, Algorithmes mixtes asynchrones. Etude de la convergence monotone, Num. Math., 44 (1984),<br />

pp. 363–369.<br />

8. D.J. Evans and W. Deren, An asynchronous parallel algorithm for solving a class of nonlinear simultaneous<br />

equations, Parallel Computing, 17 (1991), pp. 165–180.<br />

9. C. Jacquemard, Contribution à l’étude d’algorithmes de relaxation à convergence monotone, Thèse de 3 e<br />

cycle, Université de Besançon (1977).<br />

10. J.C. Miellou, Itérations chaotiques à retards, étude de la convergence dans le cas d’espaces partiellement<br />

ordonnés, C.R.A.S. Paris, 280 (1975) pp. 233–236.<br />

11. J.C. Miellou, Algorithmes de relaxation chaotiques à retard, RAIRO R1, (1975), pp. 55–82.<br />

12. J.C. Miellou, Asynchronous iterations in order intervals, Parallel Algorithms, M. Cosnard et al. ed, Amsterdam<br />

: North-Holland, (1986), pp. 85–96.<br />

13. J.C. Miellou, D. El Baz and P. Spitéri, A new class of asynchronous iterative algorithms with order interval,<br />

LCS report 1994-16, (1994) à paraitre dans Mathematics of Computation.<br />

14. J.M. Ortega and W.C. Rheinboldt, Iterative solution of nonlinear equations in several variables, New York :<br />

Academic Press, (1970).<br />

15. W.C. Rheinboldt, On M-functions and their application to nonlinear Gauss-Seidel iterations and to network<br />

flows, J. Math. Anal. and Appl., 32 (1970), pp. 274–307.<br />

16. P. Spitéri, J.C. Miellou and D. El Baz, Asynchronous Schwarz alternating method for the solution of nonlinear<br />

partial differential equations, LAAS 95309, IRIT 95-17-R, LCS 1995-10 (1995).<br />

2.13


2.14


Chapitre 3<br />

Implémentation des algorithmes<br />

parallèles synchrones et asynchrones.<br />

Introduction.<br />

Dans ce chapitre, nous nous intéressons à l’implantation effective des méthodes de relaxation synchrones et<br />

asynchrones pour résoudre des grands systèmes algébriques issus de la discrétisation d’équations aux dérivées<br />

partielles en relation avec la méthode de Schwarz. Précisons qu’au cours de ce chapitre nous aborderons aussi<br />

bien l’implantation des algorithmes parallèles asynchrones exposés au chapitre 1 tels que définis par D. Chazan,<br />

W. Miranker [6], J.C. Miellou [18] et G. Baudet [1], que les algorithmes asynchrones avec communication flexibles<br />

présentées au chapitre 2 et introduits par J.C. Miellou, D. El Baz, et P. Spitéri ( [12], [19], [23] ).<br />

Pour situer notre contribution, notons que ce type d’algorithmes a été implanté par bon nombre de chercheurs<br />

sous forme, soit de simulations d’exécutions parallèles, soit d’exécutions sur des machines multi-processeurs.<br />

Ainsi dès 1967 J.L. Rosenfeld [21] s’est intéressé à la simulation d’exécutions parallèles à propos de simulation<br />

de réseaux électriques ; en 1980 J. Julliand, G.R. Perrin et P. Spitéri ( [15], [16], [17] ) ont défini des schémas<br />

d’exécutions parallèles sur une machine séquentielle ; dans ce travail ils ont simulé des algorithmes parallèles<br />

synchrones ou asynchrones en considérant des architectures de machine soit à mémoire commune et bus unique,<br />

soit à réseau de communication et bancs de mémoire commune, soit à mémoire distribuée. En 1978, G. Baudet [1]<br />

a évalué et comparé la performance d’algorithmes numériques synchrones et asynchrones par points sur le<br />

multiprocesseur CMMP du Carnegie Mellon Institute.<br />

De 1989 à 1991 L. Giraud [13], L. Giraud et P. Spitéri [14] ont considéré l’exécution de ce type d’algorithmes<br />

pour la résolution numérique d’équations aux dérivées partielles par des méthodes de sous-domaines sans recouvrement<br />

sur des réseaux de transputers ainsi que sur des machines à mémoire partagée ( I.B.M.-3090, Alliant<br />

FX-80 ) ; ils ont aussi implanté sur ce type de machine une variante de la méthode alternée de Schwarz [13].<br />

D. El Baz a également considéré la résolution de problèmes d’optimisation d’écoulements sur une machine Tnode<br />

à mémoire distribuée [7]. Signalons aussi les travaux de J. Bernussou, F. Le Gall, and G. Authié [2] sur<br />

la résolution de problèmes de chaînes de Markov. D. El Baz a également effectué des essais sur une machine<br />

T-node pour la résolution de ce types de problèmes [8].<br />

3.1


Les algorithmes parallèles asynchrones avec communication flexible ont également été implantés sur machine<br />

à mémoire partagée par J.M. Perraudin [20], H. Songoro [22] et P. Spitéri, J.C. Miellou et D. El Baz [23] pour<br />

la résolution numérique d’équations aux dérivées partielles linéaires et non-linéaires par la méthode alternée de<br />

Schwarz ; ce même type de méthodes a également été mis en œuvre par D. El Baz, P. Spitéri, J.C. Miellou et<br />

D. Gazen [9] pour la résolution de problèmes d’optimisation d’écoulements.<br />

D’autres expérimentations d’algorithmes parallèles synchrones et asynchrones ont été effectués par A. Uresin et<br />

M. Dubois pour l’implantation d’algorithmes en vue de la résolution de problèmes combinatoires et d’imaginerie<br />

[24], D. Bertsekas pour résoudre des problèmes de programmation linéaire et des problèmes d’écoulements [3],<br />

[4] ; signalons aussi pour ce dernier type de problèmes les travaux de S. Zenios qui a travaillé sur diverses<br />

machines et divers types d’architectures [25], [26] ( CM–2, Alliant, réseaux de stations ).<br />

Actuellement, on assiste à un engouement pour l’utilisation de machines à mémoire distribuée. Les outils<br />

P.V.M. ( Parallel Virtual Machine ) et M.P.I. ( Message Passing Interface ) sont de plus en plus utilisés pour<br />

mettre en place le parallélisme sur ce type de machines. Dans le présent travail, notre principale contribution<br />

a consisté à utiliser ces standards pour mettre en œuvre ces algorithmes. Si les méthodes synchrones ne posent<br />

pas de problèmes particuliers d’implantation, les méthodes asynchrones amènent quelques problèmes tout en<br />

évitant la gestion de sections critiques. Plus particulièrement pour les communications asynchrones, nous devons<br />

nous efforcer d’une part d’implanter des communications inter-processeurs efficaces compte tenu du coût des<br />

communications ( temps de latence de 35 µs sur l’I.B.M.-SP2 ) et d’autre part de programmer des tests d’arrêt<br />

efficaces. Pour résoudre ces problèmes, nous proposons dans la suite de ce chapitre plusieurs solutions pour<br />

finalement arriver à un compromis efficace entre toutes ces contraintes.<br />

Le présent chapitre commence par une brève présentation de l’I.B.M.-SP2, machine sur laquelle les algorithmes<br />

ont été développés, des outils de parallélisation P.V.M. et M.P.I. Nous présentons ensuite la mise en œuvre des<br />

algorithmes synchrones et leur implantation avec P.V.M. et M.P.I. La résolution des problèmes de communication<br />

et de terminaison des algorithmes asynchrones par diverses méthodes, ainsi que l’implantation de ces derniers<br />

via P.V.M. et M.P.I. terminent ce chapitre.<br />

3.2


1 Description du multiprocesseur I.B.M.-SP2.<br />

Le multiprocesseur utilisé pour développer et tester les algorithmes synchrones et asynchrones est l’I.B.M.-<br />

SP2 du C.N.U.S.C. ( Centre National Universitaire Sud de Calcul ) situé à Montpellier. Ce multiprocesseur<br />

dispose désormais de 79 Processeurs Power2 de type 390, d’une puissance théorique totale de 20 Gflops. Les 79<br />

processeurs se répartissent en trois catégories :<br />

– 64 processeurs parallèles batch pour l’exploitation d’applications parallèles PVMe, EUI et MPI ;<br />

– 4 processeurs batch pour du calcul série ;<br />

– 5 processeurs batch et interactifs pour :<br />

– des petits batch série ;<br />

– le développement et le test d’applications parallèles.<br />

Chaque processeur du SP2 est fonctionnellement une station à part entière :<br />

– Processeur Power2 ;<br />

– Puissance théorique de 234 Mflops par nœud ;<br />

– Mémoire RAM de 256 Mo ;<br />

– Disques avec système AIX local et logiciels applicatifs.<br />

Ces processeurs sont reliés entre eux par un réseau switch d’interconnexion HPS :<br />

– de type Omega à étages,<br />

– de bande passante 80 Mo/s,<br />

– de latence 35 µs,<br />

utilisé en TCP/IP ou User Space pour les échanges de messages des applications parallèles et pour toutes les<br />

requêtes de type NFS.<br />

Cette configuration est la dernière configuration ; le développement des algorithmes synchrones et asynchrones<br />

a commencé sur un SP2 qui comportait 32 processeurs Power2 disposant de 128 Mo de mémoire chacun avec<br />

un réseau moins performant.<br />

2 Description des outils de parallélisation P.V.M. et M.P.I.<br />

2.1 Présentation de l’environnement Parallel Virtual Machine ( P.V.M. ).<br />

P.V.M. est un logiciel système du domaine public disponible sur netlib et développé par l’Oak Ridge National<br />

Laboratory, l’Université du Tennessee, l’Université Carnegie Mellon, le Pittsburgh Supercomputing Center et<br />

l’Emory University d’Atlanta. Cet environnement de programmation permet d’utiliser un réseau d’ordinateurs<br />

UNIX hétérogènes ( aussi bien séries que parallèles ) comme une unique ressource de calcul. Cette ressource<br />

est appelée machine virtuelle. Les nœuds de la machine virtuelle peuvent être reliés par différents réseaux<br />

( Ethernet, FDDI, ... ) :<br />

Un processus démon, activé sur chaque nœud coordonne le travail distribué sur la machine virtuelle. Un<br />

fichier contenant la liste des ordinateurs disponibles permet d’activer automatiquement les démons UNIX et<br />

de construire ainsi la machine virtuelle. L’application parallèle est alors vue comme un ensemble de processus<br />

parallèles. Ces processus parallèles sont exécutés sur les processeurs de la machine virtuelle qui communiquent<br />

et se synchronisent en utilisant le modèle de message passing. Les processus peuvent être organisés en groupes<br />

( un processus peut appartenir à plusieurs groupes et les groupes peuvent changer n’importe quand en cours de<br />

calcul ).<br />

3.3


Station de<br />

Travail<br />

Station de<br />

Travail<br />

Station de<br />

Travail<br />

FDDI<br />

(100Mbits/sec)<br />

Station de<br />

Travail<br />

ETHERNET ( 10 Mbits/sec )<br />

Mini<br />

Calculateur<br />

Figure 3.1 : Exemple de machine virtuelle.<br />

Station de<br />

Travail<br />

Super<br />

Calculateur<br />

Du point de vue de l’utilisateur, le paquetage P.V.M. est composé de deux parties :<br />

– un processus démon.<br />

Un démon, appelé pvmd3, réside sur chaque ordinateur de la machine virtuelle. Le démon peut être lancé de<br />

façon interactive ou automatique. Quand un utilisateur veut exécuter une application dans l’environnement<br />

P.V.M., il commence par lancer une procédure ( pvmd3 ) qui lance automatiquement un démon sur chaque<br />

nœud de la machine virtuelle ; cette liste de nœuds est contenu dans un fichier appelé host file. L’application<br />

peut alors être lancée de n’importe quel nœud.<br />

– un ensemble de procédures.<br />

La librairie PVM3 contient des procédures de communication et de synchronisation qui permettent à l’utilisateur<br />

d’implanter sur la machine virtuelle des programmes écrits en C ou en FORTRAN. En particulier,<br />

P.V.M. fournit des procédures pour créer et terminer des processus, pour communiquer entre les processus,<br />

pour synchroniser les processus, pour modifier la machine virtuelle et pour manipuler les groupes.<br />

2.2 Présentation de l’environnement Message Passing Interface ( M.P.I. ).<br />

La notion de message passing est une notion bien connue et utilisée largement sur les machines parallèles,<br />

spécialement les machines à mémoire distribuée. Depuis une dizaine d’années, des progrès ont été réalisés dans<br />

le développement du message passing et chaque constructeur a implémenté sa propre version. Le but de M.P.I.<br />

est de standardiser le message passing en définissant la syntaxe et la sémantique d’un ensemble de routines utile<br />

à de nombreux utilisateurs et efficacement implémentable sur une large variété d’ordinateurs.<br />

3.4


L’effort de standardisation de M.P.I. implique une quarantaine d’équipes de recherche en Europe et aux États-<br />

Unis, en particulier les principaux constructeurs d’ordinateurs, des chercheurs de laboratoires universitaires,<br />

gouvernementaux et industriels.<br />

Les principaux avantages d’établir un standard de message passing sont la portabilité et la facilité d’utilisation.<br />

Pour des environnements de communication avec mémoire distribuée dans lesquels les routines et/ou les concepts<br />

de plus haut niveau sont construits sur des instructions de message passing de plus bas niveau, les bénéfices<br />

de la standardisation sont particulièrement apparents. De plus, la définition d’un standard de message passing<br />

permet aux constructeurs, à partir d’un ensemble de routines de base bien défini, d’implémenter efficacement<br />

les procédures de message passing et même dans certains cas de fournir le support matériel adéquat.<br />

Actuellement la version 1.1 de M.P.I. est disponible depuis Juin 1995 et M.P.I. 2 est en préparation.<br />

3 Rôle général du Maître et des Esclaves.<br />

Pour mettre en œuvre les algorithmes parallèles synchrones et asynchrones, on a choisi de manière générale<br />

le modèle Maître-Esclaves. Chaque processeur a un rôle bien déterminé suivant qu’il est le Maître ou l’un des<br />

Esclaves. C’est ce rôle que nous allons décrire et préciser dans ce paragraphe.<br />

Les algorithmes développés sont des algorithmes de résolution par la méthode alternée de Schwarz. Chacun<br />

des processeurs se voit donc confier un ou plusieurs sous-domaines adjacents à résoudre. Dans le modèle choisi<br />

pour des raisons évidentes de moyens matériels utilisés, le processeur Maître reçoit lui aussi des sous-domaines<br />

à traiter, par exemple les premiers sous-domaines de la décomposition.<br />

Pour expliquer la mise en œuvre des algorithmes tant synchrones qu’asynchrones, nous définissons quelques<br />

termes et conventions.<br />

Nous appelons itération de Schwarz une résolution des sous-problèmes sur l’ensemble des sous-domaines.<br />

Une itération de Schwarz au niveau d’un processeur est une résolution des sous-problèmes sur les sous-domaines<br />

affectés à ce processeur.<br />

On note résolution de Schwarz une résolution d’un sous-problème. Classiquement une itération de Schwarz<br />

correspond à autant de résolutions de Schwarz qu’il y a de sous-domaines.<br />

Nous parlerons de processeurs voisins pour désigner les processeurs chargés de résoudre des sous-domaines<br />

adjacents. Ainsi chaque processeur a deux voisins, à l’exception du processeur chargé du premier sous-domaine<br />

Ω1 et du processeur chargé du dernier sous-domaine ΩN.<br />

Par convention nous nommerons indifféremment par Maître ou processeur Maître le processeur qui a le<br />

rôle de Maître ; de même pour l’Esclave ou processeur Esclave souvent employé au singulier pour parler de<br />

la classe des processeurs Esclaves.<br />

Mis à part la phase d’initialisation et de lancement des processeurs Esclaves ( voir initialisation pour P.V.M.<br />

et M.P.I. ainsi que les listings ), le travail spécifique du Maître est de gérer la terminaison de l’algorithme itératif.<br />

Nous verrons comment cette gestion est réalisée dans le cas synchrone et dans le cas asynchrone.<br />

Les processeurs doivent aussi se transmettre les valeurs de la solution sur les frontières de recouvrement. C’est<br />

surtout au niveau de la nature et de la fréquence de cet échange que se fera la différence entre les algorithmes<br />

synchrones et les algorithmes asynchrones.<br />

3.5


Les rôles respectifs du processeur Maître et d’un processeur Esclave peuvent se résumer dans les grandes<br />

lignes de la manière suivante :<br />

– Maître :<br />

– Lancer les autres processeurs ;<br />

– Effectuer les résolutions sur les sous-domaines qui lui sont affectés ;<br />

– Communiquer les valeurs de la solution sur les frontières de recouvrement ;<br />

– Gérer le contrôle de la convergence.<br />

– Esclave :<br />

– Effectuer les résolutions sur les sous-domaines qui lui sont affectés ;<br />

– Communiquer les valeurs de la solution sur les frontières de recouvrement et son test de convergence.<br />

4 Mise en œuvre des algorithmes synchrones<br />

L’implémentation des algorithmes synchrones s’est effectuée en suivant un procédé classique pour des algorithmes<br />

de résolution par décomposition de domaines. On passe par le Maître pour échanger les valeurs de<br />

la solution sur les frontières de recouvrement. C’est lui qui contrôle la convergence après chaque itération de<br />

Schwarz.<br />

4.1 Le Maître et l’Esclave synchrones.<br />

Au début de chaque itération de Schwarz, le Maître envoie aux Esclaves les valeurs de la solution sur les<br />

frontières de recouvrement. A la fin de l’itération, le Maître reçoit les indicateurs de convergence des Esclaves<br />

et la valeur de la solution sur les frontières de recouvrement. Il vérifie la convergence globale du problème :<br />

s’il n’y a pas convergence, une nouvelle itération de Schwarz est relancée sinon le Maître envoie un message de<br />

terminaison aux Esclaves.<br />

Par ailleurs le rôle du processeur Esclave peut se résumer ainsi : avant de commencer une nouvelle itération<br />

de Schwarz, l’Esclave est en attente des directives du Maître, et réceptionne soit les valeurs de la solution sur<br />

ses frontières de recouvrement, soit le message de terminaison.<br />

S’il reçoit les valeurs de la solution sur ses frontières de recouvrement, il effectue une résolution sur les sousdomaines<br />

qui lui sont affectés. A la fin de ces résolutions, il envoie au Maître le résultat de son test de convergence<br />

ainsi que les valeurs qu’il vient de calculer de la solution sur les frontières de recouvrement des sous-domaines<br />

voisins. Puis il se remet en attente.<br />

S’il reçoit le message de terminaison du Maître, il sort de la boucle d’itération de Schwarz.<br />

Le calcul se termine par un rapatriement vers le processeur Maître des solutions sur chaque sous-domaine<br />

pour obtenir la solution globale sur le domaine Ω.<br />

Nous pouvons présenter les algorithmes structurés du processeur Maître et d’un processeur Esclave sous la<br />

forme suivante :<br />

3.6


tant que non CONVERGENCE GLOBALE faire :<br />

◦ Envoi des valeurs de la solution sur les frontières de recouvrement aux Esclaves [ Envoi 1 ].<br />

◦ CALCUL<br />

◦ Réception bloquante des tests de convergence des Esclaves<br />

et des valeurs de la solution sur les frontières de recouvrement. [ Réception 3 ]<br />

◦ Test de CONVERGENCE GLOBALE :<br />

fait<br />

• Envoi du message de CONVERGENCE GLOBALE aux processeurs Esclaves [ Envoi 2 ].<br />

• Réception de la solution de chaque processeur Esclave [ Réception 4 ].<br />

fin<br />

Algorithme 3.1 : Algorithme Parallèle Synchrone : le processeur Maître.<br />

tant que non CONVERGENCE GLOBALE faire :<br />

◦ Réception bloquante des valeurs de la solution sur les frontières de recouvrement<br />

ou du message de CONVERGENCE GLOBALE. [ Réception 1 ou 2 ]<br />

◦ CALCUL<br />

◦ Envoi du test de convergence et des valeurs de la solution sur les frontières de recouvrement<br />

au processeur Maître [ Envoi 3 ].<br />

fait<br />

• Envoi au processeur Maître de la solution de chaque sous-domaine<br />

traité par le processeur [ Envoi 4 ].<br />

fin<br />

4.2 Algorithme synchrone et P.V.M.<br />

Algorithme 3.2 : Algorithme Parallèle Synchrone : le processeur Esclave.<br />

Les instructions de communication utilisées pour développer les algorithmes synchrones du Maître et de<br />

l’Esclave dans leur version P.V.M. sont les instructions classiques de communication bloquante. Un rappel des<br />

procédures P.V.M. utilisées est fait dans l’annexe A.<br />

Dans les algorithmes du paragraphe précédent apparaissent l’envoi et la réception de quatre messages contenant<br />

des données ou des informations :<br />

– Message 1 : Valeurs de la solution sur les frontières de recouvrement du Maître vers l’Esclave ( Données ).<br />

– Message 2 : Message d’arrêt du Maître vers l’Esclave ( Information ).<br />

– Message 3 : Test de convergence et valeurs de la solution sur les frontières de recouvrement de l’Esclave<br />

vers le Maître ( Données ).<br />

– Message 4 : Solution de chaque sous-domaine de l’Esclave vers le Maître ( Données ).<br />

Pour pouvoir décrire l’implantation de ces messages, il est nécessaire de définir certaines variables ainsi que<br />

leur type ; ces variables sont listées par ordre alphabétique et un rappel global des variables utilisées se trouve<br />

dans l’annexe C :<br />

– CD P et CF P : INTEGER ; tableaux de taille N P ; CD P( I P ) contient le numéro du premier sous-<br />

3.7


domaine confié au processeur I P et CF P( I P ) le numéro du dernier ;<br />

– DIFF : DOUBLE PRECISION ; tableau de taille NSDOM qui contient pour chaque sous-domaine la norme<br />

de la différence entre deux itérés de Schwarz ;<br />

– I P : INTEGER ; numéro du processeur courant ( variant de 1 à N P pour P.V.M. ; 1 étant par convention<br />

le numéro du Maître ) ;<br />

– INFO P : INTEGER ; variable qui contient des informations sur le déroulement d’une instruction P.V.M. ;<br />

– N P : INTEGER ; nombre de processeurs ;<br />

– NDCY : INTEGER ; nombre de points dans la direction de l’axe des ordonnées = nombre de points d’une<br />

frontière de recouvrement ;<br />

– NSD : INTEGER ; nombre maximal de points par sous-domaine ;<br />

– NSDOM : INTEGER ; nombre de sous-domaines ;<br />

– NUMMES P : INTEGER ; numéro du message ;<br />

– TIDS P : INTEGER ; tableau de taille N P qui contient les numéros d’identification TID des processeurs ;<br />

TIDS P( 1 ) est le numéro du Maître ;<br />

– VALFRONSD : DOUBLE PRECISION ; tableau qui contient les valeurs de la solution sur les frontières de<br />

recouvrement ;<br />

– WSOLSD : DOUBLE PRECISION ; tableau de taille NSDOM*NSD qui contient la solution sur chaque<br />

sous-domaine.<br />

L’envoi du premier message du Maître vers tous les Esclaves est implanté avec l’instruction PVMFMCAST.<br />

Cette instruction permet d’envoyer un même message à plusieurs processeurs. Le message a le numéro 1.<br />

L’instruction PVMFMCAST est précédée par l’initialisation et la construction du message ( instructions<br />

PVMFINITSEND et PVMFPACK ).<br />

NUMMES_P = 1<br />

CALL PVMFINITSEND(PVMRAW,INFO_P)<br />

CALL PVMFPACK(....)<br />

CALL PVMFMCAST(N_P-1,TIDS_P(2),NUMMES_P,INFO_P)<br />

L’instruction PVMFMCAST est de nouveau utilisée pour l’envoi du message d’arrêt du Maître. Le message<br />

a le numéro 2.<br />

NUMMES_P = 2<br />

CALL PVMFINITSEND(PVMRAW,INFO_P)<br />

CALL PVMFMCAST(N_P-1,TIDS_P(2),NUMMES_P,INFO_P)<br />

Au début de sa boucle d’itération, Le processeur Esclave attend soit le message 1 s’il n’y a pas convergence, soit<br />

le message d’arrêt 2. Nous utilisons l’instruction PVMFRECV suivie d’une instruction PVMFBUFINFO<br />

qui teste le numéro du message reçu. Si ce numéro est 2, l’Esclave sort de la boucle d’itération sinon le message<br />

contient les valeurs de la solution sur les frontières de recouvrement et on les récupère par l’instruction<br />

PVMFUNPACK.<br />

CALL PVMFRECV(-1,-1,BUFID_P)<br />

CALL PVMFBUFINFO(BUFID_P,BYTES_P,MSGTAG_P,TID_P1,INFO_P)<br />

3.8


IF(MSGTAG_P.EQ.2) GOTO ’fin de l’itération de Schwarz’<br />

CALL PVMFUNPACK(...)<br />

L’envoi des tests de convergence et des valeurs de la solution sur les frontières de recouvrement de l’Esclave<br />

vers le Maître est implanté par l’instruction PVMFSEND.<br />

NUMMES_P = 3<br />

CALL PVMFINITSEND(PVMRAW,INFO_P)<br />

CALL PVMFPACK(...)<br />

CALL PVMFSEND(TIDS_P(1),NUMMES_P,INFO_P)<br />

De son côté le Maître reçoit ce message en faisant une boucle sur l’ensemble des processeurs Esclaves.<br />

NUMMES_P = 3<br />

DO J_P=2,N_P<br />

CALL PVMFRECV(TIDS_P(J_P),NUMMES_P,INFO_P)<br />

CALL PVMFUNPACK(...)<br />

ENDDO<br />

L’envoi du message final qui contient les solutions sur les sous-domaines est effectué de la même façon.<br />

4.3 Algorithme synchrone et M.P.I.<br />

Les variables de parallélisation utilisées pour M.P.I. diffèrent quelque peu de celles de P.V.M. ; une des principales<br />

différences est qu’avec M.P.I. les numéros T P des processeurs varient de 0 à N P-1, 0 étant le numéro<br />

du Maître appelé aussi root.<br />

Pour aider à la compréhension des techniques mises en œuvre, l’annexe B contient les routines M.P.I. utilisées<br />

ainsi que leurs paramètres d’appel.<br />

Pour développer l’algorithme synchrone avec M.P.I., nous aurions pu garder le même type de démarche qu’avec<br />

P.V.M. et reprendre les instructions correspondantes d’envoi et de réception de message. Nous avons préféré<br />

changer un peu l’approche en raisonnant sur un modèle plus SPMD que Maître-Esclaves et en utilisant les<br />

instructions de communication collective de M.P.I. :<br />

– le code du Maître et de l’Esclave est le même pour les calculs et les communications ;<br />

– tous les processeurs effectuent le test d’arrêt ;<br />

– la différence entre le rôle du Maître et le rôle de l’Esclave se situe au niveau du traitement de la solution<br />

( archivage, affichage )<br />

Cette démarche a été possible grâce à la routine MPI ALLGATHERV qui permet de faire une diffusion<br />

de données sur tous les processeurs ; ainsi l’envoi des tests de convergence des processeurs et des valeurs de la<br />

solution sur les frontières de recouvrement est remplacé par une diffusion ; tous les processeurs peuvent faire le<br />

test de convergence globale et le message d’arrêt du maître disparaît.<br />

Le seul inconvénient de cette routine est la création de nouveaux tableaux qui contiennent différentes tailles<br />

et différents pointeurs dans des tableaux de données.<br />

3.9


Exemple 3.1. Si nous voulons par exemple transmettre le tableau DIFF de taille NSDOM, il faut construire<br />

le tableau NSDOMPRO ( nombre de sous-domaines par processeurs : taille N P ) et le tableau POINTNSDOM<br />

( tableau de pointeurs : taille N P ) ; POINTNSDOM( T P ) est la place dans DIFF du début des données<br />

provenant du processeur T P.<br />

DIFF<br />

NSDOMPRO<br />

POINTNSDOM<br />

2<br />

0<br />

1 2 3 4<br />

2<br />

2<br />

Dans le cas de 8 sous-domaines répartis de façon régulière sur 4 processeurs, NSDOMPRO contient ( 2, 2,<br />

2, 2 ) et POINTNSDOM ( 0, 2, 4, 6 ).<br />

La diffusion des tests de convergence se fait de la manière suivante :<br />

2<br />

4<br />

CALL MPI_ALLGATHERV(DIFF(CD_P(T_P)),NSDOMPRO(T_P),MPI_DOUBLE_PRECISION,DIFF,NSDOMPRO,<br />

& POINTNSDOM,MPI_DOUBLE_PRECISION,MPI_COMM_WORLD,INFO_P)<br />

La construction de tels tableaux n’est pas compliquée à réaliser mais nécessite une attention particulière pour<br />

éviter d’avoir des décalages dans les données.<br />

L’envoi de la solution WSOLSD au processeur Maître est réalisé par l’instruction MPI GATHERV :<br />

CALL MPI_GATHERV(WSOLSD,LARGEURSD(T_P),MPI_DOUBLE_PRECISION,WSOLSD,LARGEURSD,<br />

& POINTLARGEUR,MPI_DOUBLE_PRECISION,0,MPI_COMM_WORLD,INFO_P)<br />

Les variables LARGEURSD et POINTLARGEUR jouent le même rôle que NSDOMPRO et POINTNSDOM<br />

de l’exemple précédent.<br />

4.4 Quelques enseignements liés à l’utilisation de P.V.M. et M.P.I. pour développer les algorithmes synchrones.<br />

L’implantation de des algorithmes synchrones utilise les instructions classiques de communication bloquante<br />

et se fait assez facilement ; il est cependant important de toujours bien vérifier le numéro des messages envoyés<br />

et le contenu de ces messages pour ne pas se retrouver dans des situations de blocages ou de données erronées ;<br />

il est préférable aussi de vérifier le type et la taille de ces données. On a quelquefois des surprises en envoyant<br />

des INTEGER et en recevant des DOUBLE PRECISION.<br />

Pour cela l’envoi et la réception de messages simples sont utiles ; chaque processeur affiche ce qu’il envoie et<br />

ce qu’il reçoit et on vérifie la concordance des données.<br />

Ces enseignements restent bien sûr vrais pour le développement des algorithmes asynchrones.<br />

3.10<br />

2<br />

6


5 Mise en œuvre des algorithmes asynchrones<br />

Les algorithmes asynchrones diffèrent des algorithmes synchrones par l’absence de synchronisation au cours du<br />

calcul et par le fait que, moyennant certaines variantes exposées aux chapitres 1 et 2, un processeur relance une<br />

itération en utilisant les valeurs les plus récentes de la solution sur les frontières de recouvrement ; ces valeurs<br />

ont été calculées soit par le processeur lui-même, soit par les autres processeurs. Dans l’implémentation de la<br />

méthode alternée de Schwarz avec communication asynchrone chaque processeur va donc itérer sur les sousdomaines<br />

qui lui sont affectés en utilisant les valeurs disponibles de la solution sur les frontières de recouvrement.<br />

Il ne se préoccupe pas de savoir si ces valeurs de la solution proviennent de calculs de processeurs en retard ou<br />

en avance sur lui.<br />

Ce sont les récupérations des valeurs disponibles de la solution sur les frontières de recouvrement qui constituent<br />

la première partie de ce paragraphe. La deuxième partie est consacrée à la gestion de l’arrêt des calculs<br />

lorsqu’il y a convergence. Cette gestion est toujours effectuée par le processeur Maître qui va recevoir<br />

régulièrement des informations des processeurs Esclaves relatives à leur état de convergence. L’utilisation de<br />

P.V.M. et M.P.I. pour développer ces algorithmes asynchrones termine ce paragraphe.<br />

5.1 Le Maître et l’Esclave asynchrones.<br />

Le développement des algorithmes asynchrones parallèles consiste principalement à utiliser des réceptions non<br />

bloquantes pour récupérer les différentes données. Ces données se composent naturellement des valeurs de la<br />

solution sur les frontières de recouvrement mais aussi des indicateurs de convergence des processeurs Esclaves.<br />

L’efficacité des algorithmes asynchrones va dépendre de la bonne utilisation de ces communications et en<br />

particulier de leur fréquence. Il faut les placer au bon endroit dans le calcul pour qu’elles ne soient pas trop<br />

pénalisantes en temps ; de plus dans ce type de méthode il est recommandé d’utiliser les données disponibles les<br />

plus récentes.<br />

Nous avons donc mis au point trois types d’algorithmes asynchrones qui utilisent les différentes boucles<br />

d’itération ou les différentes phases de calcul qui peuvent intervenir lors de la résolution :<br />

– la boucle d’itération de Schwarz ;<br />

– la boucle d’itération qui peut être présente dans l’algorithme de résolution sur un sous-domaine ( méthode<br />

de relaxation ... )<br />

– le traitement d’un bloc de composants du vecteur solution lors de de l’utilisation de méthodes directes pour<br />

la résolution sur un sous-domaine.<br />

Les algorithmes asynchrones implémentés sont :<br />

– un algorithme Basse Fréquence de Communication ( B.F.C. ) : un envoi des valeurs de la solution sur les<br />

frontières de recouvrement est effectué avant chaque résolution sur un sous-domaine et une réception non<br />

bloquante après chaque résolution.<br />

– un algorithme Moyenne Fréquence de Communication ( M.F.C. ) : un envoi des valeurs de la solution sur les<br />

frontières de recouvrement est toujours effectué avant chaque résolution sur un sous-domaine mais plusieurs<br />

réceptions non bloquantes ont lieu à l’intérieur de la résolution sur un sous-domaine.<br />

– un algorithme Haute Fréquence de Communication ( H.F.C. ) : plusieurs envois et plusieurs réceptions<br />

non bloquantes des valeurs de la solution sur les frontières de recouvrement se situent à l’intérieur de la<br />

résolution sur un sous-domaine.<br />

3.11


Les algorithmes généraux du Maître et de l’Esclave sont les suivants :<br />

tant que non CONVERGENCE GLOBALE faire :<br />

◦ CALCUL<br />

◦ Réception non bloquante des tests de convergence des Esclaves [ Réception 3 ].<br />

◦ Test de CONVERGENCE GLOBALE :<br />

fait<br />

• Envoi du message de CONVERGENCE GLOBALE aux processeurs Esclaves [ Envoi 2 ].<br />

• Réception de la solution calculée par chaque processeur Esclave [ Réception 4 ].<br />

fin<br />

Algorithme 3.3 : Algorithmes Parallèles Asynchrones : le processeur Maître.<br />

tant que non CONVERGENCE GLOBALE faire :<br />

◦ réception non bloquante du message de CONVERGENCE GLOBALE [ Réception 2 ].<br />

◦ CALCUL<br />

◦ Envoi du test de convergence au processeur Maître [ Envoi 3 ].<br />

fait<br />

• Envoi au processeur Maître de la solution calculée sur chaque sous-domaine<br />

traité par le processeur [ Envoi 4 ].<br />

fin<br />

Algorithme 3.4 : Algorithmes Parallèles Asynchrones : le processeur Esclave.<br />

Dans ces algorithmes n’apparaissent que les communications non bloquantes qui concernent le test d’arrêt<br />

( messages 2 et 3 ) et le message final 4 qui rapatrie les solutions des Esclaves vers le Maître. Les communications<br />

non bloquantes des valeurs de la solution sur les frontières de recouvrement sont faites lors de la routine<br />

CALCUL ; c’est cette routine qui est différente suivant que l’on utilise l’une ou l’autre des variantes asynchrones<br />

de l’algorithme. On expose ci-dessous la présentation de ces trois variantes de la routine CALCUL, développées<br />

dans le cadre de l’utilisation de la méthode de relaxation pour la résolution sur un sous-domaine.<br />

3.12


◦ pour chaque sous-domaine traité par le processeur faire<br />

• Réception non bloquante des valeurs de la solution<br />

sur les frontières de recouvrement [ Réception 1 ].<br />

• (* Résolution *)<br />

tant que non CONVERGENCE faire<br />

- Relaxation.<br />

fait.<br />

• Envoi des valeurs de la solution sur les frontières de recouvrement [ Envoi 1 ].<br />

fait<br />

Algorithme 3.5 : Algorithmes Parallèles Asynchrones : la routine CALCUL Basse Fréquence de Communication ( B.F.C. ).<br />

◦ pour chaque sous-domaine traité par le processeur faire<br />

• (* Résolution *)<br />

tant que non CONVERGENCE faire<br />

- Réception non bloquante des valeurs de la solution<br />

sur les frontières de recouvrement [ Réception 1 ].<br />

- Relaxation.<br />

fait.<br />

• Envoi des valeurs de la solution sur les frontières de recouvrement [ Envoi 1 ].<br />

fait<br />

Algorithme 3.6 : Algorithmes Parallèles Asynchrones : la routine CALCUL Moyenne Fréquence de Communication<br />

( M.F.C. ).<br />

◦ pour chaque sous-domaine traité par le processeur faire<br />

• (* Résolution *)<br />

tant que non CONVERGENCE faire<br />

- Réception non bloquante des valeurs de la solution<br />

sur les frontières de recouvrement [ Réception 1 ].<br />

- Relaxation.<br />

- Envoi des valeurs de la solution sur les frontières de recouvrement [ Envoi 1 ].<br />

fait.<br />

fait<br />

Algorithme 3.7 : Algorithmes Parallèles Asynchrones : la routine CALCUL Haute Fréquence de Communication<br />

( H.F.C. ).<br />

3.13


Il faut noter que les versions des algorithmes parallèles asynchrones B.F.C. et M.F.C. sont les implémentations<br />

des algorithmes asynchrones décrits dans le chapitre 1 tandis que la version H.F.C. est celle qui se rapproche le<br />

plus des algorithmes itératifs asynchrones avec communication flexible du chapitre 2.<br />

Ces versions de la routine CALCUL montrent les différentes possibilités de remise à jour des itérés partiels<br />

dans le cadre de l’utilisation de la méthode de relaxation. La présence dans cet exemple des deux boucles<br />

d’itération permet de faire varier de manière simple les fréquences de communication.<br />

Dans le cas d’utilisation d’une méthode directe, cette souplesse d’utilisation due à l’asynchronisme peut<br />

se retrouver par exemple lorsqu’un processeur effectue une demande de communication lors de la phase de<br />

remontée ; dans ce contexte asynchrone, il y aura alors communication pour partie des valeurs de la solution<br />

qui viennent juste d’être calculées dans cette phase de remontée et, pour les autres composantes, des valeurs<br />

calculées à l’itération précédente.<br />

Nous verrons dans les chapitres suivants les différentes performances de ces méthodes sur des problèmes de<br />

convection-diffusion ou sur le problème de la cavité entraînée nécessitant la résolution du problème de Navier-<br />

Stokes.<br />

Remarque 3.1. Pour les algorithmes asynchrones, la communication des valeurs de la solution sur les<br />

frontières de recouvrement se fait entre processeurs voisins directement, sans passer par le Maître. Ainsi l’envoi<br />

du message 1 d’un processeur qui a deux voisins est en fait constitué par deux envois séparés des valeurs de<br />

la solution sur les frontières de recouvrement qui intéressent ces processeurs ; les valeurs de la solution sur la<br />

frontière de gauche pour le voisin de gauche, les valeurs de la solution sur la frontière de droite pour le voisin<br />

de droite ; il en est de même pour une réception non bloquante du message 1.<br />

Remarque 3.2. On peut obtenir d’autres fréquences de communication qui se situent entre la moyenne<br />

fréquence et la haute fréquence en reprenant l’algorithme asynchrone HFC et en effectuant l’envoi du message<br />

1 tous les I relaxations où I est un paramètre variable fixé par l’utilisateur. Cela permet de réduire le nombre<br />

d’envois qui sont pénalisants en temps ( 35 µs de latence pour une communication ) et qui peuvent être source<br />

de débordement de buffer comme nous le verrons par la suite.<br />

5.2 Test d’arrêt et Terminaison.<br />

La gestion de la terminaison du calcul s’avère plus compliquée pour les algorithmes asynchrones que pour les<br />

méthodes synchrones. Il n’y a en effet plus de synchronisation après chaque itération comme dans les algorithmes<br />

synchrones, cette synchronisation pouvant être couplée avec le test d’arrêt.<br />

Pour remédier à cette difficulté, chaque processeur dispose d’une variable TEST que le processeur met à zéro<br />

si l’itération de Schwarz sur ses sous-domaines a convergé et qu’il met à un sinon. Un processeur Esclave fera<br />

parvenir cette valeur au processeur Maître après chacune de ses itérations de Schwarz.<br />

En mémorisant ces tests de convergence dans un tableau et en effectuant la somme des éléments de ce tableau,<br />

le Maître peut, en comparant cette somme à zéro, savoir si l’algorithme a convergé ; il peut alors prévenir les<br />

Esclaves en leur envoyant son message d’arrêt.<br />

Ce système de test d’arrêt, simple et facile à écrire comme nous le verrons par la suite, est satisfaisant pour<br />

la résolution de la plupart des problèmes qui sont traités par les algorithmes parallèles ( problèmes de grande<br />

taille où le volume de calcul par processeur est important ).<br />

3.14


L’utilisation des algorithmes asynchrones pour résoudre des problèmes de petite taille entraîne des difficultés<br />

liées au test de convergence. Nous pouvons par exemple rencontrer la situation critique d’un processeur P qui<br />

n’a pas reçu de valeurs de la solution des frontières de recouvrement depuis longtemps. Ses conditions aux limites<br />

n’évoluant pas, il converge et prévient le Maître par le message m. Pendant que le Maître termine ses résolutions<br />

et teste la convergence globale, le processeur P reçoit de nouvelles conditions aux limites qui changent son état<br />

de convergence. Si le Maître a conclu à une convergence globale grâce entre autre au message m, le message<br />

d’arrêt du Maître stoppe les processeurs Esclaves et donc le calcul se termine trop tôt.<br />

Au cours du développement des algorithmes asynchrones, cette situation critique où le calcul est arrêté trop<br />

rapidement est apparu seulement lors de la résolution de problèmes de petite taille ou lorsqu’un seul sousdomaine<br />

est confié à un processeur. Par contre, lorsque des problèmes de grande taille sont considérés ou<br />

lorsque la répartition des sous-domaines par processeur est supérieure à deux, le test d’arrêt proposé permet<br />

d’obtenir des solutions aussi bonnes que les solutions obtenues à l’aide d’algorithmes séquentiels ou synchrones.<br />

Cependant on peut être amener à résoudre des problèmes de petite taille, ne serait-ce que pour mettre au point<br />

les algorithmes. Pour remédier au problème de la terminaison trop rapide rencontré lors la situation critique,<br />

nous avons imaginé deux méthodes de ”récupération” qui servent lors du développement :<br />

– la première solution appelée test à retardement consiste à retarder la mise à zéro de la variable TEST<br />

en changeant le critère de convergence d’un processeur : un processeur a convergé lorsque l’itération de<br />

Schwarz a convergé successivement un nombre N de fois ; il suffit pour mettre en place cette solution de<br />

donner comme valeur initiale N à la variable TEST et de soustraire 1 à chaque convergence.<br />

– la deuxième solution consiste à demander aux esclaves une confirmation de leur convergence et de relancer<br />

les itérations en cas de non convergence.<br />

Remarque 3.3. On passe facilement du test à retardement au test simple en initialisant la variable TEST<br />

à 1.<br />

Remarque 3.4. La seconde solution est lourde à mettre en œuvre et demande un nombre de communications<br />

important entre le Maître et les Esclaves. Ces communications qui diminuent le caractère asynchrone de<br />

l’algorithme sont très pénalisantes en temps ; il faut dans la mesure du possible éviter d’appliquer cette solution.<br />

Un exemple d’implémentation de la terminaison avec le test à retardement est donné au paragraphe 5.5.<br />

5.3 Algorithmes asynchrones et P.V.M.<br />

De façon générale une réception non bloquante est implémentée à l’aide de l’instruction PVMFNRECV qui<br />

vérifie si un message est arrivé. Les trois réceptions non bloquantes sont :<br />

– Message 1 : Valeurs de la solution sur les frontières de recouvrement provenant d’un processeur voisin<br />

( Données ).<br />

– Message 2 : Message d’arrêt du Maître vers l’Esclave ( Événement ).<br />

– Message 3 : Test de convergence de l’Esclave vers le Maître ( Données ).<br />

Nous avons par conséquent deux types de messages : message de données ou message événementiel. Il est<br />

clair que pour le message de données, nous voulons avoir les valeurs les plus récentes des données ; ceci est<br />

important pour rester dans le cadre théorique de la contraction développé dans le chapitre 1 et de l’ordre partiel<br />

étudié dans le chapitre 2. Par contre c’est l’événement ”arrivée du message d’information” qui nous intéresse.<br />

Le traitement de ces deux réceptions non bloquantes est donc légèrement différent.<br />

3.15


Pour les messages de données, nous pouvons être dans le cas où plusieurs messages contenant les mêmes<br />

données ont été envoyés et sont en attente de réception. Les données se trouvent dans une file de buffer et les<br />

données intéressantes se trouvent à la fin de cette file. Il faut donc rajouter un traitement au PVMFNRECV<br />

pour obtenir les données les plus récentes en vidant cette file de buffers.<br />

Ainsi les messages qui contiennent les variables relatives à l’état de convergence des Esclaves ( variable TEST )<br />

sont réceptionnés de la manière suivante :<br />

NUMMES_P = 3<br />

DO J_P=2,N_P<br />

10 CALL PVMFNRECV(TIDS_P(J_P),NUMMES_P,INFO_P)<br />

IF(INFO_P.GT.0) THEN<br />

CALL PVMFUNPACK(INTEGER4,TEST(J_P),1,1,INFO_P)<br />

GOTO 10<br />

ENDIF<br />

ENDDO<br />

Après l’exécution de ces instructions, les données les plus récentes des tests de convergence des processeurs<br />

se trouvent dans le tableau TEST. En utilisant la même technique, chaque processeur reçoit de manière non<br />

bloquante les valeurs les plus récentes de la solution sur les frontières de recouvrement de ses voisins.<br />

Cette technique n’est pas nécessaire pour le message 2 d’arrêt du Maître reçu par l’Esclave au moyen d’un<br />

PVMFNRECV simple et retourne au début de la boucle d’itération si ce message n’est pas arrivé.<br />

NUMMES_P = 2<br />

CALL PVMFNRECV(TIDS_P(1),NUMMES_P,INFO_P)<br />

IF(INFO_P.EQ.0) GOTO ’début de l’itération de Schwarz’<br />

Les envois des messages s’effectuent avec la routine PVMFPSEND ; ainsi le processeur émetteur n’attend<br />

pas la confirmation du destinataire de l’arrivée du message pour continuer les calculs.<br />

Le message 4 de rapatriement de la solution est le seul message synchrone et est réalisé de la même manière<br />

que dans les algorithmes synchrones.<br />

3.16


Exemple 3.2. la routine CALCUL de l’algorithme asynchrone Moyenne Fréquence de Communication s’écrit<br />

sous la forme suivante :<br />

SUBROUTINE CALCUL(...)<br />

include ’fpvm3.h’<br />

C Déclaration de variables<br />

.....<br />

10 CONTINUE<br />

C Réception non bloquante des valeurs de la solution sur les frontières<br />

C de recouvrement envoyées par le voisin de gauche I_P-1<br />

IF(CD_P(I_P).NE.1) THEN<br />

NUMMES_P=70+I_P-1<br />

20 CALL PVMFNRECV(TIDS_P(I_P-1),NUMMES_P,INFO_P)<br />

IF(INFO_P.GT.0) THEN<br />

CALL PVMFUNPACK(...)<br />

GOTO 20<br />

ENDIF<br />

ENDIF<br />

C Réception non bloquante des valeurs de la solution sur les frontières<br />

C de recouvrement envoyées par le voisin de droite I_P+1<br />

IF(CF_P(I_P).NE.NSDOM) THEN<br />

NUMMES_P=50+I_P+1<br />

30 CALL PVMFNRECV(TIDS_P(I_P+1),NUMMES_P,INFO_P)<br />

IF(INFO_P.GT.0) THEN<br />

CALL PVMFUNPACK(...)<br />

GOTO 30<br />

ENDIF<br />

ENDIF<br />

C Prise en compte des conditions limites sur chacun des sous-domaines<br />

C ( modification du second membre )<br />

....<br />

C Relaxation<br />

CALL RELAXATION(...)<br />

C Test d’arr^et - > DIFFRELAX<br />

IF(DIFFRELAX.GT.EPSIRELAX) GOTO 10<br />

C Envoi des valeurs de la solution sur les frontières de recouvrement<br />

C au voisin de gauche I_P-1<br />

IF(CD_P(I_P).NE.1) THEN<br />

3.17


NUMMES_P=50+I_P<br />

CALL PVMFPSEND(...)<br />

ENDIF<br />

C Envoi des valeurs de la solution sur les frontières de recouvrement<br />

C au voisin de droite IP+1<br />

IF(CF_P(I_P).NE.NSDOM) THEN<br />

NUMMES_P=70+I_P<br />

CALL PVMFPSEND(...)<br />

ENDIF<br />

RETURN<br />

END<br />

Dans cet exemple les messages envoyés d’un processeur vers son voisin de gauche ont un numéro qui est la<br />

somme de 50 et du numéro du processeur ; les messages envoyés d’un processeur vers son voisin de droite ont<br />

un numéro qui est la somme de 70 et du numéro du processeur. Ceci permet de gérer de façon plus ou moins<br />

dynamique les numéros des messages et de se retrouver dans les messages.<br />

5.4 Algorithmes asynchrones et M.P.I.<br />

L’utilisation de M.P.I. pour les algorithmes asynchrones s’avère délicate en ce qui concerne le choix des<br />

instructions de communication non bloquante. En effet M.P.I. propose différents modes de communication.<br />

Dans un premier temps, une adaptation des programmes P.V.M. a été réalisée en remplaçant les réceptions<br />

non bloquantes PVMFNRECV par des MPI IRECV. Cette solution s’est avérée inefficace car les messages<br />

étaient pris en compte longtemps après leur émission ; en particulier cet effet était pénalisant pour le message<br />

d’arrêt : les processeurs Esclaves effectuaient beaucoup trop de résolutions inutiles avant d’être arrêtés.<br />

Nous nous sommes orientés vers le mode de communication persistante ; ce mode était d’ailleurs mieux adapté<br />

à l’approche asynchrone, la communication persistante pouvant être assimilée à un port de communication ou<br />

”demi-canal”. Les communications persistantes se décomposent en deux parties : une phase d’initialisation et<br />

d’activation du ”canal” avant les résolutions et une phase de test et de relance au cours des calculs.<br />

Dans les programmes, l’envoi est mis en place par un MPI ISEND et la réception par une communication<br />

persistante. Les routines M.P.I. utilisées pour cette réception sont :<br />

– MPI RECV INIT et MPI START pour l’initialisation et l’activation.<br />

– MPI TEST et MPI START pour le test et la relance s’il y a eu réception.<br />

3.18


Si on considère, l’exemple des tests de convergence des Esclaves, ces derniers effectuent une émission de la<br />

manière suivante :<br />

NUMMES_P = 3<br />

DEST = 0<br />

CALL MPI_ISEND(TEST(T_P),1,MPI_INTEGER,DEST,NUMMES_P,<br />

& MPI_COMM_WORLD,REQ_P(J_P),INFO_P).<br />

Le Maître initialise la réception avec une boucle sur les processeurs Esclaves :<br />

DO J_P=1,N_P-1<br />

NUMMES_P = 3<br />

SOURCE = J_P<br />

CALL MPI_RECV_INIT(TEST(J_P),1,MPI_INTEGER,SOURCE,NUMMES_P,<br />

& MPI_COMM_WORLD,REQ_P(SOURCE),INFO_P)<br />

CALL MPI_START(REQ_P(J_P),INFO_P)<br />

ENDDO<br />

et il teste la réception et la relance en cas de test positif comme suit :<br />

DO J_P=1,N_P-1<br />

SOURCE = J_P<br />

CALL MPI_TEST(REQ_P(SOURCE),LOG_P,STATUS_REQ_P(1,SOURCE),INFO_P)<br />

IF(LOG_P) CALL MPI_START(REQ_P(SOURCE),INFO_P)<br />

ENDDO<br />

Dans cette séquence la variable REQ P contient le numéro de la requête ( voir annexes ).<br />

L’instruction de relance IF(LOG_P) CALL MPI_START(REQ_P(SOURCE),INFO_P) réactive la communication s’il<br />

y a eu réception. Elle est nécessaire pour le bon déroulement de l’algorithme ; son absence entraîne une unique<br />

réception des données et donc perturbe fortement le programme ( dans l’exemple des tests de convergence, le<br />

Maître ne recevra que les tests de la première itération ; il n’y aura jamais convergence ! ).<br />

Exemple 3.3. Dans l’algorithme asynchrone Moyenne Fréquence de Communication, les communications<br />

des valeurs de la solution sur les frontières de recouvrement sont réalisées comme suit :<br />

Pour la phase d’initialisation au début du programme :<br />

C Initialisation de la réception des valeurs de la solution des frontières<br />

C de recouvrement envoyées par le voisin de gauche T_P-1<br />

IF(CD_P(T_P).NE.1) THEN<br />

NUMMES_P = 10<br />

CALL MPI_RECV_INIT(VALFRONSD(1),2*NDCY,<br />

& MPI_DOUBLE_PRECISION,T_P-1,NUMMES_P,<br />

& MPI_COMM_WORLD,REQ_P(NUMMES_P+T_P-1),INFO_P)<br />

3.19


CALL MPI_START(REQ_P(NUMMES_P+T_P-1),INFO_P)<br />

ENDIF<br />

C Initialisation de la réception des valeurs de la solution des frontières<br />

C de recouvrement envoyées par le voisin de droite T_P+1<br />

IF(CF_P(T_P).NE.NSDOM) THEN<br />

NUMMES_P = 20<br />

CALL MPI_RECV_INIT(VALFRONSD((NSDOMPRO(T_P)+1)*2*NDCY+1),<br />

& 2*NDCY,MPI_DOUBLE_PRECISION,T_P+1,NUMMES_P,<br />

& MPI_COMM_WORLD,REQ_P(NUMMES_P+T_P+1),INFO_P)<br />

CALL MPI_START(REQ_P(NUMMES_P+T_P+1),INFO_P)<br />

ENDIF<br />

dans la routine CALCUL :<br />

SUBROUTINE CALCUL(...)<br />

include ’mpif.h’<br />

C Variables<br />

......<br />

10 CONTINUE<br />

C Test de réception des valeurs de la solution des frontières<br />

C de recouvrement<br />

IF(CD_P(T_P).NE.1) THEN<br />

NUMMES_P = 10<br />

CALL MPI_TEST(REQ_P(NUMMES_P+T_P-1),LOG_P,<br />

& STATUS_REQ_P(1,NUMMES_P+T_P-1),INFO_P)<br />

IF(LOG_P) CALL MPI_START(REQ_P(NUMMES_P+T_P-1),INFO_P)<br />

ENDIF<br />

IF(CF_P(T_P).NE.NSDOM) THEN<br />

NUMMES_P = 20<br />

CALL MPI_TEST(REQ_P(NUMMES_P+T_P+1),LOG_P,<br />

& STATUS_REQ_P(1,NUMMES_P+T_P+1),INFO_P)<br />

IF(LOG_P) CALL MPI_START(REQ_P(NUMMES_P+T_P+1),INFO_P)<br />

ENDIF<br />

C Prise en compte des conditions limites sur chacun des sous-domaines<br />

C ( modification du second membre )<br />

....<br />

3.20


C Relaxation<br />

CALL RELAXATION(...)<br />

C Test d’arr^et - > DIFFRELAX<br />

IF(DIFFRELAX.GT.EPSIRELAX) GOTO 10<br />

C Envoi des valeurs de la solution des frontières de recouvrement<br />

C au voisin de gauche T_P-1<br />

IF(CD_P(T_P).NE.1) THEN<br />

NUMMES_P = 20<br />

CALL MPI_ISEND(VALFRONSD(2*NDCY+1),2*NDCY,<br />

& MPI_DOUBLE_PRECISION,T_P-1,<br />

& NUMMES_P,MPI_COMM_WORLD,REQ_P(NUMMES_P+T_P),INFO_P)<br />

ENDIF<br />

C Envoi des valeurs de la solution des frontières de recouvrement<br />

C au voisin de droite T_P+1<br />

IF(CF_P(T_P).NE.NSDOM) THEN<br />

NUMMES_P = 10<br />

CALL MPI_ISEND(VALFRONSD(2*NDCY*NSDOMPRO(T_P)+1),<br />

& 2*NDCY,MPI_DOUBLE_PRECISION,T_P+1,<br />

& NUMMES_P,MPI_COMM_WORLD,REQ_P(NUMMES_P+T_P),INFO_P)<br />

ENDIF<br />

RETURN<br />

END<br />

Le rapatriement des solutions sur les sous-domaines est réalisée de la même manière que dans le cas synchrone<br />

en utilisant la routine MPI GATHERV.<br />

5.5 Exemple de gestion de la terminaison.<br />

Dans ce paragraphe, nous décrivons la mise en place du test d’arrêt pour les algorithmes asynchrones. Cette<br />

implantation est le même dans son principe pour P.V.M. ou M.P.I.<br />

Les variables utilisées sont :<br />

– CONV : INTEGER ; nombre de convergences successives de l’itération de Schwarz nécessaire pour qu’un<br />

processeur converge ; cette variable est initialisée à 1 si on veut utiliser le test simple.<br />

– DIFFSUP : DOUBLE PRECISION ; variable locale à un processeur contenant après chaque itération de<br />

Schwarz le max sur les sous-domaines du processeur de la norme de la différence entre deux itérés ;<br />

– EPSISC : DOUBLE PRECISION ; seuil de convergence de l’itération de Schwarz ;<br />

– SOMMETEST : INTEGER ; variable du processeur Maître qui contient le somme des éléments du tableau<br />

TEST ; si cette somme est égale à zéro, il y a convergence globale.<br />

– TEST : INTEGER ; tableau de taille N P qui contient l’état de convergence d’un processeur ; les éléments<br />

3.21


de ce tableau sont initialement égaux à CONV ;<br />

En utilisant P.V.M. la gestion de la terminaison s’écrit dans les algorithmes du Maître et de l’Esclave :<br />

tant que non CONVERGENCE GLOBALE faire :<br />

◦ CALCUL<br />

IF(DIFFSUP.LE.EPSISC) THEN<br />

IF(TEST(I P).NE.0) TEST(I P)=TEST(I P)-1<br />

ELSE<br />

TEST(I P)=CONV<br />

ENDIF<br />

◦ Réception non bloquante des tests de convergence des Esclaves [ Réception 3 ]<br />

NUMMES P = 3<br />

DO J P=2,N P<br />

10 CALL PVMFNRECV(TIDS P(J P), NUMMES P,INFO P)<br />

IF(INFO P.GT.0) THEN<br />

CALL PVMFUNPACK(INTEGER4, TEST(J P),1,1,INFO P)<br />

GOTO 10<br />

ENDIF<br />

ENDDO<br />

◦ Test de CONVERGENCE GLOBALE :<br />

SOMMETEST=0<br />

DO J P=1,N P<br />

SOMMETEST=SOMMETEST+TEST(J P)<br />

CONTINUE<br />

IF(SOMMETEST.EQ.0) THEN ”CONVERGENCE GLOBALE”<br />

fait<br />

• Envoi du message de CONVERGENCE GLOBALE aux processeurs Esclaves [ Envoi 2]<br />

• Réception de la solution de chaque processeur Esclave [ Réception 4 ]<br />

fin<br />

Algorithme 3.8 : Algorithmes Parallèles Asynchrones : le processeur Maître avec test d’arrêt.<br />

3.22


tant que non CONVERGENCE GLOBALE faire :<br />

◦ réception non bloquante du message de CONVERGENCE GLOBALE [ Réception 2 ]<br />

◦ CALCUL<br />

IF(DIFFSUP.LE.EPSISC) THEN<br />

IF(TEST(I P).NE.0) TEST(I P)=TEST(I P)-1<br />

ELSE<br />

TEST(I P)=CONV<br />

ENDIF<br />

◦ Envoi du test de convergence au processeur Maître [ Envoi 3 ]<br />

NUMMES P = 3<br />

CALL PVMFPSEND(TIDS P(1), NUMMES P, TEST(I P),1,INTEGER,INFO P)<br />

fait<br />

• Envoi au processeur Maître de la solution sur chaque sous-domaine<br />

traité par le processeur [ Envoi 4 ]<br />

fin<br />

Algorithme 3.9 : Algorithmes Parallèles Asynchrones : le processeur Esclave avec test d’arrêt.<br />

3.23


3.24


Rfrences du chapitre 3.<br />

1. G.M. Baudet, Asynchronous iterative methods for multiprocessors, Journal of A.C.M., 25 (1978), pp. 226–<br />

244.<br />

2. J. Bernussou, F. Le Gall and G. Authié, About some iterative synchronous and asynchronous methods for<br />

Markov chain distribution computation, Proceedings of the 10-th IFAC World Congress (1987).<br />

3. D.P. Bertsekas and D. El Baz, Distributed asynchronous relaxation methods for convex network flow problems,<br />

SIAM J. on Control and Optimization, 25 (1987), pp. 74–85.<br />

4. D. P. Bertsekas, D. Castañon, J. Eckstein and S. Zenios, Parallel computing in network optimization, Handbooks<br />

in Operation Research and Management Science, 7 (1995), pp. 331–399<br />

5. E. Chajakis and S.A. Zenios, Synchronous and asynchronous implementations of relaxation algorithms for<br />

nonlinear network optimization, Parallel Computing, 17 (1991), pp. 873–894.<br />

6. D. Chazan and W. Miranker, Chaotic relaxation, Linear Algebra Appl., 2 (1969), pp. 199–222.<br />

7. D. El Baz, Asynchronous implementation of relaxation and gradient algorithms for convex network flow<br />

problems, Parallel Computing, 19 (1993), 1019–1028.<br />

8. D. El Baz, Parallel iterative algorithms for the solution of Markov systems, 33 rd IEEE Conference on<br />

Decision and Control, Orlando, U.S.A (1994), pp. 2524–2527.<br />

9. D. El Baz, P. Spitéri, J.C. Miellou and D. Gazen, Asynchronous iterative algorithms with flexible communication<br />

for nonlinear network flow problems, Journal of Parallel and Distributed Computing, 38 (1996),<br />

pp. 1–15.<br />

10. D. El Baz, Asynchronous gradient algorithms for a class of convex separable network flow problems, Computational<br />

Optimization and Applications, 5 (1996), pp. 187–205.<br />

11. D. El Baz, D. Gazen, J.C. Miellou and P. Spitéri, Mise en œuvre de méthodes itératives asynchrones avec<br />

communication flexible, Calculateurs Parallèles, 8 n ◦ 4 (1996).<br />

12. D. El Baz, P. Spitéri and J.C. Miellou, Distributed asynchronous iterative methods with order intervals for<br />

a class of nonlinear optimization problems, to appear in Journal of Parallel and Distributed Computing.<br />

13. L. Giraud, Implantations parallèles de méthodes de sous-domaines synchrones et asynchrones pour la<br />

résolution de problèmes aux limites, Thèse de Doctorat de l’Institut National Polytechnique de Toulouse,<br />

(1991).<br />

14. L. Giraud and P. Spitéri, Implementations of parallel solutions for nonlinear boundary value problems,<br />

Parallel Computing’91 Advances in Parallel Computing, Evans, Joubert, Liddel ed., Amsterdam : North-<br />

Holland, (1992), pp. 203-211.<br />

15. J. Julliand, G.R. Perrin et P. Spitéri, Simulations d’exécutions parallèles d’algorithmes de relaxation asynchrone.,<br />

Rapport ERA CNRS de Mathématiques n ◦ 070 654, Université de Besançon, (1980).<br />

16. J. Julliand, G.R. Perrin et P. Spitéri, Simulations de types de communication appliqués à des algorithmes<br />

numériques, Rapport ERA CNRS Micro-système et Robotique n ◦ 070 906, Université de Besançon, (1981).<br />

17. J. Julliand, G.R. Perrin et P. Spitéri, Simulations d’exécutions parallèles d’algorithmes numériques asynchrones,<br />

1ère conférence AMSE, Lyon, 1981 et communication au colloque d’Analyse numérique d’Aussois,<br />

(1981).<br />

18. J.C. Miellou, Algorithmes de relaxation chaotiques à retard, RAIRO R1, (1975), pp. 55–82.<br />

19. J.C. Miellou, D. El Baz and P. Spitéri, A new class of asynchronous iterative algorithms with order interval,<br />

LCS report 1994-16, (1994).<br />

3.25


20. J.M. Perraudin, Résolution d’EDP non-linéaires par implantation parallèle d’une méthode de sous-domaines<br />

avec recouvrement, Rapport de stage de troisième année, E.N.S.E.E.I.H.T.-Informatique, (1993).<br />

21. J.L. Rosenfeld, A case study on programming for parallel processors, I.B.M., Thomas J. Watson, Research<br />

report, n ◦ RC-64, U.S.A. (1967).<br />

22. H. Songoro, Résolution numérique du recuit micro-onde 1D et 2D, Rapport de stage de troisième année,<br />

E.N.S.E.E.I.H.T.-Informatique, (1994).<br />

23. P. Spitéri, J.C. Miellou and D. El Baz, Asynchronous Schwarz alternating method for the solution of nonlinear<br />

partial differential equations, LAAS 95309, IRIT 95-17-R, LCS 1995-10 (1995).<br />

24. A. Uresin and M.Dubois, Parallel asynchronous algorithms for discrete data, Journal of the association for<br />

computing machinery, vol. 37, n ◦ 3 (1990), pp. 558–606.<br />

25. S. Zenios and R. Lasken, The Connection Machines CM-1 and CM-2 : solving nonlinear network problems,<br />

International Conference on Supercomputing, St Malo, France, (1988), pp. 648–658.<br />

26. S. Zenios and J. Mulvey, A distributed algorithm for convex network optimization problems, Parallel Computing,<br />

6 (1988), pp. 45–56.<br />

3.26


Chapitre 4<br />

Application des algorithmes<br />

asynchrones pour la résolution de<br />

problèmes de convection-diffusion<br />

linéaires et non-linéaires.<br />

Introduction.<br />

Les problèmes de convection-diffusion sont des problèmes qui apparaissent dans de nombreux domaines<br />

comme la mécanique des fluides, la finance ... La discrétisation des tels problèmes conduit à la résolution<br />

de grands systèmes d’équations. Dans ce contexte l’introduction d’algorithmes parallèles utilisant des méthodes<br />

de décomposition de domaines s’avère être très intéressante ( voir [1] ).<br />

La méthode alternée de Schwarz parallélisée avec les algorithmes synchrones et asynchrones décrits au chapitre<br />

1 ou avec les algorithmes itératifs asynchrones avec communication flexible exposés au chapitre 2 est tout à fait<br />

adaptée à la résolution d’un grand nombre de problèmes qui font intervenir l’équation de convection-diffusion.<br />

Dans le but d’illustrer l’approche théorique des chapitres 1 et 2, sont considérés le problème linéaire classique<br />

de convection-diffusion et différents problèmes non-linéaires aux limites qui dérivent du problème classique<br />

perturbé par un opérateur monotone non décroissant et diverses conditions aux limites. Des problèmes aux<br />

limites analogues ont été étudiés par différents chercheurs dans le cadre des algorithmes asynchrones classiques<br />

analysés au moyen des techniques de contraction ( voir [2], [3], [11], [14], [16] ).<br />

La discrétisation de tels problèmes en utilisant un schéma de discrétisation à cinq points pour le Laplacien<br />

et un schéma décentré adéquat pour la discrétisation des dérivées premières conduit à une matrice qui est une<br />

M-matrice. En perturbant cet opérateur par un opérateur monotone non décroissant, nous restons dans le cadre<br />

d’application des algorithmes asynchrones classiques ou à communication flexible.<br />

L’utilisation de schémas décentrés pour la résolution des problèmes de convection-diffusion réduit les phénomènes<br />

d’instabilité numérique en cas de forte convection. Ces schémas décentrés introduisent un autre aspect intéressant<br />

4.1


de cette étude ; les expérimentations numériques ont montré que si la méthode de résolution est une méthode<br />

de relaxation alors le nombre de relaxations était très différent suivant le sens de parcours des points de la grille<br />

au cours de la relaxation. En utilisant les techniques de discrétisation évoquées précédemment, il apparaît que<br />

la matrice de discrétisation obtenue est quasiment une matrice triangulaire. Ainsi une méthode de relaxation<br />

pour résoudre le système sur chaque sous-domaine et un parcours des points dans le bon sens, correspond à une<br />

méthode quasi-directe et converge en un faible nombre d’itérations.<br />

Le premier paragraphe de ce chapitre présente des exemples de problèmes où apparaît l’équation de convectiondiffusion<br />

et qui rentrent dans le cadre d’application des algorithmes asynchrones. Nous considérons deux classes<br />

de problèmes à résoudre selon la discrétisation du terme de convection par des schémas de discrétisation décentrés<br />

ou par des schémas de discrétisation centrés. Si les schémas de discrétisation sont des schémas décentrés, nous<br />

montrons que nous sommes dans le cadre d’application aussi bien des algorithmes asynchrones et synchrones<br />

classiques que dans celui des algorithmes asynchrones avec communication flexible. Par contre l’utilisation de<br />

schémas de discrétisation centrés, conduit à des problèmes où les hypothèses énoncées dans les chapitres 1 et<br />

2 pour l’application des algorithmes synchrones et asynchrones classiques et des algorithmes asynchrones avec<br />

communication flexible sont vérifiées sous certaines conditions que l’on précisera.<br />

Par la suite nous présentons différents résultats numériques de résolution d’un problème linéaire et d’un<br />

problème non-linéaire sur l’I.B.M. SP2, pour plusieurs maillages et différentes valeurs du coefficient de diffusion<br />

ν. Nous utilisons pour ces résolutions l’implantation à l’aide de P.V.M. et de M.P.I. des algorithmes synchrones ou<br />

asynchrones introduite au chapitre 3. La mise en place d’un algorithme séquentiel, d’un algorithme synchrone et<br />

des trois types d’algorithmes asynchrones permet de faire des comparaisons de performances entre ces différents<br />

algorithmes.<br />

Une synthèse des résultats ainsi qu’une comparaison entre les résultats obtenus avec P.V.M. et ceux obtenus<br />

avec M.P.I. terminent le présent chapitre.<br />

4.2


1 Cadre théorique pour le problème de convection-diffusion.<br />

Dans ce paragraphe, nous considérons des problèmes de convection-diffusion linéaires et non-linéaires pour lesquels<br />

nous exposons un cadre théorique général qui permet de montrer la convergence des algorithmes parallèles<br />

asynchrones classiques ou à communication flexible.<br />

Comme nous l’avons vu dans les chapitres 1 et 2, il suffira de montrer que l’opérateur Λ qui gouverne le<br />

problème s’écrit sous la forme<br />

Λ(X) = AX + φ(X)<br />

où A est la matrice de discrétisation du problème et est une M-matrice et φ est un opérateur monotone<br />

non décroissant ; ainsi la convergence des algorithmes parallèles asynchrones classiques et la convergence des<br />

algorithmes itératifs à communication flexible sont assurées.<br />

1.1 Cas de la discrétisation décentrée du terme de convection.<br />

1.1.1 Le problème linéaire de convection-diffusion.<br />

Considérons le problème linéaire classique de convection-diffusion :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Trouver u ∈ H 1 0(Ω) solution de<br />

−ν∆u + a ∂u ∂u<br />

∂x + b ∂y + cu = f, dans Ω<br />

u = 0 sur ∂Ω<br />

où c ≥ 0, ν > 0 et Ω ⊂ IR 2 , f est une fonction de L 2 (Ω).<br />

Dans le but de simplifier la présentation, un maillage uniforme de Ω est considéré ; le pas de discrétisation est<br />

noté h.<br />

Dans un premier temps, une numérotation lexicographique des points du maillage est considérée. La discrétisation<br />

des opérateurs apparaissant dans le problème (4.1) est effectuée selon les règles suivantes :<br />

- le Laplacien est discrétisé en utilisant le schéma classique de discrétisation à cinq points ;<br />

- les dérivées premières sont discrétisées selon un schéma décentré qui tient compte du signe des coefficients<br />

a et b. Les schémas sont les suivants ⎧ :<br />

⎨<br />

+ O(h), si a > 0,<br />

∂u<br />

∂x =<br />

∂u<br />

∂y =<br />

⎩<br />

⎧<br />

⎨<br />

⎩<br />

u(x,y)−u(x−h,y)<br />

h<br />

u(x+h,y)−u(x,y)<br />

h<br />

u(x,y)−u(x,y−h)<br />

h<br />

u(x,y+h)−u(x,y)<br />

h<br />

+ O(h), si a < 0.<br />

+ O(h), si b > 0,<br />

+ O(h), si b < 0.<br />

On obtient compte tenu de (4.2) pour l’équation de convection-diffusion les schémas de discrétisation :<br />

si a > 0 et b > 0 :<br />

−{ν+bh} u(x, y−h)−{ν+ah} u(x−h, y)+[4ν+{a+b}h+ch 2 ] u(x, y)−νu(x+h, y)−νu(x, y+h) = h 2 f(x, y)<br />

si a > 0 et b < 0 :<br />

−νu(x, y−h)−{ν+ah} u(x−h, y)+[4ν+{a−b}h+ch 2 ] u(x, y)−νu(x+h, y)−{ν−bh} u(x, y+h) = h 2 f(x, y)<br />

4.3<br />

(4.1)<br />

(4.2)


si a < 0 et b > 0 :<br />

−{ν+bh}u(x, y−h)−νu(x−h, y)+[4ν+{−a+b}h+ch 2 ]u(x, y)−{ν−ah}u(x+h, y)−νu(x, y+h) = h 2 f(x, y)<br />

si a < 0 et b < 0 :<br />

−νu(x, y−h)−νu(x−h, y)+[4ν−{a+b}h+ch 2 ] u(x, y)−{ν−ah} u(x+h, y)−{ν−bh} u(x, y+h) = h 2 f(x, y)<br />

Proposition 4.1. Soit A la matrice de discrétisation du problème (4.1). Si c est strictement positif alors A<br />

est une M-matrice.<br />

Dmonstration. Selon les schémas de discrétisation définis par (4.2), on vérifie par un simple calcul que les<br />

éléments hors diagonaux de la matrice A sont non positifs et que les éléments diagonaux de A sont positifs et<br />

ce quelque soit le signe de a et de b ; donc A est une Z-matrice. Comme c est strictement positif, A est une<br />

matrice à diagonale dominante stricte et donc une M-matrice.<br />

Remarque 4.1. dans le cas où c est égal à zéro, on vérifie par la même technique que A est une Z-matrice<br />

irréductible à diagonale dominante quelque soit le signe de a et de b ; ce qui implique que A est une M-matrice<br />

( voir [11] ).<br />

Dans un second temps, considérons une numérotation rouge-noir des points du maillage et notons ˙ A la matrice<br />

de discrétisation correspondante.<br />

Proposition 4.2. Si c est strictement positif alors ˙ A est une M-matrice.<br />

Dmonstration. Pour les schémas de discrétisation définis par (4.2), ˙ A est de façon évidente une Z-matrice.<br />

De plus ˙ A est aussi une matrice à diagonale dominante stricte ; donc ˙ A est une M-matrice.<br />

Remarque 4.2. Nous pouvons montrer directement que ˙ A est une M-matrice dès que A est une M-matrice.<br />

En effet ˙ A est obtenue à partir de A par une permutation qui préserve le signe des coefficients diagonaux et<br />

hors diagonaux. Nous avons ˙ A = P AP t où P est une matrice de permutation. Donc ˙ A est une Z-matrice.<br />

De plus,<br />

˙A −1 = (P AP t ) −1 = P A −1 P t .<br />

Il découle que ˙ A −1 est une matrice obtenue à partir de A −1 par la même permutation que celle considérée pour<br />

˙A. La matrice A étant une M-matrice, A −1 est une matrice non négative. Donc ˙ A −1 est aussi une matrice non<br />

négative et ˙ A une M-matrice. De la même façon, il découle de la proposition 4.1 et de la remarque 4.1 que ˙ A<br />

est une M-matrice dans le cas où c ≥ 0.<br />

1.1.2 Situation non-linéaire.<br />

Dans ce paragraphe, nous présentons divers problèmes aux limites non-linéaires où l’opérateur de convectiondiffusion<br />

apparaît avec différents types de non linéarités.<br />

La première application concerne un problème de climatisation par la frontière, modélisé par l’équation suivante<br />

( voir [1] ) :<br />

4.4


⎧<br />

Trouver u ∈ V solution de<br />

⎪⎨<br />

⎪⎩<br />

−ν∆u + a ∂u ∂u<br />

∂x + b ∂y + cu = f , dans Ω<br />

∂u<br />

∂n + ϕ(u) = 0 , sur Γd<br />

u = 0 , sur ∂Ω − Γd<br />

où V={v ∈ H 1 (Ω)|v |∂Ω−Γ d = 0}, Ω ⊂ IR 2 , c ≥ 0, Γd ⊂ ∂Ω, f ∈ L 2 (Ω) et ϕ : IR → IR est une fonction continue<br />

non décroissante. Les graphes que l’on peut considérer pour ϕ ont la forme indiquée à la figure 4.1 :<br />

ϕ<br />

✻<br />

<br />

<br />

<br />

(a)<br />

✲<br />

u<br />

<br />

ϕ<br />

✻<br />

✲<br />

<br />

u<br />

(b)<br />

Figure 4.1 : Différents graphes pour ϕ<br />

Notons que le graphe (c) modélise une fonction multivoque correspondant à la condition aux frontières :<br />

∂u<br />

∂n + ϕ(u) ∋ 0.<br />

Les techniques de discrétisation présentées au paragraphe 1.1.1 peuvent être utilisées pour les points intérieurs<br />

de Ω. En particulier le schéma (4.2) est utilisé pour l’opérateur de convection. La discrétisation de la condition<br />

de Neumann conduit à la résolution des équations :<br />

pour les points de discrétisation situés sur Γd.<br />

où<br />

Ainsi le système discret à résoudre s’écrit :<br />

uj − uj−1<br />

h<br />

ϕ<br />

✻<br />

(c)<br />

✲<br />

u<br />

(4.3)<br />

+ ϕ(uj) = 0, (4.4)<br />

Λ(X) = 0,<br />

Λ(X) = AX + φ(X) − G, (4.5)<br />

et A est la matrice de discrétisation de la partie linéaire du problème, associée à la numérotation lexicographique<br />

du maillage, (G, X) ∈ IR dim(A) × IR dim(A) et φ est un opérateur diagonal monotone non décroissant.<br />

Remarque 4.3. Notons que les composantes de φ sont nulles pour les points intérieurs à Ω et égales à hϕ(uj)<br />

si j correspond à l’indice d’un point qui appartient à Γd.<br />

Proposition 4.3. A est une M-matrice.<br />

4.5


Dmonstration. Si c > 0, alors il découle de (4.4), de la proposition 4.1, et des conditions de Dirichlet définies<br />

sur ∂Ω − Γd que A est une Z-matrice à diagonale dominante stricte. Donc A est une M-matrice. Si c=0, alors<br />

la matrice A est à diagonale dominante. En utilisant la caractérisation des matrices irréductibles ( voir [12] ),<br />

on peut vérifier que A est une matrice irréductible à diagonale dominante ; donc A est aussi une M-matrice.<br />

Proposition 4.4. L’opérateur du problème (4.3) est un opérateur H-accrétif et également une M-fonction.<br />

Dmonstration. L’opérateur Λ qui s’écrit sous la forme d’une somme d’une M-matrice et d’un opérateur<br />

diagonal monotone croissant est un opérateur H-accrétif.<br />

Pour les mêmes raisons, l’opérateur Λ est une M-fonction.<br />

Corollaire 4.5. Les algorithmes asynchrones et synchrones classiques et les algorithmes asynchrones avec<br />

communication flexible appliqués à la résolution du problème (4.3) convergent.<br />

Remarque 4.4. L’approximation de la condition de Neumann par le schéma de discrétisation (4.4) conduit<br />

à une précision en O(h). La précision du schéma peut être améliorée en utilisant une méthode proposée par<br />

Golub and Meurant [4] basée sur l’utilisation de “points fantômes” situés en dehors de Ω et qui sont l’image<br />

des points intérieurs de la grille proches de Γd. Si Γd est l’intervalle [0, 1] de l’axe des x alors ∂u ∂u<br />

∂n = − ∂y<br />

condition de Neumann peut être approchée ainsi :<br />

ũj+1 − uj−1<br />

+ ϕ(uj) = 0, (4.6)<br />

2h<br />

où ũj+1 est un “point fantôme”. En injectant (4.6) dans le schéma de différences finies nous obtenons les schémas<br />

suivants selon le signe de a et b :<br />

si a > 0 et b > 0 :<br />

−(ν + ah)uj−m + (4ν + h(a + b) + ch 2 )uj − (2ν + bh)uj+1 − νuj+m + 2h(ν + bh)ϕ(uj) = h 2 fj (4.7)<br />

si a > 0 et b < 0 :<br />

−(ν + ah)uj−m + (4ν + h(a − b) + ch 2 )uj − (2ν − bh)uj+1 − νuj+m + 2hνϕ(uj) = h 2 fj<br />

si a < 0 et b > 0 :<br />

−νuj−m + (4ν + h(−a + b) + ch 2 )uj − (2ν + bh)uj+1 − (ν − ah)uj+m + 2h(ν + bh)ϕ(uj) = h 2 fj (4.9)<br />

si a < 0 et b < 0 :<br />

où m est égal à h −1 .<br />

−νuj−m + (4ν − h(a + b) + ch 2 )uj − (2ν − bh)uj+1 − (ν − ah)uj+m + 2hνϕ(uj) = h 2 fj<br />

et la<br />

(4.8)<br />

(4.10)<br />

Pour les schémas (4.7) à (4.8), on retrouve d’une part les propriétés de H-accrétivité et d’autre part les<br />

propriétés des M-fonctions.<br />

Remarque 4.5. Les résultats précédents peuvent être étendus au cas où une numérotation rouge-noir est<br />

considérée ( voir remarque 4.2 ).<br />

La seconde application concerne un problème de contrôle aux frontières avec feedback à priori.<br />

⎧<br />

Trouver u tel que :<br />

⎪⎨<br />

⎪⎩<br />

−ν∆u + a ∂u ∂u<br />

∂x + b ∂y + cu = f dans Ω<br />

∂u<br />

∂n + ϕ(u) = 0 sur ∂Ω<br />

4.6<br />

(4.11)


où c > 0, f ∈ L 2 (Ω) et ϕ : IR → IR est une fonction continue non décroissante. Le problème (4.11) est proche<br />

du problème (4.3). Cependant la condition de Neumann définie sur toute la frontière ∂Ω au lieu de l’être sur<br />

une partie de ∂Ω conduit à une résolution plus difficile ; la condition c > 0 doit être vérifiée. La discrétisation<br />

du problème (4.11) utilisant le schéma classique à cinq points pour l’opérateur de diffusion, la formule (4.2)<br />

pour le terme de convection et les schémas (4.4) ou (4.6) pour les points appartenant à la frontière amène à la<br />

résolution d’un système analogue au système (4.5) qui, si c est strictement, définit soit un opérateur H-accrétif,<br />

soit une M-application.<br />

Nous considérons maintenant d’autres problèmes avec diverses non-linéarités qui sont définies sur Ω au lieu<br />

de ∂Ω. Le modèle général peut être donné par :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Trouver u solution de<br />

−ν∆u + a ∂u ∂u<br />

∂x + b ∂y + cu + ϕ(u) = f , dans Ω<br />

C.L.<br />

(4.12)<br />

où c > 0, f ∈ L 2 (Ω), et ϕ : IR → IR est une fonction continue non décroissante et C.L. représente des conditions<br />

aux limites classiques ( i.e. Dirichlet, Neumann, Fourier et mixte ). En utilisant les schémas de discrétisation<br />

précédents, nous obtenons un système identique au système (4.5). Ce type de problème rentre aussi dans les<br />

cadres d’application envisagés aux chapitres 1 et 2.<br />

Parmi les nombreuses fonctions non-linéaires que l’on peut considérer, citons par exemple : ϕ(u) = e αu , avec<br />

α > 0, ϕ(u) = Log(β + δu), avec δ > 0 et un signe convenablement choisi pour β.<br />

Pour terminer signalons que l’on retrouve l’opérateur de convection-diffusion dans le problème 2D de Navier-<br />

Stokes lorsque l’on considère la formulation courant-tourbillon. Ce problème sera traité dans le chapitre suivant.<br />

1.1.3 Problèmes de convection-diffusion avec forte convection.<br />

Les problèmes de convection-diffusion où il y a dominance du terme de convection constituent une part<br />

importante des problèmes rencontrés dans les situations physiques réelles ( voir [10], [13] ). Dans ces problèmes,<br />

le coefficient de diffusion ν est petit.<br />

En discrétisant les termes de convection par les schémas décentrés (4.2) et si les coefficients de convection<br />

a et b sont de même signe, la matrice de discrétisation A présente une forme quasi-triangulaire ( pour une<br />

numérotation lexicographique des points, la matrice est quasi-triangulaire inférieure si a et b sont positifs,<br />

supérieure si a et b sont négatifs ).<br />

Ainsi si la méthode de résolution utilisée sur chaque sous-domaine de Ω est une méthode de relaxation, la<br />

résolution va s’effectuer en un faible nombre d’itérations si le sens de parcours des points de la grille tient compte<br />

de la forme quasi-triangulaire : un parcours dans le sens direct si a et b positifs, dans l’autre sens si a et b sont<br />

négatifs. En effet dans le cas limite où le coefficient de diffusion est nul, la matrice obtenue est triangulaire et<br />

la méthode de relaxation converge en une seule itération.<br />

Les quelques exemples du tableau 4.1 donnent pour différentes valeurs de a, b et du paramètre de relaxation<br />

ω le nombre total de relaxations de Gauss-Seidel nécessaires à la résolution du problème (4.1) pour un domaine<br />

Ω maillé par 48641 points et décomposé en 8 sous-domaines en utilisant l’un ou l’autre des sens de parcours des<br />

4.7


points. Le coefficient de diffusion ν est pris égal à 10 −2 .<br />

Sens Nombres de relaxations<br />

(a,b) de parcours ω = 0.50 ω = 0.75 ω = 1.00 ω = 1.25 ω = 1.50<br />

(0.5,1.5) Direct 10472 5820 3325 1715 521<br />

(0.5,1.5) Inverse 11985 7401 4974 3424 2269<br />

(5,15) Direct 3517 1602 564 diverge diverge<br />

(5,15) Inverse 5164 3278 2274 diverge diverge<br />

(50,150) Direct 2530 1044 167 2339 diverge<br />

(50,150) Inverse 4101 2636 1815 4691 diverge<br />

Table 4.1 : Influence du sens de parcours des points de la grille pour différentes valeurs des coefficients de convection<br />

quand le coefficient de diffusion est faible.<br />

Il apparaît clairement l’intérêt d’utiliser le sens direct, pour relaxer. Il est donc utile de regarder, quand on le<br />

peut, le signe des coefficients de convection et ceci quel que soit l’algorithme que l’on utilise. Ce procédé semble<br />

d’autant plus efficace que les valeurs de a et b sont grandes.<br />

1.2 Cas de la discrétisation centrée du terme de convection.<br />

1.2.1 Le problème linéaire de convection-diffusion.<br />

Nous considérons le problème (4.1) mais avec une discrétisation centrée du terme de convection.<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Trouver u ∈ H 1 0(Ω) solution de<br />

−ν∆u + a ∂u ∂u<br />

∂x + b ∂y + cu = f, dans Ω<br />

u = 0 sur ∂Ω<br />

où c ≥ 0, ν > 0 et Ω ⊂ IR 2 , f est une fonction de L 2 (Ω).<br />

Les schémas de discrétisation sont les suivants :<br />

⎧<br />

⎨<br />

⎩<br />

∂u u(x+h,y)−u(x−h,y)<br />

∂x = 2h + O(h2 ),<br />

∂u u(x,y+h)−u(x,y−h)<br />

∂y = 2h + O(h2 ).<br />

(4.13)<br />

(4.14)<br />

Proposition 4.6. Soit A la matrice de discrétisation du problème (4.1) lorsque les termes de convection sont<br />

discrétisés par des schémas centrés. Si la condition<br />

| a | + | b | < 4 ν<br />

+ ch (4.15)<br />

h<br />

est vérifiée alors A est un opérateur H-accrétif.<br />

4.8


Dmonstration. Sous l’hypothèse (4.15), la matrice de discrétisation A est une matrice irréductible à diagonale<br />

dominante ; sa matrice de comparaison est une M-matrice donc A est une H-matrice. Selon la proposition<br />

1.12 du paragraphe 2.5, la matrice A est un opérateur H-accrétif.<br />

Proposition 4.7. De plus si les hypothèses suivantes sont vérifiées,<br />

A est une M-matrice.<br />

⎧<br />

⎨<br />

⎩<br />

| a | ≤ 2ν<br />

h ,<br />

| b | ≤ 2ν<br />

h ,<br />

(4.16)<br />

Dmonstration. Les hypothèses (4.15) et (4.16) conduisent à une matrice de discrétisation A qui est une<br />

Z-matrice. De plus cette matrice est une matrice irréductible à diagonale dominante, c’est donc une M-matrice.<br />

Corollaire 4.8. Sous les hypothèses de la proposition 4.6 les algorithmes synchrones et asynchrones classiques<br />

convergent.<br />

Corollaire 4.9. Sous les hypothèses de la proposition 4.6 et 4.7, les algorithmes asynchrones avec communication<br />

flexible convergent.<br />

Remarque 4.6. Quelques soient les valeurs de a et b, il est toujours possible de prendre h suffisamment petit<br />

de manière à vérifier les hypothèses (4.15) et (4.16).<br />

1.2.2 Situation non-linéaire.<br />

Sous l’hypothèse (4.15), les problèmes non-linéaires exposés au paragraphe 1.1.2 rentrent dans le cadre d’application<br />

du chapitre 1 ; l’opérateur Λ est la somme d’une matrice accrétive et d’un opérateur diagonal croissant, ;<br />

donc Λ est un opérateur H-accrétif.<br />

Sous les hypothèses (4.15) et (4.16), l’opérateur Λ est la somme d’une M-matrice et d’un opérateur diagonal<br />

croissant. Λ est une M-fonction et les algorithmes envisagés aux chapitre 2 sont applicables.<br />

2 Expérimentations numériques pour le problème linéaire classique de convection-diffusion.<br />

Le problème traité dans ce paragraphe est le problème linéaire de convection-diffusion (4.1). Les expérimentations<br />

numériques ont été réalisées avec P.V.M. et M.P.I. pour trois tailles de problèmes.<br />

1. une taille modeste avec 48 641 points de discrétisation, le domaine Ω étant découpé en 8 sous-domaines<br />

d’approximativement 7100 points. Le pas d’espace h est égal à 7, 8.10 −3 .<br />

2. une taille moyenne avec 92 837 points de discrétisation, le domaine Ω étant découpé en 16 sous-domaines<br />

d’approximativement 7100 points. Dans ce cas h est égal à 7, 8.10 −3 .<br />

3. une grande taille avec 130 305 points de discrétisation, le domaine Ω étant découpé en 8 sous-domaines<br />

d’approximativement 19400 points. h est ici égal à 3, 2.10 −3 .<br />

Remarque 4.7. Pour ne pas avoir des sous-domaines trop étirés, Ω n’est pas obligatoirement le carré unité. Ce<br />

qui explique les valeurs de h. Pour chaque grandeur de problème, la zone de recouvrement comporte 12*NDCY,<br />

NDCY étant le nombre de points selon l’axe des Y.<br />

4.9


Pour chaque taille, nous avons considéré trois valeurs du coefficient de diffusion ν = 1, ν = 10 −1 et ν = 10 −2 .<br />

Les coefficients de convection a et b et le coefficient c ont été pris de telles façon que pour tous les maillages<br />

et tous les coefficients ν, nous obtenions après une discrétisation centrée ou décentrée des termes de convection<br />

une M-matrice. Pour des valeurs a = 1.5, b = 0.5 et c = 10, la matrice de discrétisation est une M-matrice.<br />

Les tests comportent des calculs avec une version séquentielle de l’algorithme de Schwarz, une version synchrone<br />

et les trois versions asynchrones introduites au chapitre 3, l’algorithme asynchrone Basse Fréquence de<br />

Communication ( B.F.C. ), l’algorithme asynchrone Moyenne Fréquence de Communication ( M.F.C. ) et<br />

l’algorithme asynchrone Haute Fréquence de Communication ( H.F.C ). Nous rappelons que les algorithmes<br />

asynchrones B.F.C. et M.F.C. implémentent les algorithmes asynchrones classiques tandis que l’algorithme<br />

asynchrone H.F.C est l’algorithme qui se rapproche le plus des algorithmes asynchrones avec communication<br />

flexible.<br />

Pour les algorithmes parallèles, nous avons fait varier le nombre des processeurs de 2 à 8 selon la taille du<br />

problème.<br />

2.1 Résultats détaillés de deux calculs avec discrétisation décentrée des termes de convection – Version P.V.M.<br />

On considère deux résolutions du problème linéaire. Dans la première résolution le terme de diffusion est<br />

ν = 0.01 et le maillage comporte 48641 points de discrétisation. La deuxième résolution est effectuée avec ν = 1<br />

et un maillage de 130 305 points. Dans les deux exemples, le domaine est découpé en 8 sous-domaines.<br />

Dans les tableaux suivants 4.2 et 4.3, sont donnés le nombre d’itérations de Schwarz ( entre parenthèses ) et<br />

le nombre de relaxations effectuées sur chaque sous-domaines par les différents types d’algorithmes ainsi que le<br />

temps de restitution. Les exécutions des algorithmes parallèles ont été réalisées sur 2 puis 4 processeurs.<br />

Signalons enfin que nous avons comparé pour tous les calculs effectués dans ce chapitre la solution obtenue<br />

avec la solution exacte. Les différences relatives de la solution calculée par rapport à solution exacte sont du<br />

même ordre pour tous les algorithmes, séquentiels, synchrones et asynchrones.<br />

Le tableau 4.3 ne comporte pas les résultats de la version B.F.C. de l’algorithme asynchrone car au cours<br />

des tests, il est apparu que ce type d’algorithme ne donnait pas toujours des résultats satisfaisants.<br />

Ces deux tableaux correspondent à deux cas extrêmes de l’ensemble des tests effectués et illustrent assez bien<br />

le comportement des algorithmes asynchrones.<br />

Dans le premier test, les processeurs n’ont pas assez de travail et on constate que pour les algorithmes<br />

asynchrones cela se traduit par un grand nombre d’itérations de Schwarz pour l’un des processeurs ( le premier<br />

en l’occurence ).<br />

Ce test correspond à un cas limite de l’utilisation des algorithmes asynchrones ; le problème comporte un<br />

nombre limité de points et le volume de calcul par processeur est insuffisant. C’est un des rares tests, comme<br />

on le verra par la suite, où l’algorithme synchrone est plus rapide que les algorithmes asynchrones.<br />

Dans le second test, le volume de travail est plus important pour chaque processeur, et le nombre d’itérations<br />

de Schwarz est du même ordre de grandeur pour tous les calculs.<br />

Si maintenant on regarde le nombre de relaxations effectuées sur chaque sous-domaine, on constate qu’il est<br />

du même ordre de grandeur pour tous les types d’algorithmes, ceci pour les deux tests. C’est ce nombre qui est<br />

4.10


Sous-domaine 1 2 3 4 5 6 7 8 Total Temps<br />

Séquentiel (4) (4) (4) (4) (4) (4) (4) (4) (32)<br />

406 441 435 427 422 418 423 353 3325 31.52s<br />

Processeur 1 2<br />

Synchrone (6) (6) (6) (6) (6) (6) (6) (6) (48)<br />

408 443 437 587 611 420 425 355 3686 20.28s<br />

Asynchrone (17) (17) (17) (17) (5) (5) (5) (5) (92)<br />

B.F.C. 419 454 448 398 548 419 424 354 3464 23.88s<br />

Asynchrone (54) (54) (54) (54) (9) (9) (8) (8) (250)<br />

M.F.C. 456 491 485 498 552 423 427 357 3689 22.20s<br />

Asynchrone (54) (54) (54) (54) (9) (9) (9) (8) (250)<br />

H.F.C. 456 491 485 498 552 423 428 357 3690 22.47s<br />

Processeur 1 2 3 4<br />

Synchrone (6) (6) (6) (6) (6) (6) (6) (6) (48)<br />

408 566 593 587 611 546 592 372 4275 13.48s<br />

Asynchrone (7) (7) (7) (7) (14) (13) (13) (81) (81)<br />

B.F.C. 409 568 594 589 639 449 559 379 4186 17.10s<br />

Asynchrone (83) (83) (26) (25) (11) (11) (10) (9) (258)<br />

M.F.C. 486 496 550 412 561 424 533 373 3835 13.19s<br />

Asynchrone (89) (89) (23) (22) (11) (10) (11) (10) (265)<br />

H.F.C. 491 503 547 413 565 414 535 374 3842 14.46s<br />

Table 4.2 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

le plus en corrélation avec le temps de restitution.<br />

En dehors des cas limites, un nombre inférieur de relaxations pour un algorithme asynchrone par rapport<br />

à l’algorithme synchrone se traduira par un meilleur temps de restitution. Dans les cas limites, le temps de<br />

latence des communications conduit à une perte de temps qui n’est pas compensée par le gain sur le nombre de<br />

relaxations. C’est ce que l’on constate dans le tableau 4.2 pour le calcul avec quatre processeurs : l’algorithme<br />

asynchrone H.F.C., bien qu’effectuant moins de relaxations (3842) que l’algorithme synchrone (4275) est plus<br />

lent.<br />

L’étude de ces deux tests permet de dégager de façon assez rapide le comportement général des algorithmes<br />

asynchrones. De plus il permet de mettre en évidence l’importance du nombre de relaxations bien plus significatif<br />

que le nombre d’itérations de Schwarz. C’est pourquoi par la suite ce nombre d’itérations n’apparaîtra plus dans<br />

les tableaux de résultats. Notons cependant que dans la suite des tests, d’autres comportements des algorithmes<br />

asynchrones apparaîtront, notamment l’avantage de la non synchronisation.<br />

Remarque 4.8. Ces exemples détaillés concernent la version développée à l’aide de P.V.M. et une discrétisation<br />

décentrée des termes de convection. Nous obtenons le même type de résultats si on considère une discrétisation<br />

centrée des termes de convection et dans la version M.P.I.<br />

4.11


Sous-domaine 1 2 3 4 5 6 7 8 Total Temps<br />

Séquentiel (10828) (10828) (10828) (10828) (10828) (10828) (10828) (10828) (86624)<br />

20529 20367 20363 20305 20197 20008 19663 19225 160657 1h25m18.90s<br />

Processeur 1 2<br />

Synchrone (10588) (10588) (10588) (10588) (10588) (10588) (10588) (10588) (84704)<br />

20254 20221 20508 21460 21923 20426 19740 19167 163699 46m57.96s<br />

Asynchrone (10753) (10753) (10753) (10753) (10794) (10793) (10793) (10793) (86185)<br />

M.F.C. 20417 20204 20101 19591 20936 20227 19749 19263 160488 43m48.63s<br />

Asynchrone (10678) (10678) (10678) (10678) (10810) (10809) (10809) (10809) (85949)<br />

H.F.C. 20339 20125 20024 19518 21083 20250 19763 19275 160377 43m37.32s<br />

Processeur 1 2 3 4<br />

Synchrone (10568) (10568) (10568) (10568) (10568) (10568) (10568) (10568) (84544)<br />

20609 21459 21847 21609 21986 21475 21863 20010 170858 26m22.40s<br />

Asynchrone (12040) (12040) (10810) (10810) (10836) (10836) (10936) (10936) (89244)<br />

M.F.C. 21367 21711 20757 19921 20746 20000 20910 19932 165344 23m28.08s<br />

Asynchrone (12095) (12095) (11220) (11219) (10674) (10673) (11352) (11351) (90679)<br />

H.F.C. 21420 21487 21128 20953 20678 19660 21773 20299 167398 24m26.73s<br />

Table 4.3 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

2.2 Résultats des calculs avec discrétisation décentrée des termes de convection.<br />

2.2.1 Implémentation avec P.V.M.<br />

Au cours des tests, on a constaté que la version B.F.C. de l’algorithme asynchrone donnait non seulement<br />

de mauvais temps de restitution mais en plus ne fonctionnait pas à coup sûr ; il est arrivé que le programme<br />

s’arrête sur une erreur de débordement de buffer.<br />

Ce débordement est dû à un manque de souplesse dans les communications et peut s’expliquer de la manière<br />

suivante : un processeur P peut être décalé dans ses calculs avec ses voisins P 1 et P 2 ; ceux-ci lui envoient les<br />

valeurs de la solution sur les frontières de recouvrement pendant qu’il effectue la résolution sur un sous-domaine.<br />

Dans la version B.F.C., P ne fait aucune communication au cours de son algorithme de résolution ; il n’envoie<br />

donc aucune valeur de la solution sur les frontières de recouvrement à P 1 et P 2. La résolution sur les domaines<br />

traités par P 1 et P 2 est de ce fait rapide et très vite ces derniers lui envoient d’autres valeurs de la solution.<br />

Les réceptions en attente vers P augmentent et si P ne termine pas sa résolution avant que le buffer ne soit<br />

plein, le programme s’arrête sur une erreur de débordement de buffer.<br />

Le fait de ne pas réceptionner avec une fréquence suffisante augmente les risque de mauvais fonctionnement.<br />

Ce risque disparaît lorsque l’on utilise la version M.F.C. de l’algorithme asynchrone où les réceptions ont<br />

lieu dans la boucle de relaxation. Mis à part certains cas limites où le nombre de points par processeur est<br />

insuffisant et où le volume de calcul n’est pas assez important ( cas avec ν = 10 −2 ), l’algorithme asynchrone<br />

M.F.C. présente de meilleurs temps que l’algorithme synchrone. Dans quelques cas ( cf. tableaux 4.4 et 4.7 ),<br />

on observe que, malgré un nombre de relaxations plus important, la version M.F.C. est plus rapide en temps<br />

4.12


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 66244 757.2 sec. - -<br />

Synchrone 2 68746 435.2 sec. 1.74 0.87<br />

Asynchrone B.F.C. 2 66296 508.8 sec. 1.48 0.74<br />

Asynchrone M.F.C. 2 70110 427.3 sec. 1.78 0.89<br />

Asynchrone H.F.C. 2 69873 426.9 sec. 1.77 0.89<br />

Synchrone 4 73247 251.0 sec. 3.02 0.75<br />

Asynchrone B.F.C. 4 74049 284.0 sec. 2.66 0.67<br />

Asynchrone M.F.C. 4 72581 222.1 sec. 3.40 0.85<br />

Asynchrone H.F.C. 4 72191 225.0 sec. 3.36 0.84<br />

Table 4.4 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 24560 229.3 sec. - -<br />

Synchrone 2 26430 140.8 sec. 1.62 0.81<br />

Asynchrone B.F.C. 2 24038 161.2 sec. 1.42 0.71<br />

Asynchrone M.F.C. 2 25494 133.1 sec. 1.72 0.86<br />

Asynchrone H.F.C. 2 25562 136.6 sec. 1.68 0.84<br />

Synchrone 4 30678 88.5 sec. 2.60 0.65<br />

Asynchrone B.F.C. 4 30644 116.4 sec. 1.96 0.49<br />

Asynchrone M.F.C. 4 26969 74.6 sec. 3.08 0.77<br />

Asynchrone H.F.C. 4 26722 75.4 sec. 3.04 0.76<br />

Table 4.5 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

que l’algorithme synchrone. Il apparaît ici la souplesse des algorithmes asynchrones qui ne sont pas pénalisés<br />

par une quelconque synchronisation. Ils effectuent des relaxations supplémentaires au lieu de perdre du temps à<br />

se synchroniser, ce qui n’affecte pas le temps de restitution compte-tenu de la vitesse de calcul des processeurs.<br />

On constate aussi un bon comportement de l’algorithme asynchrone M.F.C. lorsque le nombre de processeurs<br />

augmente. L’efficacité reste satisfaisante dès que le ratio nombre de sous-domaines par processeur demeure<br />

supérieur à 2. Des tests avec un sous-domaine par processeur donnent des mauvais résultats ; notons cependant<br />

que les résultats sont mauvais pour l’algorithme synchrone.<br />

La version H.F.C. de l’algorithme asynchrone donne des résultats plus difficiles à analyser. Cette version<br />

semble être pénalisée par le nombre de communications et ses performances dépendent fortement des exécutions<br />

et du taux d’occupation du réseau. Il n’y a pas de règle précise pour comparer cette version à la version M.F.C.<br />

ou à l’algorithme synchrone. Elle peut donner d’excellents résultats comme des résultats moyens. Pour les<br />

4.13


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 3325 31.5 sec. - -<br />

Synchrone 2 3686 20.3 sec. 1.54 0.77<br />

Asynchrone B.F.C. 2 3464 23.9 sec. 1.32 0.66<br />

Asynchrone M.F.C. 2 3689 22.2 sec. 1.42 0.71<br />

Asynchrone H.F.C. 2 3690 22.5 sec. 1.40 0.70<br />

Synchrone 4 4275 13.5 sec. 2.34 0.58<br />

Asynchrone B.F.C. 4 4186 17.1 sec. 1.84 0.46<br />

Asynchrone M.F.C. 4 3835 13.2 sec. 2.40 0.60<br />

Asynchrone H.F.C. 4 3842 14.4 sec. 2.20 0.55<br />

Table 4.6 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 160657 5118.9 sec. - -<br />

Synchrone 2 163699 2818.0 sec. 1.82 0.91<br />

Asynchrone M.F.C. 2 160488 2628.6 sec. 1.94 0.97<br />

Asynchrone H.F.C. 2 160377 2617.3 sec. 1.96 0.98<br />

Synchrone 4 170858 1582.4 sec. 3.24 0.81<br />

Asynchrone M.F.C. 4 165344 1408.1 sec. 3.64 0.91<br />

Asynchrone H.F.C. 4 167398 1466.7 sec. 3.50 0.87<br />

Table 4.7 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

problèmes suffisamment importants, elle reste cependant meilleure que l’algorithme synchrone.<br />

Si l’on considère des problèmes où la parallélisation est intéressante i.e. des problèmes conduisant à de gros<br />

volumes de calculs, ce qui arrive lorsque l’on utilise des maillages fins, on constate le bon comportement des<br />

algorithmes asynchrones M.F.C. et H.F.C., quel que soit le coefficient de diffusion. Par contre pour des<br />

problèmes plus petits, l’intérêt de l’asynchronisme est moins évident.<br />

Ce phénomène est génant pour la mise au point des programmes où il est préférable de tester ces derniers avec<br />

une taille conséquente du problème. En effet, si on considère une taille modeste du problème, les algorithmes<br />

asynchrones auront des performances inférieures aux algorithmes synchrones, dans la mesure où ils ne sont pas<br />

adaptés à ce type de situation.<br />

Les versions P.V.M. des algorithmes asynchrones pour des problèmes de convection-diffusion avec discrétisation<br />

décentrée des termes de convection permettent de tirer les premiers enseignements sur les algorithmes asynchrones<br />

sur machines à mémoire distribuée.<br />

L’algorithme asynchrone B.F.C. fonctionne difficilement, et quand il n’y a pas de problèmes lors de l’exécution<br />

4.14


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 83555 2084.9 sec. - -<br />

Synchrone 2 91514 1245.2 sec. 1.68 0.84<br />

Asynchrone M.F.C. 2 91557 1176.5 sec. 1.78 0.89<br />

Asynchrone H.F.C. 2 91543 1188.1 sec. 1.76 0.88<br />

Synchrone 4 106547 797.1 sec. 2.62 0.66<br />

Asynchrone M.F.C. 4 95445 662.7 sec. 3.15 0.79<br />

Asynchrone H.F.C. 4 94960 680.6 sec. 3.06 0.77<br />

Table 4.8 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 12382 314.1 sec. - -<br />

Synchrone 2 13895 198.3 sec. 1.58 0.79<br />

Asynchrone M.F.C. 2 13427 179.5 sec. 1.76 0.88<br />

Asynchrone H.F.C. 2 13506 185.7 sec. 1.70 0.85<br />

Synchrone 4 17037 126.2 sec. 2.49 0.62<br />

Asynchrone M.F.C. 4 16831 134.0 sec. 2.36 0.59<br />

Asynchrone H.F.C. 4 15176 114.9 sec. 2.74 0.68<br />

Table 4.9 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

il conduit aux plus mauvais résultats en temps de restitution.<br />

L’algorithme asynchrone M.F.C. est la version la plus robuste qui donne pour tous les problèmes adaptés au<br />

parallélisme de meilleurs résultats que la version synchrone.<br />

L’algorithme asynchrone H.F.C. pose plus de problèmes ; les résultats dépendent fortement du taux d’occupation<br />

du réseaux. Quand le réseau est peu encombré, il donne d’excellents résultats.<br />

4.15


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 136038 1635.7 sec. - -<br />

Synchrone 2 138776 849.3 sec. 1.92 0.96<br />

Asynchrone M.F.C. 2 135895 792.9 sec. 2.06 1.03<br />

Asynchrone H.F.C. 2 136413 786.4 sec. 2.08 1.04<br />

Synchrone 4 143598 449.4 sec. 3.64 0.91<br />

Asynchrone M.F.C. 4 138192 427.1 sec. 3.82 0.96<br />

Asynchrone H.F.C. 4 138670 432.2 sec. 3.78 0.95<br />

Synchrone 8 152387 262.1 sec. 6.24 0.78<br />

Asynchrone M.F.C. 8 139679 216.7 sec. 7.54 0.94<br />

Asynchrone H.F.C. 8 139676 223.1 sec. 7.33 0.91<br />

Table 4.10 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 51209 476.6 sec. - -<br />

Synchrone 2 52430 264.8 sec. 1.80 0.9<br />

Asynchrone M.F.C. 2 50884 240.2 sec. 1.98 0.99<br />

Asynchrone H.F.C. 2 50884 245.2 sec. 1.94 0.97<br />

Synchrone 4 55509 156.1 sec. 3.05 0.763<br />

Asynchrone M.F.C. 4 50170 128.5 sec. 3.70 0.927<br />

Asynchrone H.F.C. 4 50274 133.3 sec. 3.58 0.894<br />

Synchrone 8 63751 92.3 sec. 5.16 0.645<br />

Asynchrone M.F.C. 8 54675 73.5 sec. 6.49 0.811<br />

Asynchrone H.F.C. 8 52975 75.5 sec. 6.31 0.79<br />

Table 4.11 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.16


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 7063 66.3 sec. - -<br />

Synchrone 2 7201 37.2 sec. 1.78 0.89<br />

Asynchrone M.F.C. 2 7037 33.8 sec. 1.96 0.98<br />

Asynchrone H.F.C. 2 7051 39.0 sec. 1.7 0.85<br />

Synchrone 4 7789 22.4 sec. 2.96 0.74<br />

Asynchrone M.F.C. 4 7346 19.4 sec. 3.42 0.855<br />

Asynchrone H.F.C. 4 7361 25.5 sec. 2.6 0.65<br />

Synchrone 8 8982 11.4 sec. 5.82 0.728<br />

Asynchrone M.F.C. 8 8046 11.7 sec. 5.66 0.707<br />

Asynchrone H.F.C. 8 7668 16.4 sec. 4.06 0.507<br />

Table 4.12 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.17


2.2.2 Implémentation avec M.P.I.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 66244 874.0 sec. - -<br />

Synchrone 2 68746 476.5 sec. 1.84 0.92<br />

Asynchrone B.F.C. 2 69104 470.9 sec. 1.86 0.93<br />

Asynchrone M.F.C. 2 67756 428.0 sec. 2.04 1.02<br />

Asynchrone H.F.C. 2 70558 458.7 sec. 1.90 0.95<br />

Synchrone 4 73247 274.9 sec. 3.20 0.80<br />

Asynchrone B.F.C. 4 93287 345.7 sec. 2.52 0.63<br />

Asynchrone M.F.C. 4 70819 232.6 sec. 3.76 0.94<br />

Asynchrone H.F.C. 4 79608 273.4 sec. 3.20 0.80<br />

Table 4.13 : Problème linéaire – Version M.P.I : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 24560 271.1 sec. - -<br />

Synchrone 2 26430 157.7 sec. 1.72 0.86<br />

Asynchrone B.F.C. 2 24734 144.5 sec. 1.88 0.94<br />

Asynchrone M.F.C. 2 24377 133.6 sec. 2.04 1.02<br />

Asynchrone H.F.C. 2 24865 138.6 sec. 1.98 0.99<br />

Synchrone 4 30678 101.6 sec. 2.66 0.66<br />

Asynchrone B.F.C. 4 31509 101.7 sec. 2.66 0.66<br />

Asynchrone M.F.C. 4 26384 77.5 sec. 3.50 0.88<br />

Asynchrone H.F.C. 4 26033 77.5 sec. 3.50 0.88<br />

Table 4.14 : Problème linéaire – Version M.P.I : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

L’implémentation des algorithmes asynchrones à l’aide de M.P.I. donne des résultats assez comparables à ceux<br />

obtenus avec la version P.V.M. ; il y a cependant quelques différences intéressantes à signaler.<br />

La version B.F.C. de l’algorithme asynchrone a un meilleur comportement avec M.P.I. et fonctionne tout le<br />

temps. Pour tous les problèmes, quand le nombre de sous-domaines par processeur est de quatre, on obtient des<br />

résultats comparables aux autres versions asynchrones. Par contre, lorsqu’il y a seulement deux sous-domaines<br />

par processeur, ses performances sont moins bonnes.<br />

Notons que l’asynchrone B.F.C. conduit à une vitesse de convergence plus faible que les autres versions<br />

asynchrones. Le temps gagné au niveau des communications se perd par le non respect des principes de Gauss à<br />

propos de l’utilisation des valeurs les plus récentes des résultats des relaxations aux frontières de recouvrement.<br />

4.18


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 3325 38.6 sec. - -<br />

Synchrone 2 3686 27.8 sec. 1.38 0.69<br />

Asynchrone B.F.C. 2 3530 27.0 sec. 1.42 0.71<br />

Asynchrone M.F.C. 2 3528 26.0 sec. 1.48 0.74<br />

Asynchrone H.F.C. 2 3639 26.8 sec. 1.44 0.72<br />

Synchrone 4 4275 21.2 sec. 1.82 0.46<br />

Asynchrone B.F.C. 4 4509 22.4 sec. 1.72 0.43<br />

Asynchrone M.F.C. 4 3851 19.0 sec. 2.04 0.51<br />

Asynchrone H.F.C. 4 3746 17.9 sec. 2.16 0.54<br />

Table 4.15 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 160657 6013.8 sec. - -<br />

Synchrone 2 163699 3226.4 sec. 1.86 0.93<br />

Asynchrone B.F.C. 2 163141 3085.5 sec. 1.96 0.98<br />

Asynchrone M.F.C. 2 162498 2936.3 sec. 2.04 1.02<br />

Asynchrone H.F.C. 2 161440 2871.4 sec. 2.10 1.05<br />

Synchrone 4 170858 1714.0 sec. 3.44 0.86<br />

Asynchrone B.F.C. 4 188142 1802.3 sec. 3.32 0.83<br />

Asynchrone M.F.C. 4 165558 1445.6 sec. 4.02 1.01<br />

Asynchrone H.F.C. 4 164505 1476.8 sec. 4.04 1.02<br />

Table 4.16 : Problème linéaire – Version M.P.I : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

L’algorithme asynchrone M.F.C. reste l’algorithme qui a le comportement le plus régulier et qui donne de<br />

meilleurs résultats que l’algorithme synchrone pour tous les problèmes de grande taille.<br />

La version H.F.C. de M.P.I. se comporte de façon plus régulière que la version H.F.C. de P.V.M. ; pour les<br />

grands problèmes où le nombre de sous-domaines par processeur est supérieur ou égal à quatre ( tables 4.16,<br />

4.17, 4.19, 4.20 ), cette version donne les meilleures efficacités. La gestion M.P.I. des communications permet<br />

de tirer le meilleur parti de ce type d’algorithme asynchrone avec communication flexible.<br />

4.19


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 83555 2454.7 sec. - -<br />

Synchrone 2 91514 1432.6 sec. 1.72 0.86<br />

Asynchrone B.F.C. 2 95302 1406.2 sec. 1.74 0.87<br />

Asynchrone M.F.C. 2 93568 1302.7 sec. 1.88 0.94<br />

Asynchrone H.F.C. 2 91598 1264.9 sec. 1.94 0.97<br />

Synchrone 4 106547 863.9 sec. 2.84 0.71<br />

Asynchrone B.F.C. 4 118192 954.9 sec. 2.56 0.64<br />

Asynchrone M.F.C. 4 93142 657.6 sec. 3.76 0.94<br />

Asynchrone H.F.C. 4 93966 671.1 sec. 3.68 0.92<br />

Table 4.17 : Problème linéaire – Version M.P.I : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 12382 366.9 sec. - -<br />

Synchrone 2 13895 233.2 sec. 1.58 0.79<br />

Asynchrone B.F.C. 2 14683 240.9 sec. 1.52 0.76<br />

Asynchrone M.F.C. 2 13406 189.8 sec. 1.92 0.96<br />

Asynchrone H.F.C. 2 13383 194.7 sec. 1.88 0.94<br />

Synchrone 4 17037 142.8 sec. 2.56 0.64<br />

Asynchrone B.F.C. 4 18131 151.4 sec. 2.44 0.61<br />

Asynchrone M.F.C. 4 14951 113.0 sec. 3.24 0.81<br />

Asynchrone H.F.C. 4 12032 114.4 sec. 3.20 0.80<br />

Table 4.18 : Problème linéaire – Version M.P.I : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.20


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 136038 1813.9 sec. - -<br />

Synchrone 2 138776 947.7 sec. 1.90 0.95<br />

Asynchrone B.F.C. 2 139875 869.4 sec. 2.08 1.04<br />

Asynchrone M.F.C. 2 136910 882.1 sec. 2.06 1.03<br />

Asynchrone H.F.C. 2 137336 862.9 sec. 2.10 1.05<br />

Synchrone 4 143598 522.7 sec. 3.46 0.87<br />

Asynchrone B.F.C. 4 159093 524.9 sec. 3.46 0.87<br />

Asynchrone M.F.C. 4 149535 517.5 sec. 3.50 0.88<br />

Asynchrone H.F.C. 4 142493 465.9 sec. 3.90 0.97<br />

Synchrone 8 152387 260.2 sec. 6.98 0.87<br />

Asynchrone B.F.C. 8 166777 272.0 sec. 6.66 0.83<br />

Asynchrone M.F.C. 8 138680 245.6 sec. 7.38 0.92<br />

Asynchrone H.F.C. 8 148974 249.2 sec. 7.28 0.91<br />

Table 4.19 : Problème linéaire – Version M.P.I : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 50217 564.9 sec. - -<br />

Synchrone 2 52430 302.7 sec. 1.86 0.93<br />

Asynchrone B.F.C. 2 51017 284.6 sec. 1.98 0.99<br />

Asynchrone M.F.C. 2 50205 286,9 sec. 1.96 0.98<br />

Asynchrone H.F.C. 2 50644 274.1 sec. 2.06 1.03<br />

Synchrone 4 55509 171.8 sec. 2.28 0.82<br />

Asynchrone B.F.C. 4 52547 145.9 sec. 3.88 0.97<br />

Asynchrone M.F.C. 4 50349 145.7 sec. 3.88 0.97<br />

Asynchrone H.F.C. 4 50303 143.2 sec. 3.94 0.98<br />

Synchrone 8 63751 97.4 sec. 5.80 0.73<br />

Asynchrone B.F.C. 8 63766 95.7 sec. 5.90 0.74<br />

Asynchrone M.F.C. 8 53062 86.6 sec. 6.52 0.82<br />

Asynchrone H.F.C. 8 52442 81.4 sec. 6.94 0.87<br />

Table 4.20 : Problème linéaire – Version M.P.I : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.21


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 6776 73.0 sec. - -<br />

Synchrone 2 7201 43.7 sec. 1.68 0.84<br />

Asynchrone B.F.C. 2 7235 45.0 sec. 1.62 0.81<br />

Asynchrone M.F.C. 2 6989 44.6 sec. 1.64 0.82<br />

Asynchrone H.F.C. 2 7100 45.8 sec. 1.60 0.80<br />

Synchrone 4 7789 32.2 sec. 2.26 0.56<br />

Asynchrone B.F.C. 4 7296 28.4 sec. 2.56 0.64<br />

Asynchrone M.F.C. 4 7243 29.2 sec. 2.5 0.62<br />

Asynchrone H.F.C. 4 7308 28.8 sec. 2.54 0.63<br />

Synchrone 8 8982 21.6 sec. 3.38 0.42<br />

Asynchrone B.F.C. 8 9405 23.0 sec. 3.18 0.40<br />

Asynchrone M.F.C. 8 7612 20.0 sec. 3.65 0.46<br />

Asynchrone H.F.C. 8 7789 20.3 sec. 3.59 0.45<br />

Table 4.21 : Problème linéaire – Version M.P.I : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.22


2.3 Résultats des calculs avec discrétisation centrée des termes de convection.<br />

Dans les tableaux suivants ( 4.22 à 4.39 ), sont présentés les résultats des expérimentations, pour les mêmes<br />

types de problèmes que ceux considérés dans le paragraphe précédent, mais avec cette fois-ci une discrétisation<br />

centrée des termes de convection.<br />

Les résultats obtenus sont tout à fait comparables aux résultats des expérimentations avec discrétisation<br />

décentrée et il n’y a pas de différences notables à signaler entre les comportements des algorithmes asynchrones<br />

pour ce type de discrétisation et ceux observés dans le paragraphe précédent.<br />

Une différence cependant existe au niveau des résultats numériques où la précision de la solution obtenue est<br />

meilleure en utilisant une discrétisation centrée qu’une discrétisation décentrée.<br />

2.3.1 Implémentation avec P.V.M.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 66219 748.5 sec. - -<br />

Synchrone 2 68706 434.0 sec. 1.72 0.86<br />

Asynchrone B.F.C. 2 66266 561.8 sec. 1.34 0.67<br />

Asynchrone M.F.C. 2 69808 422.9 sec. 1.78 0.89<br />

Asynchrone H.F.C. 2 69875 426.8 sec. 1.76 0.88<br />

Synchrone 4 73216 261.4 sec. 2.86 0.72<br />

Asynchrone B.F.C. 4 74400 290.0 sec. 2.58 0.65<br />

Asynchrone M.F.C. 4 72946 225.5 sec. 3.32 0.83<br />

Asynchrone H.F.C. 4 72407 226.2 sec. 3.30 0.83<br />

Table 4.22 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.23


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 24458 228.1 sec. - -<br />

Synchrone 2 26543 137.5 sec. 1.66 0.83<br />

Asynchrone B.F.C. 2 23980 161.4 sec. 1.41 0.70<br />

Asynchrone M.F.C. 2 25757 134.2 sec. 1.70 0.85<br />

Asynchrone H.F.C. 2 25773 138.2 sec. 1.64 0.82<br />

Synchrone 4 30002 86.3 sec. 2.64 0.66<br />

Asynchrone B.F.C. 4 28370 99.4 sec. 2.30 0.58<br />

Asynchrone M.F.C. 4 26658 73.0 sec. 3.12 0.78<br />

Asynchrone H.F.C. 4 26622 77.1 sec. 2.96 0.74<br />

Table 4.23 : Problème linéaire – Version P.V.M. :coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 2112 19.5 sec. - -<br />

Synchrone 2 2300 13.1 sec. 1.50 0.75<br />

Asynchrone B.F.C. 2 2137 15.6 sec. 1.25 0.63<br />

Asynchrone M.F.C. 2 2350 14.9 sec. 1.30 0.65<br />

Asynchrone H.F.C. 2 2359 15.7 sec. 1.26 0.63<br />

Synchrone 4 2670 9.0 sec. 2.16 0.54<br />

Asynchrone B.F.C. 4 2702 11.0 sec. 1.82 0.46<br />

Asynchrone M.F.C. 4 2490 9.6 sec. 2.10 0.52<br />

Asynchrone H.F.C. 4 2455 10.5 sec. 1.92 0.48<br />

Table 4.24 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 160611 5129.6 sec. - -<br />

Synchrone 2 163659 2823.0 sec. 1.82 0.91<br />

Asynchrone M.F.C. 2 160416 2612.4 sec. 1.96 0.98<br />

Asynchrone H.F.C. 2 160364 2625.0 sec. 1.95 0.97<br />

Synchrone 4 170821 1530.2 sec. 3.36 0.84<br />

Asynchrone M.F.C. 4 165453 1411.4 sec. 3.64 0.91<br />

Asynchrone H.F.C. 4 165288 1420.0 sec. 3.61 0.90<br />

Table 4.25 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.24


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 82532 2101.3 sec. - -<br />

Synchrone 2 91404 1264.2 sec. 1.66 0.83<br />

Asynchrone M.F.C. 2 89419 1142.5 sec. 1.84 0.92<br />

Asynchrone H.F.C. 2 89247 1158.5 sec. 1.80 0.90<br />

Synchrone 4 108310 820.1 sec. 2.56 0.64<br />

Asynchrone M.F.C. 4 94672 657.5 sec. 3.20 0.80<br />

Asynchrone H.F.C. 4 93895 671.6 sec. 3.12 0.78<br />

Table 4.26 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 10147 252.3 sec. - -<br />

Synchrone 2 11344 161.8 sec. 1.56 0.78<br />

Asynchrone M.F.C. 2 10988 149.6 sec. 1.69 0.84<br />

Asynchrone H.F.C. 2 10979 150.5 sec. 1.68 0.84<br />

Synchrone 4 13722 103.1 sec. 2.45 0.61<br />

Asynchrone M.F.C. 4 12260 90.9 sec. 2.77 0.69<br />

Asynchrone H.F.C. 4 12193 93.4 sec. 2.70 0.68<br />

Table 4.27 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 135963 1549.3 sec. - -<br />

Synchrone 2 128702 849.2 sec. 1.82 0.91<br />

Asynchrone M.F.C. 2 135774 793.9 sec. 1.94 0.97<br />

Asynchrone H.F.C. 2 135709 773.2 sec. 2.00 1.00<br />

Synchrone 4 143534 457.9 sec. 3.38 0.84<br />

Asynchrone M.F.C. 4 136188 427.7 sec. 3.62 0.91<br />

Asynchrone H.F.C. 4 138829 433.7 sec. 3.58 0.89<br />

Synchrone 8 152322 289.1 sec. 5.36 0.67<br />

Asynchrone M.F.C. 8 148868 237.0 sec. 6.54 0.82<br />

Asynchrone H.F.C. 8 138944 203.2 sec. 7.62 0.95<br />

Table 4.28 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.25


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 48707 467.5 sec. - -<br />

Synchrone 2 50449 248.6 sec. 1.88 0.94<br />

Asynchrone M.F.C. 2 48627 237.8 sec. 1.96 0.98<br />

Asynchrone H.F.C. 2 49935 262.7 sec. 1.78 0.89<br />

Synchrone 4 54249 166.3 sec. 2.80 0.70<br />

Asynchrone M.F.C. 4 51333 144.9 sec. 3.22 0.81<br />

Asynchrone H.F.C. 4 12791 159.8 sec. 2.92 0.73<br />

Synchrone 8 61630 93.6 sec. 5.00 0.62<br />

Asynchrone M.F.C. 8 55325 77.4 sec. 6.04 0.76<br />

Asynchrone H.F.C. 8 59982 90.2 sec. 5.18 0.65<br />

Table 4.29 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 4306 42.2 sec. - -<br />

Synchrone 2 4511 27.8 sec. 1.52 0.76<br />

Asynchrone M.F.C. 2 4514 23.2 sec. 1.82 0.91<br />

Asynchrone H.F.C. 2 4400 26.9 sec. 1.56 0.78<br />

Synchrone 4 4870 16.5 sec. 2.56 0.64<br />

Asynchrone M.F.C. 4 4567 14.0 sec. 3.00 0.75<br />

Asynchrone H.F.C. 4 4748 19.3 sec. 2.18 0.55<br />

Synchrone 8 5605 10.2 sec. 4.14 0.52<br />

Asynchrone M.F.C. 8 4859 8.1 sec. 5.20 0.65<br />

Asynchrone H.F.C. 8 4736 12.9 sec. 3.28 0.41<br />

Table 4.30 : Problème linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.26


2.3.2 Implémentation avec M.P.I.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 66219 871.5 sec. - -<br />

Synchrone 2 68706 481.7 sec. 1.80 0.90<br />

Asynchrone B.F.C. 2 66273 459.7 sec. 1.90 0.95<br />

Asynchrone M.F.C. 2 68469 440.1 sec. 1.98 0.99<br />

Asynchrone H.F.C 2 71259 474.3 sec. 1.84 0.92<br />

Synchrone 4 73216 275.4 sec. 3.20 0.80<br />

Asynchrone B.F.C. 4 79864 280.1 sec. 3.12 0.78<br />

Asynchrone M.F.C. 4 70938 233.6 sec. 3.72 0.93<br />

Asynchrone H.F.C 4 75851 256.0 sec. 3.40 0.85<br />

Table 4.31 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 24458 274.3 sec. - -<br />

Synchrone 2 26543 159.7 sec. 1.72 0.86<br />

Asynchrone B.F.C. 2 24378 144.8 sec. 1.90 0.95<br />

Asynchrone M.F.C. 2 24671 132.6 sec. 2.06 1.03<br />

Asynchrone H.F.C 2 24872 138.4 sec. 1.98 0.99<br />

Synchrone 4 30002 109.9 sec. 2.50 0.62<br />

Asynchrone B.F.C. 4 29774 95.2 sec. 2.88 0.72<br />

Asynchrone M.F.C. 4 26744 80.2 sec. 3.44 0.86<br />

Asynchrone H.F.C 4 29144 91.4 sec. 3.00 0.75<br />

Table 4.32 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.27


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 2112 27.0 sec. - -<br />

Synchrone 2 2300 19.8 sec. 1.36 0.68<br />

Asynchrone B.F.C. 2 2286 19.2 sec. 1.40 0.70<br />

Asynchrone M.F.C. 2 2246 18.8 sec. 1.44 0.72<br />

Asynchrone H.F.C 2 2208 19.1 sec. 1.42 0.71<br />

Synchrone 4 2670 16.6 sec. 1.64 0.41<br />

Asynchrone B.F.C. 4 2633 15.9 sec. 1.70 0.43<br />

Asynchrone M.F.C. 4 2371 15.8 sec. 1.70 0.43<br />

Asynchrone H.F.C 4 2521 16.8 sec. 1.60 0.40<br />

Table 4.33 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 160611 6018.1 sec. - -<br />

Synchrone 2 163659 3246.4 sec. 1.84 0.92<br />

Asynchrone B.F.C. 2 161855 3068.4 sec. 1.96 0.98<br />

Asynchrone M.F.C. 2 169077 2844.8 sec. 2.12 1.06<br />

Asynchrone H.F.C 2 161386 2881.5 sec. 2.08 1.04<br />

Synchrone 4 170821 1682.4 sec. 3.58 0.89<br />

Asynchrone B.F.C. 4 186606 1792.9 sec. 3.36 0.84<br />

Asynchrone M.F.C. 4 162902 1449.2 sec. 4.16 1.04<br />

Asynchrone H.F.C 4 180310 1665.8 sec. 3.60 0.90<br />

Table 4.34 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.28


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 82532 2444.7 sec. - -<br />

Synchrone 2 91404 1481.6 sec. 1.66 0.83<br />

Asynchrone B.F.C. 2 94344 1392.8 sec. 1.76 0.88<br />

Asynchrone M.F.C. 2 89184 1221.3 sec. 2.00 1.00<br />

Asynchrone H.F.C 2 81567 1113.7 sec. 2,20 1.10<br />

Synchrone 4 108310 909.21 sec. 2.68 0.67<br />

Asynchrone B.F.C. 4 110938 865.7 sec. 2.84 0.71<br />

Asynchrone M.F.C. 4 93007 665.1 sec. 3.68 0.92<br />

Asynchrone H.F.C 4 91780 658.1 sec. 3.70 0.92<br />

Table 4.35 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 10147 304.4 sec. - -<br />

Synchrone 2 11344 185.1 sec. 1.64 0.82<br />

Asynchrone B.F.C. 2 10969 176.8 sec. 1.72 0.86<br />

Asynchrone M.F.C. 2 10971 163.2 sec. 1.86 0.93<br />

Asynchrone H.F.C 2 12160 160.2 sec. 1.90 0.95<br />

Synchrone 4 13722 119.0 sec. 2.56 0.64<br />

Asynchrone B.F.C. 4 14320 118.2 sec. 2.6 0.65<br />

Asynchrone M.F.C. 4 12160 95.2 sec. 3.20 0.80<br />

Asynchrone H.F.C 4 12032 94.5 sec. 3.20 0.80<br />

Table 4.36 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.29


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 135963 1742.1 sec. - -<br />

Synchrone 2 138702 919.9 sec. 1.90 0.95<br />

Asynchrone B.F.C. 2 146486 919.9 sec. 1.90 0.95<br />

Asynchrone M.F.C. 2 136683 897.5 sec. 1.94 0.97<br />

Asynchrone H.F.C 2 137452 883.3 sec. 1.97 0.98<br />

Synchrone 4 143543 493.4 sec. 3.52 0.88<br />

Asynchrone B.F.C. 4 145445 463.6 sec. 3.76 0.94<br />

Asynchrone M.F.C. 4 136298 453.6 sec. 3.84 0.96<br />

Asynchrone H.F.C 4 141460 461.3 sec. 3.78 0.94<br />

Synchrone 8 152322 273.8 sec. 6.40 0.80<br />

Asynchrone B.F.C. 8 167893 274.3 sec. 6.36 0.79<br />

Asynchrone M.F.C. 8 138481 236.4 sec. 7.36 0.92<br />

Asynchrone H.F.C 8 138481 236.4 sec. 7.36 0.92<br />

Table 4.37 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 48707 525.5 sec. - -<br />

Synchrone 2 50449 282.9 sec. 1.86 0.93<br />

Asynchrone B.F.C. 2 49840 276.9 sec. 1.90 0.95<br />

Asynchrone M.F.C. 2 48249 269.1 sec. 1.96 0.98<br />

Asynchrone H.F.C 2 48829 261.7 sec. 2.00 1.00<br />

Synchrone 4 54249 165.2 sec. 3.20 0.80<br />

Asynchrone B.F.C. 4 50876 144.3 sec. 3.64 0.91<br />

Asynchrone M.F.C. 4 48416 142.1 sec. 3.68 0.92<br />

Asynchrone H.F.C 4 48960 142.2 sec. 3.68 0.92<br />

Synchrone 8 61630 105.2 sec. 5.00 0.62<br />

Asynchrone B.F.C. 8 67216 98.4 sec. 5.34 0.67<br />

Asynchrone M.F.C. 8 54466 86.8 sec. 6.08 0.76<br />

Asynchrone H.F.C 8 55064 86.7 sec. 6.08 0.76<br />

Table 4.38 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.30


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 4306 50.1 sec. - -<br />

Synchrone 2 4511 31.6 sec. 1.60 0.80<br />

Asynchrone B.F.C. 2 4370 33.4 sec. 1.50 0.75<br />

Asynchrone M.F.C. 2 4435 31.3 sec. 1.60 0.80<br />

Asynchrone H.F.C 2 4459 32.6 sec. 1.54 0.76<br />

Synchrone 4 4870 22.2 sec. 2.26 0.56<br />

Asynchrone B.F.C. 4 4509 21.3 sec. 2.36 0.58<br />

Asynchrone M.F.C. 4 4451 20.5 sec. 2.44 0.61<br />

Asynchrone H.F.C 4 4842 22.4 sec. 2.24 0.56<br />

Synchrone 8 5605 19.4 sec. 2.58 0.32<br />

Asynchrone B.F.C. 8 5595 16.2 sec. 3.10 0.39<br />

Asynchrone M.F.C. 8 4930 16.2 sec. 3.10 0.39<br />

Asynchrone H.F.C 8 4698 15.8 sec. 3.20 0.40<br />

Table 4.39 : Problème linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 92 837 points de discrétisation, 16 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.31


3 Expérimentations numériques pour un problème non-linéaire de convection-diffusion.<br />

Le problème traité dans ce paragraphe est le problème non-linéaire de convection-diffusion (4.3) présenté au<br />

paragraphe 1.1.2. La non-linéarité considérée est celle du graphe (a) de la figure 4.1.<br />

En prenant les mêmes valeurs pour les coefficients de convection a et b ainsi que pour le coefficient c, la<br />

matrice de discrétisation de la partie linéaire est une M-matrice quelle que soit la discrétisation centrée ou<br />

décentrée utilisée pour les termes de convection. L’opérateur Λ donné par l’équation (4.5) est donc la somme<br />

d’une M-matrice et d’un opérateur diagonal croissant. Les différents types d’algorithmes asynchrones, classiques<br />

et à communication flexible peuvent être appliqués à la résolution de ce problème non-linéaire.<br />

Les tableaux 4.40 à 4.63 présentent les différents résultats obtenus avec les versions P.V.M. puis M.P.I. des<br />

algorithmes. Au vu des résultats peu encourageants observés pour le problème linéaire, la version B.F.C. avec<br />

P.V.M. des algorithmes asynchrones n’a pas été implémentée pour le problème non-linéaire.<br />

Les problèmes considérés sont ceux de petite et grande taille avec 8 sous-domaines.<br />

Les enseignements tirés de ces expérimentations sont commentés au chapitre 3.3, page 4.44.<br />

3.1 Résultats des calculs avec discrétisation décentrée des termes de convection.<br />

3.1.1 Implémentation avec P.V.M.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 86809 1052.8 sec. - -<br />

Synchrone 2 89701 588.3 sec. 1.78 0.89<br />

Asynchrone M.F.C. 2 88338 549.8 sec. 1.92 0.96<br />

Asynchrone H.F.C. 2 87622 545.5 sec. 1.94 0.97<br />

Synchrone 4 95881 375.4 sec. 2.80 0.70<br />

Asynchrone M.F.C. 4 88544 287.7 sec. 3.66 0.91<br />

Asynchrone H.F.C. 4 72191 275.8 sec. 3.80 0.95<br />

Table 4.40 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.32


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 13190 126.0 sec. - -<br />

Synchrone 2 14290 80.2 sec. 1.57 0.79<br />

Asynchrone M.F.C. 2 13297 67.8 sec. 1.86 0.93<br />

Asynchrone H.F.C. 2 13253 67.6 sec. 1.86 0.93<br />

Synchrone 4 16331 53.3 sec. 2.36 0.59<br />

Asynchrone M.F.C. 4 15711 40.3 sec. 3.12 0.78<br />

Asynchrone H.F.C. 4 15678 41.0 sec. 3.08 0.77<br />

Table 4.41 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 2025 19.5 sec. - -<br />

Synchrone 2 2158 11.7 sec. 1.66 0.83<br />

Asynchrone M.F.C. 2 2127 11.4 sec. 1.70 0.85<br />

Asynchrone H.F.C. 2 2132 11.6 sec. 1.68 0.84<br />

Synchrone 4 2406 9.4 sec. 2.08 0.52<br />

Asynchrone M.F.C. 4 2513 7.3 sec. 2.68 0.67<br />

Asynchrone H.F.C. 4 2513 7.1 sec. 2.74 0.69<br />

Table 4.42 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 196220 6497.3 sec. - -<br />

Synchrone 2 200316 3649.3 sec. 1.78 0.89<br />

Asynchrone M.F.C. 2 196438 3502.9 sec. 1.86 0.93<br />

Asynchrone H.F.C. 2 197887 3532.0 sec. 1.84 0.92<br />

Synchrone 4 209395 1989.4 sec. 3.26 0.81<br />

Asynchrone M.F.C. 4 201061 1788.7 sec. 3.64 0.91<br />

Asynchrone H.F.C. 4 202431 1799.8 sec. 3.60 0.90<br />

Table 4.43 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.33


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 32961 831.1 sec. - -<br />

Synchrone 2 35684 517.1 sec. 1.60 0.80<br />

Asynchrone M.F.C. 2 33419 470.5 sec. 1.78 0.89<br />

Asynchrone H.F.C. 2 33625 473.3 sec. 1.76 0.88<br />

Synchrone 4 40763 331.2 sec. 2.50 0.63<br />

Asynchrone M.F.C. 4 38970 278.1 sec. 3.00 0.75<br />

Asynchrone H.F.C. 4 38975 278.4 sec. 3.00 0.75<br />

Table 4.44 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 5974 152.6 sec. - -<br />

Synchrone 2 6401 97.4 sec. 1.56 0.78<br />

Asynchrone M.F.C. 2 6445 92.8 sec. 1.64 0.82<br />

Asynchrone H.F.C. 2 6415 91.6 sec. 1.66 0.83<br />

Synchrone 4 7305 62.2 sec. 2.45 0.61<br />

Asynchrone M.F.C. 4 7500 56.7 sec. 2.70 0.67<br />

Asynchrone H.F.C. 4 7696 57.7 sec. 2.64 0.66<br />

Table 4.45 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.34


3.1.2 Implémentation avec M.P.I.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 86809 1143.0 sec. - -<br />

Synchrone 2 89701 631.0 sec. 1.80 0.90<br />

Asynchrone B.F.C. 2 91839 648.2 sec. 1.76 0.88<br />

Asynchrone M.F.C. 2 88563 612.2 sec. 1.88 0.94<br />

Asynchrone H.F.C. 2 88372 609.6 sec. 1.88 0.94<br />

Synchrone 4 95881 370.3 sec. 3.08 0.77<br />

Asynchrone B.F.C. 4 106972 385.9 sec. 2.96 0.74<br />

Asynchrone M.F.C. 4 91151 319.9 sec. 3.58 0.89<br />

Asynchrone H.F.C. 4 90259 320.5 sec. 3.58 0.89<br />

Table 4.46 : Problème non linéaire – Version M.P.I :coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 13190 143.3 sec. - -<br />

Synchrone 2 14290 90.7 sec. 1.58 0.79<br />

Asynchrone B.F.C. 2 13774 87.1 sec. 1.64 0.82<br />

Asynchrone M.F.C. 2 13285 86.3 sec. 1.66 0.83<br />

Asynchrone H.F.C. 2 13715 86.7 sec. 1.66 0.83<br />

Synchrone 4 16331 64.5 sec. 2.22 0.56<br />

Asynchrone B.F.C. 4 16028 57.1 sec. 2.50 0.63<br />

Asynchrone M.F.C. 4 15918 55.3 sec. 2.59 0.65<br />

Asynchrone H.F.C. 4 16285 57.7 sec. 2.48 0.62<br />

Table 4.47 : Problème non linéaire – Version M.P.I : coefficient de diffusion : ν = 10 −1 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.35


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 2025 25.1 sec. - -<br />

Synchrone 2 2158 19.1 sec. 1.32 0.66<br />

Asynchrone B.F.C. 2 2224 19.4 sec. 1.30 0.65<br />

Asynchrone M.F.C. 2 2202 19.7 sec. 1.28 0.64<br />

Asynchrone H.F.C. 2 2195 19.8 sec. 1.26 0.63<br />

Synchrone 4 2406 17.3 sec. 1.45 0.36<br />

Asynchrone B.F.C. 4 2911 17.9 sec. 1.40 0.35<br />

Asynchrone M.F.C. 4 2510 16.7 sec. 1.50 0.38<br />

Asynchrone H.F.C. 4 2499 16.6 sec. 1.50 0.38<br />

Table 4.48 : Problème non linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 196220 7268.5 sec. - -<br />

Synchrone 2 200316 3890.0 sec. 1.87 0.93<br />

Asynchrone B.F.C. 2 197226 3797.4 sec. 1.92 0.96<br />

Asynchrone M.F.C. 2 197989 3804.2 sec. 1.91 0.95<br />

Asynchrone H.F.C. 2 197916 3815.0 sec. 1.90 0.95<br />

Synchrone 4 209395 2136.5 sec. 3.40 0.85<br />

Asynchrone B.F.C. 4 219947 2154.8 sec. 3.36 0.84<br />

Asynchrone M.F.C. 4 203642 1977.5 sec. 3.68 0.92<br />

Asynchrone H.F.C. 4 202211 1950.1 sec. 3.72 0.93<br />

Table 4.49 : Problème non linéaire – Version M.P.I :coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.36


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 32961 894.6 sec. - -<br />

Synchrone 2 35684 551.0 sec. 1.62 0.81<br />

Asynchrone B.F.C. 2 34608 537.9 sec. 1.66 0.83<br />

Asynchrone M.F.C. 2 34043 523.0 sec. 1.72 0.86<br />

Asynchrone H.F.C. 2 33570 519.3 sec. 1.74 0.87<br />

Synchrone 4 40763 364.3 sec. 2.46 0.61<br />

Asynchrone B.F.C. 4 39622 311.5 sec. 2.88 0.72<br />

Asynchrone M.F.C. 4 39284 308.1 sec. 2.90 0.73<br />

Asynchrone H.F.C. 4 39482 314.1 sec. 2.62 0.66<br />

Table 4.50 : Problème non linéaire – Version M.P.I : coefficient de diffusion : ν = 10 −1 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitutiode restitution<br />

Séquentielle 1 5974 166.1 sec. - -<br />

Synchrone 2 6401 111.1 sec. 1.50 0.75<br />

Asynchrone B.F.C. 2 6534 109.5 sec. 1.52 0.76<br />

Asynchrone M.F.C. 2 6522 106.7 sec. 1.56 0.78<br />

Asynchrone H.F.C. 2 6470 109.3 sec. 1.52 0.76<br />

Synchrone 4 7305 74.5 sec. 2.24 0.56<br />

Asynchrone B.F.C. 4 7687 69.3 sec. 2.40 0.60<br />

Asynchrone M.F.C. 4 7683 69.3 sec. 2.40 0.60<br />

Asynchrone H.F.C. 4 7724 72.5 sec. 2.30 0.58<br />

Table 4.51 : Problème non linéaire – Version M.P.I : coefficient de diffusion : ν = 10 −2 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation décentrée des dérivées premières.<br />

4.37


3.2 Résultats des calculs avec discrétisation centrée des termes de convection.<br />

3.2.1 Implémentation avec P.V.M.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 86671 1016.8 sec. - -<br />

Synchrone 2 89568 591.6 sec. 1.72 0.86<br />

Asynchrone M.F.C. 2 87452 537.7 sec. 1.90 0.95<br />

Asynchrone H.F.C. 2 87952 557.1 sec. 1.82 0.91<br />

Synchrone 4 95748 348.7 sec. 2.92 0.73<br />

Asynchrone M.F.C. 4 93204 294.8 sec. 3.44 0.86<br />

Asynchrone H.F.C. 4 88263 273.2 sec. 3.72 0.93<br />

Table 4.52 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 12856 122.7 sec. - -<br />

Synchrone 2 13912 78.0 sec. 1.57 0.79<br />

Asynchrone M.F.C. 2 13049 68.4 sec. 1.80 0.90<br />

Asynchrone H.F.C. 2 13039 70.0 sec. 1.75 0.88<br />

Synchrone 4 15897 57.4 sec. 2.14 0.54<br />

Asynchrone M.F.C. 4 15262 42.3 sec. 2.90 0.73<br />

Asynchrone H.F.C. 4 15532 42.6 sec. 2.88 0.72<br />

Table 4.53 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.38


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 1371 13.5 sec. - -<br />

Synchrone 2 1456 8.9 sec. 1.52 0.76<br />

Asynchrone M.F.C. 2 1464 8.1 sec. 1.66 0.83<br />

Asynchrone H.F.C. 2 1439 8.4 sec. 1.60 0.80<br />

Synchrone 4 1617 7.0 sec. 1.92 0.48<br />

Asynchrone M.F.C. 4 1709 5.9 sec. 2.28 0.57<br />

Asynchrone H.F.C. 4 1773 6.3 sec. 2.14 0.53<br />

Table 4.54 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 196093 6515.1 sec. - -<br />

Synchrone 2 200181 3572.7 sec. 1.82 0.91<br />

Asynchrone M.F.C. 2 196242 3475.2 sec. 1.88 0.94<br />

Asynchrone H.F.C. 2 196357 3499.4 sec. 1.86 0.93<br />

Synchrone 4 209271 1980.0 sec. 3.30 0.82<br />

Asynchrone M.F.C. 4 201205 1775.6 sec. 3.66 0.92<br />

Asynchrone H.F.C. 4 202725 1814.4 sec. 3.60 0.90<br />

Table 4.55 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 32634 819.6 sec. - -<br />

Synchrone 2 35332 498.7 sec. 1.64 0.82<br />

Asynchrone M.F.C. 2 33573 484.4 sec. 1.70 0.85<br />

Asynchrone H.F.C. 2 33226 480.6 sec. 1.70 0.85<br />

Synchrone 4 40369 380.3 sec. 2.16 0.54<br />

Asynchrone M.F.C. 4 42151 323.2 sec. 2.54 0.64<br />

Asynchrone H.F.C. 4 38806 286.0 sec. 2.86 0.72<br />

Table 4.56 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.39


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 5051 132.8 sec. - -<br />

Synchrone 2 5406 85.4 sec. 1.56 0.78<br />

Asynchrone M.F.C. 2 5434 78.4 sec. 1.70 0.84<br />

Asynchrone H.F.C. 2 5436 80.6 sec. 1.66 0.83<br />

Synchrone 4 6171 53.0 sec. 2.50 0.62<br />

Asynchrone M.F.C. 4 6967 54.8 sec. 2.42 0.60<br />

Asynchrone H.F.C. 4 6846 55.2 sec. 2.40 0.60<br />

Table 4.57 : Problème non linéaire – Version P.V.M. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.40


3.2.2 Implémentation avec M.P.I.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 86671 1112.3 sec. - -<br />

Synchrone 2 89568 631.3 sec. 1.76 0.88<br />

Asynchrone B.F.C. 2 92198 642.3 sec. 1.74 0.87<br />

Asynchrone M.F.C. 2 88309 614.2 sec. 1.82 0.91<br />

Asynchrone H.F.C 2 88109 606.8 sec. 1.84 0.92<br />

Synchrone 4 95748 369.9 sec. 3.00 0.75<br />

Asynchrone B.F.C. 4 109401 396.1 sec. 2.80 0.70<br />

Asynchrone M.F.C. 4 90512 319.6 sec. 3.48 0.87<br />

Asynchrone H.F.C 4 96714 354.0 sec. 3.14 0.79<br />

Table 4.58 : Problème non linéaire – Version M.P.I. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 12856 135.6 sec. - -<br />

Synchrone 2 13912 88.7 sec. 1.52 0.76<br />

Asynchrone B.F.C. 2 14234 95.0 sec. 1.42 0.71<br />

Asynchrone M.F.C. 2 13435 83.3 sec. 1.62 0.81<br />

Asynchrone H.F.C 2 13325 86.1 sec. 1.58 0.79<br />

Synchrone 4 15897 63.9 sec. 2.12 0.53<br />

Asynchrone B.F.C. 4 15429 53.5 sec. 2.54 0.64<br />

Asynchrone M.F.C. 4 15287 54.3 sec. 2.50 0.63<br />

Asynchrone H.F.C 4 15858 57.5 sec. 2.36 0.59<br />

Table 4.59 : Problème non linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.41


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 1371 20.6 sec. - -<br />

Synchrone 2 1456 15.8 sec. 1.30 0.65<br />

Asynchrone B.F.C. 2 1520 16.5 sec. 1.26 0.63<br />

Asynchrone M.F.C. 2 1487 17.3 sec. 1.20 0.60<br />

Asynchrone H.F.C 2 1487 15.2 sec. 1.36 0.68<br />

Synchrone 4 1617 14.4 sec. 1.44 0.36<br />

Asynchrone B.F.C. 4 1721 13.9 sec. 1.48 0.37<br />

Asynchrone M.F.C. 4 1702 16.2 sec. 1.28 0.32<br />

Asynchrone H.F.C 4 1687 14.9 sec. 1.38 0.35<br />

Table 4.60 : Problème non linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 48 641 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 196093 7057.0 sec. - -<br />

Synchrone 2 200181 3901.2 sec. 1.80 0.90<br />

Asynchrone B.F.C. 2 205800 4033.4 sec. 1.75 0.87<br />

Asynchrone M.F.C. 2 196619 3766.6 sec. 1.88 0.94<br />

Asynchrone H.F.C 2 197153 3786.4 sec. 1.86 0.93<br />

Synchrone 4 209271 2146.8 sec. 3.29 0.82<br />

Asynchrone B.F.C. 4 218723 2154.2 sec. 3.28 0.82<br />

Asynchrone M.F.C. 4 203484 1990.5 sec. 3.54 0.89<br />

Asynchrone H.F.C 4 207090 2031.1 sec. 3.48 0.87<br />

Table 4.61 : Problème non linéaire – Version M.P.I. : coefficient de diffusion : ν = 1 ; coefficients de convection : a = 1.5,<br />

b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.42


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 32634 987.4 sec. - -<br />

Synchrone 2 35332 554.8 sec. 1.78 0.89<br />

Asynchrone B.F.C. 2 33907 542.7 sec. 1.82 0.91<br />

Asynchrone M.F.C. 2 33707 514.1 sec. 1.92 0.96<br />

Asynchrone H.F.C 2 33672 519.2 sec. 1.90 0.95<br />

Synchrone 4 40369 358.1 sec. 2.76 0.69<br />

Asynchrone B.F.C. 4 39825 311.1 sec. 3.20 0.80<br />

Asynchrone M.F.C. 4 37890 305.5 sec. 3.24 0.81<br />

Asynchrone H.F.C 4 38840 311.2 sec. 3.20 0.80<br />

Table 4.62 : Problème non linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −1 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitutiode restitution<br />

Séquentielle 1 5051 142.2 sec. - -<br />

Synchrone 2 5406 95.7 sec. 1.48 0.74<br />

Asynchrone B.F.C. 2 5536 91.9 sec. 1.54 0.77<br />

Asynchrone M.F.C. 2 5464 90.0 sec. 1.58 0.79<br />

Asynchrone H.F.C 2 5469 91.1 sec. 1.56 0.78<br />

Synchrone 4 6171 65.7 sec. 2.16 0.54<br />

Asynchrone B.F.C. 4 6483 58.5 sec. 2.44 0.61<br />

Asynchrone M.F.C. 4 6545 60.7 sec. 2.34 0.59<br />

Asynchrone H.F.C 4 6528 63.3 sec. 2.24 0.56<br />

Table 4.63 : Problème non linéaire – Version M.P.I. : coefficient de diffusion : ν = 10 −2 ; coefficients de convection :<br />

a = 1.5, b = 0.5 avec 130 305 points de discrétisation, 8 sous-domaines, discrétisation centrée des dérivées premières.<br />

4.43


3.3 Commentaires sur les résultats du problème non-linéaire.<br />

Nous obtenons des résultats et des tendances comparables à ceux obtenus pour le problème linéaire. Pour les<br />

problèmes de grande taille les algorithmes asynchrones sont meilleurs que les algorithmes synchrones.<br />

Dans la version P.V.M., lorsque les paramètres sont identiques, on constate que les efficacités obtenues pour<br />

les versions linéaires et non-linéaires sont comparables ; dans certains cas les performances des algorithmes<br />

asynchrones sont meilleures. Par contre pour les algorithmes synchrones, les efficacités sont moins bonnes pour<br />

le problème non-linéaire. Pour ce problème de convection-diffusion non-linéaire, les algorithmes asynchrones<br />

avec P.V.M. ne sont pas pénalisés par la non-linéarité.<br />

Cette remarque est un peu moins vraie pour la version M.P.I, où les algorithmes synchrones et asynchrones<br />

obtiennent des efficacités moins bonnes pour un problème non-linéaire que pour un problème linéaire de même<br />

taille.<br />

4 Synthèse des différents résultats.<br />

Si nous nous intéressons dans un premier temps aux résultats du problème linéaire obtenus avec P.V.M., nous<br />

pouvons remarquer un mauvais fonctionnement de la version asynchrone B.F.C. dans de nombreuses situations.<br />

La version asynchrone M.F.C. est la version la meilleure et la plus régulière : elle est plus rapide en terme de<br />

temps de restitution et garde un bon comportement lorsque l’on fait varier le nombre de processeurs. La version<br />

asynchrone H.F.C. qui ne peut être appliquée que pour une discrétisation décentrée des termes de convection<br />

donne des résultats plus contrastés et son comportement dépend fortement de l’occupation du réseau.<br />

Avec M.P.I. la version B.F.C. fonctionne pour tous les problèmes linéaires envisagés et donne des résultats<br />

comparables aux autres versions asynchrones. La version asynchrone M.F.C. est toujours la version la plus<br />

régulière. Enfin pour les discrétisations décentrées, la version asynchrone H.F.C. montre un comportement<br />

meilleur qu’avec P.V.M. et on obtient pour les problèmes de grande taille ( les plus susceptibles d’intéresser la<br />

parallélisation ) les meilleurs temps de restitution.<br />

Nous obtenons pour les problèmes non-linéaires des résultats comparables à ceux obtenus pour le problème<br />

linéaire. Il faut cependant noter qu’avec les algorithmes asynchrones les efficacités restent intéressantes contrairement<br />

à la version synchrone où elles ont tendance à s’écrouler.<br />

Finalement nous pouvons remarquer que les algorithmes asynchrones sont vraiment efficaces pour les problèmes<br />

de grande taille ; c’est avec ces problèmes que l’on obtient de façon régulière de bons résultats pour toutes les<br />

versions asynchrones. De plus il convient d’ajouter qu’il est préférable de conserver plus de deux sous-domaines<br />

par processeurs afin d’obtenir de bonnes efficacités et de ne pas obligatoirement chercher à équilibrer la charge<br />

de travail entre les processeurs.<br />

5 Comparaison P.V.M. et M.P.I.<br />

Quand on compare les résultats obtenus avec P.V.M. et M.P.I, pour les différents problèmes considérés,<br />

linéaires ou non, on remarque tout d’abord que de façon générale la version M.P.I. donne de plus mauvais temps<br />

que la version P.V.M. Ceci est vrai quelque soit le type d’algorithme, séquentiel ou parallèles. Cela provient<br />

certainement de l’environnement d’exécution sur l’I.B.M.–SP2.<br />

4.44


Les versions P.V.M. des algorithmes asynchrones sont aussi meilleures en terme d’efficacité que les versions<br />

M.P.I. pour les problèmes non-linéaires que nous avons traités.<br />

Par contre au vu des résultats ( efficacité et speed up ), de la facilité et du confort de mise en œuvre, M.P.I.<br />

est mieux adapté aux algorithmes asynchrones que P.V.M. pour les problèmes linéaires. Les versions M.P.I.<br />

des algorithmes asynchrones fonctionnent à coup sûr contrairement à P.V.M. où la version Basse Fréquence de<br />

Communication conduit à des erreurs lors de l’exécution.<br />

De plus, avec M.P.I. et pour les problèmes linéaires de grande taille, les algorithmes asynchrones avec communication<br />

flexible permettent d’obtenir les meilleurs résultats.<br />

4.45


4.46


Rfrences du chapitre 4.<br />

1. A. Bermudez, Contrôle par feedback à priori de systèmes régis par des équations aux dérivées partielles de<br />

type elliptique, Rapport de Recherche INRIA , 288 (1978).<br />

2. L. Giraud et P. Spitéri, Résolution parallèle de problèmes aux limites non-linéaires, M.2 A.N., 25 (1991),<br />

pp. 73-100.<br />

3. L. Giraud and P. Spitéri, Implementations of parallel solutions for nonlinear boundary value problems,<br />

Parallel Computing’91 Advances in Parallel Computing, Evans, Joubert, Liddel ed., Amsterdam : North-<br />

Holland, (1992), pp. 203-211.<br />

4. G.H. Golub et G.A. Meurant, Résolution numérique des grands systèmes linéaires, Eyrolles, (1983).<br />

5. R. Guivarch, H.C. Boisson, J.C. Miellou et P. Spitéri, Parallélisation de méthodes de sous-domaines pour la<br />

résolution de problèmes aux limites, Congrès National d’Analyse Numérique, Super-Besse (1995).<br />

6. R. Guivarch, H.C. Boisson et P. Spitéri, Résolution de problèmes de mécanique des fluides par des méthodes<br />

paralléles de décomposition de domaines, Congrès National d’Analyse Numérique, La Londe Les Maures<br />

(1996).<br />

7. R. Guivarch, P. Spitéri, J.C. Miellou and D. El Baz, Parallelization of subdomains methods with overlapping<br />

for the solution of convection-diffusion problem, Worshop on iterative methods, International Linear Algebra<br />

Year, Cerfacs Toulouse (1996), Rapport IRIT/96-36-R.<br />

8. R. Guivarch, Résolution en mécanique des fluides d’un problème de convection-diffusion par la méthode<br />

alternée de Schwarz, Journée sur l’utilisation des principaux environnements de programmation parallèle<br />

dans des applications de calcul scientifiques et de simulation, organisée par le CUTIS, le CAL MIP, la DR<br />

CNRS et le LAAS CNRS, Toulouse (1996).<br />

9. R. Guivarch, P. Spitéri, Solution of convection-diffusion problem by Schwarz alternating method using P.V.M.<br />

and M.P.I. on the I.B.M.-SP2, Parallel Computing ’97 (ParCo97) in Bonn, 16-19 September 1997.<br />

10. L. Meylheuc, Modélisation d’écoulements de fluides viscoélastiques par la méthode des volumes finis, Thèse<br />

de Doctorat, Université de Bordeaux 1, (1996).<br />

11. J.C. Miellou et P. Spitéri, Un critère de convergence pour des méthodes générales de point fixe, M.2 A.N.,<br />

(1985), pp. 170–201.<br />

12. J.M. Ortega and W.C. Rheinboldt, Iterative solution of nonlinear equations in several variables, New York :<br />

Academic Press, (1970).<br />

13. K. Revelli, Etude des instabilités gravitationnelles dans le procédé d’électrophorèse de zone à écoulement<br />

continu, Thèse de Doctorat, Université Paul Sabatier de Toulouse ( Sciences ), (1995).<br />

14. P. Spitéri, Simulation d’exécutions parallèles pour la résolution d’inéquations variationnelles stationnaires,<br />

Revue E.D.F., série C, n ◦ 1 (1983), pp. 149–159.<br />

15. P. Spitéri, Contribution à l’étude de grands systèmes non-linéaires, comportement d’algorithmes itératifs,<br />

stabilité de systèmes continus, Thèse de Doctorat ès Sciences, Besançon (1984).<br />

16. P. Spitéri, Parallel asynchronous algorithms for solving boundary value problems, In Parallel algorithms, Eds<br />

M. Cosnard et al., North Holland, (1986) pp. 73–84.<br />

4.47


4.48


Chapitre 5<br />

Application des algorithmes<br />

asynchrones et synchrones à un<br />

problème d’écoulements<br />

incompressibles en formulation<br />

fonction courant-rotationnel.<br />

Introduction.<br />

Dans leur formulation classique pression-vitesse, les équations de Navier-Stokes sont constituées par une<br />

équation d’évolution, permettant de déterminer la quantité de mouvement, couplée à une équation de conservation<br />

de la masse [3], [10]. L’aspect évolutif des équations de Navier-Stokes implique des difficultés spécifiques<br />

liées à la stabilité des schémas numériques ; dans le but de résoudre ces difficultés, on utilise des méthodes<br />

implicites qui conduisent après une linéarisation appropriée à résoudre de grands systèmes algébriques linéaires.<br />

Dans ce cas la résolution de ce système d’équations nécessite de résoudre le système algébrique de l’équation<br />

de conservation à chaque pas de temps. Étant donnée la grande taille de ces systèmes, le calcul parallèle est<br />

la seule méthode pratique pour résoudre ce type de problèmes. Cependant les méthodes de décomposition de<br />

domaines se prêtent mal à la résolution de l’équation de conservation de la masse. En effet il s’avère difficile<br />

d’assurer la conservation globale de la masse à partir de la conservation locale sur chaque sous-domaine.<br />

Cependant il est possible de mettre en œuvre les méthodes de décomposition de domaines si on modifie la<br />

formulation des équations de Navier-Stokes. En utilisant la formulation fonction courant-rotationnel, la pression<br />

est éliminée du système d’équations et le système résultant se compose d’une équation de conservation de<br />

Poisson couplée à une équation d’évolution de convection-diffusion [11], [28]. De plus en 2D, le champ évolutif<br />

des vitesses est réduit à une seule composante et cela simplifie la mise en œuvre des méthodes de décomposition<br />

de domaines. Cette formulation présente un avantage supplémentaire par rapport à la formulation directe dans<br />

la mesure où la condition de conservation de la masse n’apparaît plus explicitement.<br />

5.1


Le but du présent chapitre est de s’intéresser à la formulation fonction courant-rotationnel pour résoudre le<br />

système couplé des équations de Navier-Stokes en utilisant des méthodes de sous-domaines. La méthode alternée<br />

de Schwarz avec recouvrement est bien adaptée pour résoudre les problèmes de convection-diffusion [21]. Les<br />

opérateurs impliqués dans cette formulation permettent d’utiliser sous certaines conditions les algorithmes<br />

synchrones et asynchrones classiques ainsi que les algorithmes asynchrones avec communication flexible.<br />

Pour l’équation de Poisson apparaissant dans la formulation courant-rotationnel, nous utilisons une variante<br />

de la méthode alternée de Schwarz proposée par J.C. Miellou [24] ; dans ce cas de figure, cette méthode s’avère<br />

être une méthode directe et est particulièrement efficace en terme de temps de calcul pour résoudre des problèmes<br />

discrétisés de grande taille tout en étant très bien adaptée à l’implémentation parallèle [16]. Nous pouvons noter<br />

que cette méthode peut être aussi appliquée à l’équation de convection-diffusion mais nous verrons par la suite<br />

que pour un problème d’évolution, cette méthode est moins intéressante.<br />

Pour les deux variantes de la méthode alternée de Schwarz, les propriétés des opérateurs discrets sont telles<br />

que la convergence des algorithmes itératifs séquentiels et parallèles, synchrones ou asynchrones est garantie<br />

[27], [26], [34]. Nous pourrons donc utiliser les critères exposés aux chapitres 1 et 2.<br />

Les méthodes exposées précédemment sont testées sur le problème test de la cavité entraînée [31]. Les équations<br />

du problème sont présentées dans le paragraphe 1, les algorithmes numériques dans le paragraphe 2 et les<br />

expérimentations numériques dans le paragraphe 3 et une synthèse des résultats au paragraphe 4.<br />

5.2


1 Equations du problème.<br />

Soit Ω un ouvert borné inclus dans IR 2 . La formulation pression-vitesse des équations de Navier-Stokes pour<br />

les fluides incompressibles s’écrit de la manière suivante :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

∂u ∂v<br />

∂x + ∂y = 0<br />

∂u ∂u ∂u ∂p<br />

∂t + u ∂x + v ∂y = − ∂x + ν∆u<br />

∂v ∂v ∂v ∂p<br />

∂t + u ∂x + v ∂y = − ∂y + ν∆v<br />

u /∂Ω = UΓ ; v /∂Ω = VΓ<br />

⎫<br />

u(x, y, t = 0) = U0 ; v(x, y, t = 0) = V0<br />

⎪⎬<br />

, sur Ω × [0, T ]<br />

⎪⎭<br />

où t est le temps courant, T est l’horizon, u et v sont les composantes du vecteur vitesse ( Vx = u ; Vy = v ),<br />

p est la pression scalaire, (U0; V0) sont les conditions initiales, (UΓ; VΓ) les conditions aux limites. La viscosité<br />

cinématique ν est liée au nombre adimensionnel de Reynolds (Re = ν −1 ).<br />

Ces équations peuvent être exprimées en utilisant la fonction de courant Ψ et la fonction rotationnel ω ;<br />

ces deux quantités vectorielles étant réduites dans le problème 2D à la composante perpendiculaire au plan<br />

d’écoulement du fluide. Les relations entre ces variables et les variables de la formulation pression-vitesse sont<br />

les suivantes :<br />

u = ∂Ψ<br />

∂y<br />

v = − ∂Ψ<br />

∂x<br />

⎫<br />

⎪⎬<br />

ω = − ∂u ∂v<br />

∂y + ∂x<br />

⎪⎭ ⇔ Ψ = (u dy − v dx)<br />

Les équations en formulation fonction courant-rotationnel s’énoncent de la façon suivante :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

−∆Ψ = ω<br />

∂ω<br />

∂t<br />

∂ω ∂ω<br />

+ u ∂x + v ∂y − ν∆ω = 0<br />

V /∂Ω = VΓ<br />

ω(x, y, 0) = ω0<br />

⎫<br />

⎬<br />

, sur Ω × [0, T ]<br />

⎭<br />

Le principal avantage de cette formulation est l’élimination de la pression comme variable indépendante. De<br />

plus dans le cas bidimensionnel seules deux équations scalaires sont à résoudre. Cependant, les conditions aux<br />

limites sont généralement exprimées en terme de vitesse et il est donc nécessaire de transformer ces conditions<br />

pour la fonction courant. Notons que pour la fonction rotationnel qui est une variable intermédiaire, aucune<br />

condition limite n’est requise [11].<br />

On peut montrer qu’une ligne de courant i.e. une ligne normale au champ de vitesse, est définie par une valeur<br />

constante de Ψ. Quand l’écoulement suit une paroi imperméable, celle ci peut être considérée comme une ligne<br />

de courant. En utilisant une telle condition, il est possible d’imposer une valeur nulle pour la vitesse normale<br />

à la paroi. Mais dans le but d’empêcher des vitesses tangentielles, par exemple pour une condition d’adhérence<br />

5.3<br />

(5.1)<br />

(5.2)<br />

(5.3)


qui apparaît sur une paroi fixe quand le fluide est visqueux, une autre condition doit être introduite via une<br />

contrainte particulière sur la vitesse aux frontières.<br />

Plus généralement la fonction de courant peut être calculée en intégrant le champ de vitesse le long de la<br />

frontière lorsque celui-ci est spécifié. Les conditions aux limites de Dirichlet peuvent être alors appliquées à la<br />

fonction courant. Pour la fonction rotationnel, les relations entre les valeurs sur les frontières et les valeurs à<br />

l’intérieur du domaine doivent être calculées.<br />

Afin de résoudre le problème couplé en régime permanent, on effectue une une discrétisation en temps implicite<br />

du problème. Dans la plus simple formulation d’Euler pour l’équation d’évolution, il est nécessaire de résoudre<br />

le système couplé suivant à chaque pas de temps :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

kω ′ + ū ∂ω′<br />

∂x<br />

ω ′ /Γ = g(ū, ¯v, ¯ Ψ, ¯ω)<br />

−∆Ψ ′ = ω ′<br />

Ψ ′ /Γ = 0<br />

+ ¯v ∂ω′<br />

∂y − ν∆ω′ = k¯ω, dans Ω<br />

où les valeurs ’ correspondent aux valeurs de l’instant courant et les valeurs¯sont celles de l’instant précédent.<br />

k = (∆t) −1 est l’inverse du pas de temps. Le calcul des conditions aux limites ω /Γ pour le problème de la cavité<br />

entraînée est explicité au paragraphe 3.<br />

2 Algorithmes numériques.<br />

Il a été montré dans le paragraphe précédent que la résolution de l’équation de Navier-Stokes définie dans<br />

un domaine bidimensionnel Ω conduit à la résolution de deux problèmes couplés aux limites ; le premier est<br />

un problème classique de Poisson et le second un problème de convection-diffusion avec dans les deux cas<br />

des conditions aux limites de Dirichlet. Nous nous intéressons dans ce paragraphe à la résolution de ces deux<br />

problèmes. Étant donné les caractéristiques de chaque problème, nous allons résoudre le premier par une variante<br />

de la méthode alternée de Schwarz, tandis que nous utiliserons la méthode classique de Schwarz déjà mise en<br />

œuvre dans les chapitres précédents pour résoudre l’équation de convection-diffusion.<br />

2.1 Méthode alternée de Schwarz classique pour l’équation de convection-diffusion.<br />

Nous considérons tout d’abord l’équation d’évolution de convection-diffusion ; celle-ci peut être discrétisée<br />

selon un schéma implicite en temps ; ainsi le problème est remplacé par une suite de problèmes stationnaires du<br />

type :<br />

⎧<br />

⎨<br />

⎩<br />

−ν∆ω + u ∂ω ∂ω<br />

∂x + v ∂y + kω = k¯ω, sur Ω<br />

ω /∂Ω = g<br />

où ¯ω est la valeur de ω à l’instant précédent.<br />

Le problème (5.5) est un problème de convection-diffusion linéaire déjà rencontré au chapitre 4 ; nous considérons<br />

dans le cas le plus simple une discrétisation par différences finies selon un pas d’espace h uniforme ; les résultats<br />

5.4<br />

(5.4)<br />

(5.5)


suivants restent cependant valides si nous utilisons des maillages non uniformes ou des méthodes par éléments<br />

finis ou volumes finis ( voir [16], [32], [34] ).<br />

Le Laplacien est discrétisé en utilisant un schéma de différences finies classique à cinq points. Les termes de<br />

convection peuvent être discrétisées par des schémas de discrétisation centrés ou décentrés en accord avec les<br />

signes de u et v ( voir l’équation (4.2) ).<br />

2.1.1 Cas des schémas de discrétisation décentrés.<br />

Pour les schémas de discrétisation décentrés des dérivées premières, nous montrons en appliquant le résultat<br />

de la proposition 4.1 du chapitre 4 que la matrice de discrétisation obtenue est une M-matrice. Le problème<br />

(5.5), discrétisé à l’aide de ces schémas rentre donc dans le cadre de la H-accrétivité et aussi des M-fonctions.<br />

Ainsi les algorithmes parallèles synchrones et asynchrones classiques et les algorithmes parallèles asynchrones<br />

avec communication flexible convergent.<br />

2.1.2 Cas des schémas de discrétisation centrés.<br />

Pour les schémas de discrétisation centrés des termes de convection, on peut montrer par une variante de<br />

Chazan-Miranker [5] ( pour de plus amples détails voir aussi [16], [26], [32] ) qu’il est toujours possible de<br />

prendre un pas de temps ∆t suffisamment petit de telle façon à ce que la matrice de discrétisation soit à<br />

diagonale dominante stricte ou soit irréductible à diagonale dominante. ∆t doit être choisi en fonction du pas<br />

d’espace h, du coefficient de diffusion et des composantes de la vitesse. Plus précisément si la condition suivante,<br />

analogue pour ce problème de la condition (4.15), est vérifiée :<br />

|u| + |v| ≤ 4ν<br />

+ kh (5.6)<br />

h<br />

avec |.| la norme infinie, alors la matrice de discrétisation est une H-matrice. Les algorithmes synchrones et<br />

asynchrones classiques appliqués à ce problème convergent.<br />

Remarque 5.1. Suivant l’évolution de la vitesse, nous pouvons adapter le pas de temps, pour qu’à tout<br />

moment le critère (5.6) soit vérifié.<br />

Les algorithmes asynchrones avec communication flexible sont plus délicats à appliquer avec ce type de<br />

discrétisation centrée des termes de convection. Le critère suivant qui est déduit de la proposition 4.7 et qui<br />

permet à la matrice de discrétisation d’être une Z-matrice<br />

⎧<br />

⎨<br />

⎩<br />

| u | ≤ 2ν<br />

h ,<br />

| v | ≤ 2ν<br />

h ,<br />

est plus difficile à vérifier. En effet il ne fait plus intervenir le pas de temps. Si l’on ne connaît pas à priori<br />

l’évolution de la vitesse, nous ne sommes pas assurés de la convergence des algorithmes asynchrones avec<br />

communication flexible.<br />

5.5<br />

(5.7)


2.2 Une variante efficace de la méthode alternée de Schwarz pour l’équation de diffusion.<br />

La méthode alternée de Schwarz classique peut être aussi utilisée pour la résolution de l’équation de diffusion<br />

; dans ce paragraphe nous considérons une variante de la méthode alternée de Schwarz qui s’avère<br />

expérimentalement plus efficace pour ce type de problème que l’algorithme classique. Cette variante a été<br />

introduite et analysée par J.C. Miellou [24].<br />

Pour exposer cette variante, nous reprenons les notations du paragraphe 3.1 du chapitre 1 pour décrire le<br />

découpage du domaine Ω en N sous-domaines. Ces notations sous les suivantes :<br />

Ω = N i=1 Ωi,<br />

<br />

Ωi+1 = ∅,<br />

Ωi<br />

γ1 <br />

i = ∂Ωi Ωi−1, i ∈ {2, . . . , N},<br />

γ2 <br />

i = ∂Ωi Ωi+1, i ∈ {1, . . . , N − 1},<br />

<br />

Γi = ∂Ωi ∂Ω<br />

où ∂Ω est la frontière du domaine Ω, ∂Ωi est la frontière de Ωi, γ 1 i ( resp. γ2 i<br />

droite ) du sous-domaine Ωi, Γi est la restriction de ∂Ω à Ωi.<br />

Ω1<br />

1<br />

γ γ γ 1<br />

2<br />

Ω 2 Ω 3 Ω 4<br />

γ γ<br />

2<br />

1<br />

γ γ 1<br />

2 2 2 2<br />

γ<br />

1 3 4 3 5 4<br />

Figure 5.1 : Exemple de décomposition du domaine Ω par cinq sous-domaines.<br />

) est la frontière gauche ( resp.<br />

Pour i ∈ {1, . . . , N}, nous pouvons associer au problème de diffusion le système suivant de problèmes aux<br />

limites : ⎧⎪ ⎨<br />

⎪⎩<br />

−∆Ψi = ωi sur Ωi<br />

Ψi /Γi = 0<br />

Ψi /γ 1 i<br />

Ψi /γ 2 i<br />

= Ψi−1 /γ 1 i<br />

= Ψi+1 /γ 2 i<br />

pour 2 ≤ i ≤ N<br />

pour 1 ≤ i ≤ N − 1<br />

5.6<br />

Ω 5<br />

(5.8)


Pour i ∈ {1, . . . , N}, le système (5.8) peut être réécrit en deux systèmes :<br />

et ⎧⎪ ⎨<br />

⎪⎩<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

−∆ ¯ Ψi = ωi sur Ωi<br />

¯Ψi /Γi = 0<br />

¯Ψi /γ 1 i<br />

¯Ψi /γ 2 i<br />

−∆ ˜¯ Ψi = 0 sur Ωi<br />

˜¯Ψi /Γi = 0<br />

˜¯Ψi /γ 1 i<br />

˜¯Ψi /γ 2 i<br />

= ˜¯ Ψi−1 /γ 1 i<br />

= ˜¯ Ψi+1 /γ 2 i<br />

= 0 pour 2 ≤ i ≤ N<br />

= 0 pour 1 ≤ i ≤ N − 1<br />

+ ¯ Ψi−1 /γ 1 i<br />

+ ¯ Ψi+1 /γ 2 i<br />

pour 2 ≤ i ≤ N<br />

pour 1 ≤ i ≤ N − 1<br />

Soient ( ¯ Ψi, ˜¯ Ψi) les solutions de (5.9) et (5.10) ; alors la solution de (5.8) est obtenue par superposition :<br />

(5.9)<br />

(5.10)<br />

Ψi = ¯ Ψi + ˜¯ Ψi pour i ∈ {1, . . . , N} (5.11)<br />

La solution de (5.9) peut être obtenue facilement contrairement à la solution de (5.10) qui nécessite la résolution<br />

au préalable d’un problème de point fixe permettant de déterminer ses conditions aux limites [24].<br />

En utilisant la numérotation des frontières donnée par la figure 5.1, la matrice T associée au problème de<br />

point fixe a, dans le cas d’une décomposition par cinq sous-domaines, la forme suivante :<br />

⎛<br />

⎜<br />

T = ⎜<br />

⎝<br />

I −T γ2<br />

1<br />

γ 1 2<br />

−T γ1<br />

2<br />

γ 2 1<br />

−τ γ1<br />

2<br />

γ 1 3<br />

0 0 0 0 0 0<br />

I 0 −τ γ2<br />

2<br />

γ 2 1<br />

0 I −T γ2<br />

2<br />

γ 1 3<br />

0 0 −T γ1<br />

3<br />

γ 2 2<br />

0 0 −τ γ1<br />

3<br />

γ 1 4<br />

0 0 0 0<br />

0 0 0 0<br />

I 0 −τ γ2<br />

3<br />

γ 2 2<br />

0 I −T γ2<br />

3<br />

γ 1 4<br />

0 0 0 0 −T γ1<br />

4<br />

γ 2 3<br />

0 0 0 0 −τ γ1<br />

4<br />

γ 1 5<br />

0 0<br />

0 0<br />

I 0 −τ γ2<br />

4<br />

γ 2 3<br />

0 I −T γ2<br />

4<br />

γ 1 5<br />

0 0 0 0 0 0 −T γ1<br />

5<br />

γ 2 4<br />

I<br />

⎞<br />

⎟<br />

⎠<br />

(5.12)<br />

Les matrices T β α et τ δ γ représentent les interactions des frontières de recouvrement d’un sous-domaine sur les<br />

frontières des sous-domaines voisins incluses dans ce sous-domaines. Ainsi si on se place dans le sous-domaine<br />

Ω2, T γ1<br />

2<br />

γ 2 1<br />

dans Ω2.<br />

et τ γ2<br />

2<br />

γ 2 1<br />

sont respectivement les interactions de γ 1 2 et γ 2 2, frontières de Ω2 sur γ 2 1, frontière de Ω1 incluse<br />

5.7


Ω1<br />

Τ<br />

τ<br />

Ω2 Ω3 Ω4<br />

1<br />

γ γ γ<br />

2<br />

1<br />

γ γ<br />

2<br />

1<br />

γ γ 1<br />

2 2 2 2<br />

γ<br />

1 3 4 3 5 4<br />

Figure 5.2 : Interactions entre les frontières de recouvrement.<br />

Dans le cas de figure où les cinq sous-domaines sont identiques, la matrice T a la forme suivante :<br />

⎛<br />

I −T 0 0 0 0 0 0<br />

⎞<br />

⎜<br />

−T<br />

⎜ −τ<br />

⎜ 0<br />

T = ⎜ 0<br />

⎜ 0<br />

⎜<br />

⎝ 0<br />

I<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

I<br />

−T<br />

−τ<br />

0<br />

0<br />

−τ<br />

−T<br />

I<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

I<br />

−T<br />

−τ<br />

0<br />

0<br />

−τ<br />

−T<br />

I<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

I<br />

0<br />

0<br />

0<br />

0<br />

−τ<br />

−T<br />

⎟<br />

⎠<br />

0 0 0 0 0 0 −T I<br />

Ω5<br />

(5.13)<br />

Pour simplifier la présentation des algorithmes, nous considérons par la suite le cas où tous les sous-domaines<br />

sont identiques.<br />

Compte tenu de la propriété de décroissance du noyau de Poisson [24], les sous-matrices T représentent les<br />

interactions fortes entre les frontières. Ces sous-matrices sont constituées de coefficients d’amplitude importante ;<br />

cette propriété montre que les inconnues sur une frontière de recouvrement d’un sous-domaine Ωj, intérieure à<br />

un sous-domaine Ωi sont fortement couplées aux inconnues de la frontière du sous-domaine Ωi la plus proche.<br />

Par contre les sous-matrices τ prennent en compte les interactions faibles entre les frontières éloignées ; ces<br />

sous-matrices ont des coefficients de faible amplitude. Cette propriété indique que les inconnues sur une frontière<br />

de recouvrement d’un sous-domaine Ωj, intérieure à un sous-domaine Ωi sont faiblement couplées aux inconnues<br />

de la frontière la plus éloignée de ce sous-domaine.<br />

Si on note b r i = ¯ Ψj /γ r i<br />

avec r = {1, 2} et j = i ± 1 et bi le vecteur de composantes b r i<br />

alors le problème (5.10)<br />

peut être résolu moyennant la résolution au préalable d’une équation de point fixe associée au problème linéaire<br />

suivant :<br />

T ϕ = b. (5.14)<br />

La solution de (5.14) fournit les conditions aux limites nécessaires à la résolution du problème (5.10). Ainsi,<br />

5.8


après la résolution de (5.14), la solution de (5.10) est obtenue en résolvant les problèmes suivants pour i ∈<br />

{1, . . . , N} :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

−∆ ˜¯ Ψi = 0 sur Ωi<br />

˜¯Ψi /Γi = 0<br />

˜¯Ψi /γ 1 i<br />

˜¯Ψi /γ 2 i<br />

= ϕi−1 pour 2 ≤ i ≤ N<br />

= ϕi+1 pour 1 ≤ i ≤ N − 1<br />

Finalement la solution de l’équation de Poisson peut être obtenue par l’algorithme résumé ci-dessous :<br />

(5.15)<br />

1. pré-résolution : résolution du système de problèmes aux limites (5.9) indépendants qui fournit ( ¯ Ψi) pour<br />

i ∈ {1, . . . , N} ;<br />

2. résolution du système (5.14) via la résolution d’une équation de point fixe associée qui donne (ϕi) pour<br />

i ∈ {1, . . . , N} ;<br />

3. post-résolution : résolution du système de problèmes aux limites (5.15) ; on obtient ( ˜¯ Ψi) pour i ∈ {1, . . . , N} ;<br />

4. en regroupant les solutions des étapes 1 et 3, on trouve Ψi = ¯ Ψi + ˜¯ Ψi pour i ∈ {1, . . . , N} solution de<br />

(5.8).<br />

Remarque 5.2. Les étapes 1 et 3 correspondent à la résolution de problèmes aux limites complètement<br />

découplés qui peuvent être résolus de manière parallèle. La discrétisation de ces problèmes conduit à des systèmes<br />

linéaires de grande taille ; la résolution numérique de tels systèmes peut être réalisée en utilisant les algorithmes<br />

les plus efficaces, par exemple les méthodes multigrilles, les méthodes de gradient conjugué ...<br />

Remarque 5.3. La matrice T est l’analogue discret de l’opérateur intégral linéaire associé au noyau de<br />

Poisson. Compte tenu de la propriété de décroissance du noyau de Poisson, la convergence du schéma asynchrone<br />

appliqué à la résolution du problème de point fixe associé à l’équation (5.14) peut être montrée [24], [25]. Les<br />

méthodes asynchrones permettent de ne pas communiquer systématiquement les valeurs des composantes dont<br />

le calcul fait intervenir les coefficients de la matrice T associés aux blocs hors diagonaux τ. Dans ce cas, un<br />

schéma asynchrone appliqué sur un bloc de composantes est décrit de la manière suivante [1] :<br />

<br />

ϕ (p+1)<br />

i<br />

ϕ (p+1)<br />

i+1<br />

= bi + T ϕ (p)<br />

i+1 + τϕ(p−ri(p)) i−2<br />

= bi+1 + T ϕ (p+1)<br />

i<br />

+ τϕ (p−ri+1(p))<br />

i+3<br />

où les retards ri(p) vérifient conformément aux hypothèses (1.9) et (eq.1.10) du chapitre 1 :<br />

(5.16)<br />

ri(p) ≤ p et lim<br />

p→∞ (p − ri(p)) = +∞ (5.17)<br />

Remarque 5.4. Si nous considérons le sous-domaine Ωi, la matrice T qui représente les interactions entre la<br />

est obtenue en résolvant une suite de problèmes de Poisson.<br />

frontière γ 2 i−1 et la frontière γ1 i<br />

5.9


La k ième colonne de T est obtenue comme la restriction de la solution du problème suivant :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

−∆zi = 0 sur Ωi,<br />

zi /Γi = 0,<br />

zi /γ 1 i<br />

zi /γ 2 i<br />

= ek,<br />

= 0,<br />

(5.18)<br />

aux points de γ 2 i−1 . ek étant le vecteur dont les composantes sont toutes égales à 0 sur les points de la frontière<br />

γ 1 i sauf pour le kième point de celle-ci où la composante vaut 1.<br />

De la même manière, la kième colonne de τ, matrice qui prend en compte les interactions entre la frontière<br />

est obtenue comme la restriction de la solution du problème :<br />

γ 2 i−1 et la frontière γ2 i<br />

aux points de γ 2 i−1 .<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

−∆zi = 0 sur Ωi,<br />

zi /Γi = 0,<br />

zi /γ 1 i<br />

zi /γ 2 i<br />

= 0,<br />

= ek,<br />

Pour les matrices concernant la frontière γ1 i+1 , on utilise un procédé symétrique.<br />

3 Expérimentations numériques.<br />

(5.19)<br />

Les algorithmes précédents ont été testés sur le problème de la cavité entraînée 2D. Un fluide dans une cavité<br />

est mis en mouvement par une vitesse constante sur la paroi supérieure ; le nombre de Reynolds est le paramètre<br />

principal de ce problème. Ce cas test a été étudié par de nombreux auteurs comme G. de Vahl Davie [7], J.L.<br />

Estivalezes et al. [10], R. Schreiber and H.B. Keller [31] parmi d’autres.<br />

Ψ = 0,<br />

∂Ψ<br />

∂x<br />

= 0<br />

A<br />

Ψ = 0, ∂Ψ<br />

∂y<br />

Ψ = 0, ∂Ψ<br />

∂y<br />

= UAD<br />

✲<br />

Ψ = 0,<br />

∂Ψ<br />

∂x = 0<br />

B <br />

<br />

= 0<br />

C<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Fig. 5.1: Cavité entraînée 2D.<br />

5.10<br />

D


Pour ce problème, la condition aux limites pour le rotationnel est obtenue par des formules de discrétisation<br />

décentrées. Par exemple sur le point du maillage (i, N +1) de AD ( voir [11] et [15] ), différentes approximations<br />

peuvent être considérées en utilisant :<br />

2 points : ωi,N+1 =<br />

3 points : ωi,N+1 =<br />

4 points : ωi,N+1 =<br />

1<br />

2h2 (Ψi,N−1 − 8 Ψi,N) + 3<br />

h UAD(i)<br />

1<br />

3h2 (− Ψi,N−2 + 6 Ψi,N−1 − 21 Ψi,N ) + 4<br />

h UAD(i)<br />

1<br />

144h 2 (33 Ψi,N−3 − 208 Ψi,N−2 − 612 Ψi,N−1 − 1392 Ψi,N ) + 660<br />

144h UAD(i)<br />

(5.20)<br />

Les tableaux 5.1 à 5.19 contiennent les résultats des calculs pour différentes tailles de problèmes et différentes<br />

valeurs du nombre de Reynolds. Le nombre de sous-domaines est 6 ou 8. Le découpage du domaine Ω en sousdomaines<br />

s’effectue verticalement. Ces sous-domaines ont la même forme et le même nombre de points ; ainsi<br />

les matrices T et τ sont calculées une fois pour toute.<br />

Notons finalement que durant les étapes 1 et 3 de la variante de la méthode alternée de Schwarz, l’équation<br />

de diffusion a été résolue par une méthode de gradient conjugué et que pour résoudre l’équation de convectiondiffusion<br />

sur chaque sous-domaine, la méthode de Gauss-Seidel a été utilisée.<br />

3.1 Algorithmes séquentiels.<br />

Nous considérons dans un premier temps la résolution séquentielle de l’équation de Navier-Stokes. Dans ce<br />

paragraphe on compare, pour l’équation de diffusion seulement, l’efficacité de la méthode alternée de Schwarz<br />

classique avec la variante de la méthode alternée de Schwarz présentée au paragraphe 2.2. Le tableau 5.1 expose le<br />

détail des résultats expérimentaux. Les expériences numériques montrent que la variante de la méthode alternée<br />

de Schwarz est plus efficace que la méthode classique ; en effet pour cette variante les temps de restitution sont<br />

plus faibles pour toutes les tailles de problèmes.<br />

Notons que les temps de calcul n’augmentent pas exagérément avec la détermination des matrices d’interaction<br />

T et τ obtenues par la résolution des systèmes (5.18) et (5.19). L’intérêt de la variante de la méthode alternée<br />

de Schwarz pour ce type de problème réside dans le fait que ces matrices d’interaction sont calculées une fois<br />

pour toute et réutilisables pour chaque pas de temps. Si en plus ces matrices sont stockées dans des fichiers, elles<br />

peuvent resservir pour tous les calculs qui reposent sur une même géométrie où seuls changent les paramètres<br />

physiques du problème ( valeur du nombre de Reynolds, nombre de sous-domaines, vitesse sur la paroi supérieure<br />

de la cavité ). Ainsi le choix de cette variante de la méthode alternée de Schwarz conduit dans ce cas à une<br />

économie en calculs et en temps.<br />

Un autre point intéressant à analyser est le temps passé pour résoudre chacune des équations. Avec la méthode<br />

alternée de Schwarz classique, 73% du temps est utilisé pour résoudre l’équation de diffusion et 27% à résoudre<br />

l’équation de convection-diffusion. L’utilisation de cette variante inverse ce rapport ( 31% pour l’équation de<br />

Poisson, 69% pour l’équation de convection-diffusion ).<br />

La variante de la méthode alternée de Schwarz peut être aussi appliquée à la résolution du problème d’évolution<br />

de convection-diffusion. Cependant l’opérateur qui intervient dans ce problème change à chaque pas de temps ;<br />

en effet u et v ne dépendent pas seulement de l’espace mais aussi du temps. Si nous voulons utiliser cette<br />

méthode, il faut calculer pour chaque sous-domaine et à chaque pas de temps, les matrices d’interaction T et τ,<br />

qui sont maintenant différentes pour chaque sous-domaine. Dans ce cas de figure, les coûts de calcul s’avèrent<br />

5.11


Variante de la méthode de Schwarz Variante de la méthode de Schwarz<br />

taille de Méthode classique de Schwarz avec calcul des sans calcul des<br />

la grille matrices d’interaction matrices d’interaction<br />

Temps Nombre de Temps Nombre de Temps Nombre de<br />

elapsed résolutions du GC elapsed résolutions du GC elapsed résolutions du GC<br />

1739 4.58 sec. 378 4.24 sec. 59 3.04 sec. 12<br />

8075 60.28 sec. 1578 26.09 sec. 107 11.95 sec. 12<br />

34571 804.34 sec. 2880 272.91 sec. 203 55.42 sec. 12<br />

Table 5.1 : Comparaison de la méthode de Schwarz classique et de sa variante pour le premier pas de temps avec ou sans<br />

calcul des matrices d’interaction ( algorithme séquentiel ), Re = 1000 sur une Alliant FX80.<br />

être prohibitifs.<br />

3.2 Algorithmes parallèles.<br />

Les principaux paramètres qui influent sur les performances des algorithmes sont le nombre de Reynolds Re,<br />

le pas de discrétisation du maillage h, le pas de discrétisation en temps ∆t et le nombre de processeurs.<br />

Les expérimentations numériques ont été réalisées pour trois tailles de problèmes.<br />

1. une taille modeste avec 22 606 points de discrétisation, le domaine Ω étant découpé en 8 sous-domaines<br />

d’approximativement 4100 points. Le pas d’espace h est égal à 5, 6.10 −3 .<br />

2. une taille moyenne avec 64 400 points de discrétisation, le domaine Ω étant découpé en 8 sous-domaines<br />

d’approximativement 10000 points. Dans ce cas h est égal à 3.10 −3 .<br />

3. une grande taille avec 101 200 points de discrétisation, le domaine Ω étant découpé en 8 sous-domaines<br />

d’approximativement 14600 points. h est ici égal à 2.10 −3 .<br />

Remarque 5.5. Pour ne pas avoir des sous-domaines trop étirés, Ω n’est pas obligatoirement le carré unité. Ce<br />

qui explique les valeurs de h. Pour chaque grandeur de problème, la zone de recouvrement comporte 12*NDCY,<br />

NDCY étant le nombre de points selon l’axe Oy. Le recouvrement se fait suivant l’axe Ox.<br />

Pour chaque taille, nous avons considéré trois valeurs du nombre de Reynolds Re = 10, Re = 100, Re = 1000.<br />

Les problèmes discrétisés par des schémas centrés des termes de convection ont été résolus par une version<br />

séquentielle et par deux versions parallèles avec résolution de l’équation de convection-diffusion par un algorithme<br />

synchrone et par un algorithme asynchrone Moyenne Fréquence de Communication ( M.F.C. ).<br />

La résolution des problèmes discrétisés par des schémas décentrés des termes de convection a été effectuée par<br />

une version séquentielle, par trois versions parallèles avec résolution de l’équation de convection-diffusion par un<br />

algorithme synchrone pour la première, par un algorithme asynchrone Moyenne Fréquence de Communication<br />

( M.F.C. ) pour la deuxième et par un algorithme asynchrone Haute Fréquence de Communication ( H.F.C. )<br />

en ce qui concerne la dernière.<br />

Remarque 5.6. Les tests de la résolution des problèmes discrétisés par des schémas centrés ne comportent pas<br />

de résultats avec la version H.F.C. de l’algorithme asynchrone car la convergence des algorithmes asynchrones<br />

avec communication flexible est délicate à assurer pour ce type de discrétisation ( voir paragraphe 2.1.2 ).<br />

5.12


Les résultats expérimentaux sont résumés dans les tableaux 5.2 à 5.19. Le nombre de relaxations de la méthode<br />

de Gauss-Seidel nécessaire à la résolution de l’équation de convection-diffusion est indiqué dans la troisième<br />

colonne des tableaux ; ce nombre comptabilise les relaxations de tous les sous-domaines et de tous les pas de<br />

temps.<br />

Pour toutes les expérimentations cent pas de temps ont été calculés ; le pas de discrétisation en temps est<br />

∆t = 10 −4 sauf pour les calculs relatifs au problème de grande taille et de nombre de Reynolds égal à 10<br />

( tableaux 5.8 et 5.17 ) où le pas de temps est de 10 −5 afin de vérifier la condition (5.6) du paragraphe 2.1.2.<br />

Nous avons utilisé de 2 à 8 processeurs suivant les tailles de problèmes étudiés.<br />

Lors de la comparaison des algorithmes parallèles nous avons considéré que pour un problème donné les<br />

algorithmes donnaient des résultats équivalents en terme d’efficacité si leurs efficacités différaient de moins de<br />

1%. Les résultats et les performances des algorithmes sont comparés en regardant leurs efficacités.<br />

3.2.1 Résultats des calculs avec discrétisation centrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 20545 856.0 sec. - -<br />

Synchrone 2 21418 535.4 sec. 1.60 0.80<br />

Asynchrone M.F.C. 2 17583 523.2 sec. 1.64 0.82<br />

Synchrone 4 21418 417.1 sec. 2.05 0.51<br />

Asynchrone M.F.C. 4 19182 354.7 sec. 2.40 0.60<br />

Table 5.2 : Problème de la cavité entrainée : Re = 10 avec 22 606 points de discrétisation, 8 sous-domaines, discrétisation<br />

centrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 8103 805.0 sec. - -<br />

Synchrone 2 9558 521.1 sec. 1.54 0.77<br />

Asynchrone M.F.C. 2 8664 488.3 sec. 1.64 0.82<br />

Synchrone 4 9558 357.6 sec. 2.25 0.56<br />

Asynchrone M.F.C. 4 8596 315.2 sec. 2.56 0.64<br />

Table 5.3 : Problème de la cavité entrainée : Re = 100 avec 22 606 points de discrétisation, 8 sous-domaines, discrétisation<br />

centrée des termes de convection.<br />

5.13


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 5487 807.7 sec. - -<br />

Synchrone 2 5961 566.9 sec. 1.42 0.71<br />

Asynchrone M.F.C. 2 7104 486.0 sec. 1.66 0.83<br />

Synchrone 4 5961 351.3 sec. 2.30 0.57<br />

Asynchrone M.F.C. 4 7131 318.6 sec. 2.54 0.63<br />

Table 5.4 : Problème de la cavité entrainée : Re = 1000 avec 22 606 points de discrétisation, 8 sous-domaines, discrétisation<br />

centrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 40212 4071.8 sec. - -<br />

Synchrone 2 47538 2373.7 sec. 1.72 0.86<br />

Asynchrone M.F.C. 2 42418 2334.8 sec. 1.74 0.87<br />

Synchrone 4 47538 1495.5 sec. 2.72 0.68<br />

Asynchrone M.F.C. 4 48351 1370.5 sec. 2.97 0.74<br />

Synchrone 8 47538 985.4 sec. 4.13 0.51<br />

Asynchrone M.F.C. 8 43502 874.4 sec. 4.66 0.58<br />

Table 5.5 : Problème de la cavité entrainée : Re = 10 avec 64 400 points de discrétisation, 8 sous-domaines, discrétisation<br />

centrée des termes de convection.<br />

Une comparaison des résultats donnés par les versions synchrone et M.F.C. de l’algorithme asynchrone<br />

montre trois types de situations :<br />

1. La version asynchrone est plus efficace ou équivalente à la version synchrone et le nombre de relaxations<br />

de la version asynchrone est moindre.<br />

2. La version asynchrone est plus efficace ou équivalente à la version synchrone et le nombre de relaxations<br />

de la version asynchrone est plus important.<br />

3. La version asynchrone est moins efficace que la version synchrone et le nombre de relaxations de la version<br />

asynchrone est moins important.<br />

5.14


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 10971 3663.2 sec. - -<br />

Synchrone 2 13573 2053.7 sec. 1.78 0.89<br />

Asynchrone M.F.C. 2 14539 2064.0 sec. 1.77 0.88<br />

Synchrone 4 13573 1256.1 sec. 2.92 0.73<br />

Asynchrone M.F.C. 4 15671 1174.8 sec. 3.12 0.78<br />

Synchrone 8 13573 833.9 sec. 4.40 0.55<br />

Asynchrone M.F.C. 8 19389 783.5 sec. 4.68 0.58<br />

Table 5.6 : Problème de la cavité entrainée : Re = 100 avec 64 400 points de discrétisation, 8 sous-domaines, discrétisation<br />

centrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 7272 3458.9 sec. - -<br />

Synchrone 2 7672 2024.4 sec. 1.71 0.85<br />

Asynchrone M.F.C. 2 9505 1986.3 sec. 1.74 0.87<br />

Synchrone 4 7672 1288.6 sec. 2.68 0.67<br />

Asynchrone M.F.C. 4 10426 1192.9 sec. 2.90 0.73<br />

Synchrone 8 7672 773.5 sec. 4.47 0.56<br />

Asynchrone M.F.C. 8 14044 761.0 sec. 4.54 0.57<br />

Table 5.7 : Problème de la cavité entrainée : Re = 1000 avec 64 400 points de discrétisation, 8 sous-domaines, discrétisation<br />

centrée des termes de convection.<br />

Pour analyser ces comportements, nous nous intéressons aux résultats des différentes versions suivant le<br />

nombre de processeurs.<br />

1. Expérimentations avec 2 processeurs : les résultats obtenus sont contrastés suivant la taille des problèmes.<br />

La version asynchrone obtient de bon résultats pour la taille modeste, des résultats équivalent pour la<br />

taille moyenne mais de mauvais résultats pour la grande taille.<br />

La troisième situation où la version asynchrone est moins bonne que la version synchrone et le nombre de<br />

relaxations de la version asynchrone est moins important se retrouve exclusivement pour le problème de<br />

grande taille résolu avec 2 processeurs. C’est une situation nouvelle par rapport aux situations rencontrées<br />

aux chapitres précédents et difficile à expliquer.<br />

2. Expérimentations avec 4 processeurs : dans tous les cas de figure la version asynchrone est meilleure<br />

que la version synchrone à une exception près où elle est équivalente. Le nombre de relaxations de la<br />

version asynchrone est soit plus important, soit moins important ; on trouve le même phénomène que celui<br />

rencontré au chapitre 4 pour la résolution de l’équation de convection-diffusion.<br />

C’est avec ce nombre de processeurs que la différence de performance entre la version asynchrone et<br />

synchrone est la plus importante en terme d’efficacité.<br />

5.15


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

équentielle 1 19609 6289.2 sec. - -<br />

Synchrone 2 20670 3477.0 sec. 1.80 0.90<br />

Asynchrone M.F.C. 2 15936 3607.3 sec. 1.74 0.87<br />

Synchrone 4 20670 2082.6 sec. 3.02 0.75<br />

Asynchrone M.F.C. 4 20035 2104.3 sec. 2.98 0.74<br />

Synchrone 8 20670 1299.4 sec. 4.84 0.60<br />

Asynchrone M.F.C. 8 24325 1306.0 sec. 4.81 0.60<br />

Table 5.8 : Problème de la cavité entrainée : Re = 10 avec 101 200 points de discrétisation, 8 sous-domaines, discrétisation<br />

centrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 16448 6586.9 sec. - -<br />

Synchrone 2 20618 3535.1 sec. 1.86 0.93<br />

Asynchrone M.F.C. 2 15706 3614.4 sec. 1.82 0.91<br />

Synchrone 4 20618 2106.9 sec. 3.12 0.78<br />

Asynchrone M.F.C. 4 16815 1990.3 sec. 3.30 0.83<br />

Synchrone 8 20618 1293.7 sec. 5.10 0.64<br />

Asynchrone M.F.C. 8 23037 1299.8 sec. 5.07 0.63<br />

Table 5.9 : Problème de la cavité entrainée : Re = 100 avec 101 200 points de discrétisation, 8 sous-domaines, discrétisation<br />

centrée des termes de convection.<br />

3. Expérimentations avec 8 processeurs : nous avons un bon comportement de la version asynchrone ; dans la<br />

plupart des cas la version asynchrone effectue plus de relaxations que la version synchrone. Là aussi, nous<br />

retrouvons un comportement rencontré au chapitre précédent : un où plusieurs processeurs effectuent<br />

un grand nombre de relaxations en attendant les valeurs nouvelles de la solution sur les frontières de<br />

recouvrement. Cela augmente fortement le nombre de relaxations total sans être pénalisant en temps de<br />

restitution.<br />

Pour résumer nous observons pour ces expérimentations un bon comportement de la version asynchrone<br />

pour des calculs effectués avec 8 processeurs mais surtout avec 4 processeurs. Le ratio de 2 sous-domaines par<br />

processeur semble être optimal.<br />

5.16


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 8696 6235.6 sec. - -<br />

Synchrone 2 9232 3332.5 sec. 1.87 0.93<br />

Asynchrone M.F.C. 2 8000 3473.5 sec. 1.79 0.89<br />

Synchrone 4 9232 2072.0 sec. 3.00 0.75<br />

Asynchrone M.F.C. 4 9015 1915.6 sec. 3.25 0.81<br />

Synchrone 8 9232 1221.0 sec. 5.10 0.64<br />

Asynchrone M.F.C. 8 13825 1203.5 sec. 5.18 0.65<br />

Table 5.10 : Problème de la cavité entrainée : Re = 1000 avec 101 200 points de discrétisation, 8 sous-domaines,<br />

discrétisation centrée des termes de convection.<br />

5.17


3.2.2 Résultats des calculs avec discrétisation décentrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 18863 844.0 sec. - -<br />

Synchrone 2 20169 572.2 sec. 1.48 0.74<br />

Asynchrone M.F.C. 2 18203 522.2 sec. 1.62 0.81<br />

Asynchrone H.F.C. 2 17750 532.1 sec. 1.58 0.79<br />

Synchrone 4 20169 405.6 sec. 2.08 0.52<br />

Asynchrone M.F.C. 4 19095 365.2 sec. 2.32 0.58<br />

Asynchrone H.F.C. 4 19374 382.8 sec. 2.20 0.55<br />

Table 5.11 : Problème de la cavité entrainée : Re = 10 avec 22 606 points de discrétisation, 8 sous-domaines, discrétisation<br />

décentrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 7874 801.6 sec. - -<br />

Synchrone 2 9675 511.4 sec. 1.56 0.78<br />

Asynchrone M.F.C. 2 8219 482.1 sec. 1.66 0.83<br />

Asynchrone H.F.C. 2 8077 481.8 sec. 1.66 0.83<br />

Synchrone 4 9675 348.0 sec. 2.30 0.58<br />

Asynchrone M.F.C. 4 8645 309.8 sec. 2.58 0.65<br />

Asynchrone H.F.C. 4 9106 347.9 sec. 2.30 0.58<br />

Table 5.12 : Problème de la cavité entrainée : Re = 100 avec 22 606 points de discrétisation, 8 sous-domaines, discrétisation<br />

décentrée des termes de convection.<br />

Pour ces problèmes avec discrétisation décentrée des termes de convection, nous comparons les deux versions<br />

asynchrones M.F.C. et H.F.C. avec la version synchrone et les versions asynchrones entre elles.<br />

Tout d’abord la version asynchrone M.F.C. est pour tous les types de problèmes meilleure ou équivalente à<br />

la version synchrone. On retrouve des comportements assez similaires à ceux du chapitre 4.<br />

Avec 2 ou 4 processeurs, la version asynchrone effectue moins de relaxations pour le problème de taille modeste<br />

avec Re = 10 et Re = 100 et pour le problème de grande taille quelque soit le nombre de Reynolds. Nous sommes<br />

dans des cas de figure où l’exécution de l’algorithme se déroule de manière favorable ; le volume de travail est<br />

suffisant et équilibré entre les processeurs. Aucun processeur ne fait d’itération à vide.<br />

Dans les autres cas de problèmes, taille modeste et Re = 1000 et taille moyenne avec 2 ou 4 processeurs<br />

et les expérimentations avec 8 processeurs, le nombre de relaxations effectués par la version asynchrone est<br />

plus important. Un ou plusieurs processeurs effectuent des relaxations à vide, les valeurs sur les frontières de<br />

recouvrement n’évoluant pas.<br />

5.18


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 4711 770.1 sec. - -<br />

Synchrone 2 5552 502.0 sec. 1.53 0.77<br />

Asynchrone M.F.C. 2 6159 476.0 sec. 1.62 0.81<br />

Asynchrone H.F.C. 2 6283 471.2 sec. 1.64 0.82<br />

Synchrone 4 5552 344.9 sec. 2.24 0.56<br />

Asynchrone M.F.C. 4 6690 301.8 sec. 2.55 0.64<br />

Asynchrone H.F.C. 4 6464 320.7 sec. 2.40 0.60<br />

Table 5.13 : Problème de la cavité entrainée : Re = 1000 avec 22 606 points de discrétisation, 8 sous-domaines,<br />

discrétisation décentrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 35920 4030.5 sec. - -<br />

Synchrone 2 39026 2360.5 sec. 1.70 0.85<br />

Asynchrone M.F.C. 2 43707 2386.3 sec. 1.68 0.84<br />

Asynchrone H.F.C. 2 46356 2411.7 sec. 1.67 0.83<br />

Synchrone 4 39026 1417.9 sec. 2.84 0.71<br />

Asynchrone M.F.C. 4 49711 1389.5 sec. 2.90 0.73<br />

Asynchrone H.F.C. 4 48933 1337.3 sec. 3.01 0.75<br />

Synchrone 8 39026 905.4 sec. 4.45 0.56<br />

Asynchrone M.F.C. 8 42949 858.8 sec. 4.70 0.59<br />

Asynchrone H.F.C. 8 40319 845.3 sec. 4.76 0.60<br />

Table 5.14 : Problème de la cavité entrainée : Re = 10 avec 64 400 points de discrétisation, 8 sous-domaines, discrétisation<br />

décentrée des termes de convection.<br />

Si on compare maintenant la version asynchrone H.F.C. avec la version synchrone, on remarque que la version<br />

asynchrone est plus performante ou équivalente pour tous les problèmes sauf pour le problème de taille moyenne<br />

avec 2 processeurs. La différence de performance avec la version synchrone est cependant moins nette que celle<br />

observée en comparant la version asynchrone M.F.C. avec la version synchrone.<br />

Si on compare les deux versions asynchrones, on remarque que, dans le cas des problèmes traités avec 8<br />

processeurs, la version H.F.C. est la plus performante.<br />

5.19


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 12472 3749.1 sec. - -<br />

Synchrone 2 12896 2061.5 sec. 1.82 0.91<br />

Asynchrone M.F.C. 2 14460 2086.4 sec. 1.80 0.90<br />

Asynchrone H.F.C. 2 13696 2106.0 sec. 1.78 0.89<br />

Synchrone 4 12896 1291.3 sec. 2.90 0.72<br />

Asynchrone M.F.C. 4 15957 1186.5 sec. 3.16 0.79<br />

Asynchrone H.F.C. 4 15450 1186.8 sec. 3.16 0.79<br />

Synchrone 8 12896 823.9 sec. 4.55 0.57<br />

Asynchrone M.F.C. 8 18908 817.6 sec. 4.58 0.57<br />

Asynchrone H.F.C. 8 19993 777.0 sec. 4.82 0.60<br />

Table 5.15 : Problème de la cavité entrainée : Re = 100 avec 64 400 points de discrétisation, 8 sous-domaines, discrétisation<br />

décentrée des termes de convection.<br />

4 Synthèse des résultats des algorithmes asynchrones.<br />

Finalement au vu des résultats des calculs de ce chapitre, nous remarquons que les versions asynchrones des<br />

algorithmes ont de meilleures performances que la version synchrone surtout pour les problèmes de grande<br />

taille. On note également un bon comportement de la version asynchrone H.F.C. pour les calculs effectués en<br />

attribuant un sous-domaine à chaque processeur. Dans nombreux cas on remarque la présence de relaxations à<br />

vide qui ne se traduit pas par une augmentation du temps de restitution ; un petit nombre de processeurs ne<br />

recevant pas d’informations effectuent des relaxations de Gauss-Seidel avec les dernières valeurs de la solution<br />

sur les frontières de recouvrement.<br />

Cependant si on compare les résultats obtenus dans ce chapitre avec ceux du chapitre 4, on note une différence<br />

de performance moins nette entre les versions asynchrones et synchrones pour la résolution du problème de<br />

Navier-Stokes ( avec cependant, dans la plupart des cas, une efficacité meilleure pour les versions asynchrones ).<br />

Ceci est lié au fait que pour ce problème de Navier-Stokes, l’asynchronisme est surtout mis en œuvre pour<br />

résoudre l’équation de convection-diffusion. Dans la résolution de l’équation de Poisson, seule la résolution de<br />

l’équation de point fixe lors de la deuxième étape est parallélisable de façon asynchrone, la première et la<br />

troisième étapes consistant en la résolution directe sans échange d’information entre les processeurs. Lors de la<br />

résolution du problème de Navier-Stokes, les avantages de l’asynchronisme sont limités à chaque pas de temps<br />

par les étapes 1 et 3. Cette situation est différente de celle rencontrée dans le chapitre 4 où toute la résolution<br />

pouvait être parallélisée de façon asynchrone.<br />

5.20


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 7563 3489.6 sec. - -<br />

Synchrone 2 7672 2022.5 sec. 1.72 0.86<br />

Asynchrone M.F.C. 2 9335 1981.3 sec. 1.76 0.88<br />

Asynchrone H.F.C. 2 9657 2066.7 sec. 1.68 0.84<br />

Synchrone 4 7672 1221.5 sec. 2.85 0.71<br />

Asynchrone M.F.C. 4 10725 1169.1 sec. 2.98 0.75<br />

Asynchrone H.F.C. 4 10758 1155.1 sec. 3.03 0.76<br />

Synchrone 8 7672 749.3 sec. 4.65 0.58<br />

Asynchrone M.F.C. 8 15519 761.2 sec. 4.58 0.57<br />

Asynchrone H.F.C. 8 16319 750.2 sec. 4.65 0.58<br />

Table 5.16 : Problème de la cavité entrainée : Re = 1000 avec 64 400 points de discrétisation, 8 sous-domaines,<br />

discrétisation décentrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 18638 6295.4 sec. - -<br />

Synchrone 2 19421 3483.4 sec. 1.80 0.90<br />

Asynchrone M.F.C. 2 15686 3462.3 sec. 1.82 0.91<br />

Asynchrone H.F.C. 2 16221 3486.6 sec. 1.80 0.90<br />

Synchrone 4 19421 2216.8 sec. 2.84 0.71<br />

Asynchrone M.F.C. 4 17557 1913.9 sec. 3.29 0.82<br />

Asynchrone H.F.C. 4 16665 1952.5 sec. 3.22 0.81<br />

Synchrone 8 19421 1324.2 sec. 4.75 0.59<br />

Asynchrone M.F.C. 8 21587 1252.7 sec. 5.02 0.63<br />

Asynchrone H.F.C. 8 22280 1244.8 sec. 5.06 0.63<br />

Table 5.17 : Problème de la cavité entrainée : Re = 10 avec 101 200 points de discrétisation, 8 sous-domaines, discrétisation<br />

décentrée des termes de convection.<br />

5.21


Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 18527 6253.1 sec. - -<br />

Synchrone 2 19503 3615.8 sec. 1.73 0.86<br />

Asynchrone M.F.C. 2 15812 3471.5 sec. 1.80 0.90<br />

Asynchrone H.F.C. 2 15862 3621.8 sec. 1.73 0.86<br />

Synchrone 4 19503 2174.7 sec. 2.88 0.72<br />

Asynchrone M.F.C. 4 17801 1990.4 sec. 3.14 0.78<br />

Asynchrone H.F.C. 4 17682 1984.0 sec. 3.16 0.79<br />

Synchrone 8 19503 1358.6 sec. 4.60 0.58<br />

Asynchrone M.F.C. 8 22266 1249.0 sec. 5.00 0.63<br />

Asynchrone H.F.C. 8 25578 1240.2 sec. 5.04 0.63<br />

Table 5.18 : Problème de la cavité entrainée : Re = 100 avec 101 200 points de discrétisation, 8 sous-domaines,<br />

discrétisation décentrée des termes de convection.<br />

Méthode de Nombre de Nombre de Temps Speed Up Efficacité<br />

Schwarz processeurs relaxations GS de restitution<br />

Séquentielle 1 8296 6160.4 sec. - -<br />

Synchrone 2 9649 3460.1 sec. 1.78 0.89<br />

Asynchrone M.F.C. 2 8078 3421.7 sec. 1.80 0.90<br />

Asynchrone H.F.C. 2 7846 3323.6 sec. 1.86 0.93<br />

Synchrone 4 9649 1951.1 sec. 3.16 0.79<br />

Asynchrone M.F.C. 4 8788 1856.3 sec. 3.32 0.83<br />

Asynchrone H.F.C. 4 8534 1936.4 sec. 3.18 0.80<br />

Synchrone 8 9649 1207.0 sec. 5.10 0.64<br />

Asynchrone M.F.C. 8 14121 1186.3 sec. 5.20 0.65<br />

Asynchrone H.F.C. 8 15792 1163.2 sec. 5.30 0.66<br />

Table 5.19 : Problème de la cavité entrainée : Re = 1000 avec 101 200 points de discrétisation, 8 sous-domaines,<br />

discrétisation décentrée des termes de convection.<br />

5.22


Rfrences du chapitre 5.<br />

1. G.M. Baudet, Asynchronous iterative methods for multiprocessors, Journal of A.C.M., 25 (1978), pp. 226–<br />

244.<br />

2. H.C. Boisson, I. d’Ast and P. Spitéri , Some subdomain algorithms and their parallel implementation for<br />

solving incompressible Navier-Stokes equations , Computational Fluid Dynamics’92, Ch Hirsh et al. editors,<br />

Amsterdam : Elsevier North Holland, 2 (1992) pp. 867–874.<br />

3. M. Braza, P. Chassaing and H. Ha Minh , Numerical study and physical analysis of the pressure velocity<br />

fields in the near wake of a circular cylinder , Journal of Fluid Mechanics, 165 (1986), pp. 79–130.<br />

4. Y. Chan, R. Glowinski, J. Périaux and O.B. Widlund, Domain decomposition methods, SIAM, (1989).<br />

5. D. Chazan and W. Miranker, Chaotic relaxation, Linear Algebra Appl., 2 (1969), pp. 199–222.<br />

6. Chow, Computational fluid Dynamics.<br />

7. G. De Vahl Davies , Natural convection of air in a square cavity : a benchmark numerical solution , Int. J.<br />

Numer. Methods in Fluid, 3 (1983), pp. 249–264.<br />

8. Q.V. Dinh, R. Glowinski and J. Périaux , Application of domain decomposition techniques to the natural<br />

solution of Navier-Stokes equations , GAMNI, (1980).<br />

9. Q.V. Dinh, R. Glowinski, B. Mantel, J. Périaux and P. Perrier, Subdomain solutions of nonlinear problems<br />

in fluid dynamics on parallel processors , 5 e colloque international sur les méthodes de calcul scientifique et<br />

technique, Versailles (1981).<br />

10. J.L. Estivalezes, H.C. Boisson, A. Kourta, P. Chassaing and H. Ha Minh , Performances of the PISO<br />

algorithm applied to natural oscillating convection in low Pr Fluids. Series on numerical methods in fluid<br />

dynamics, Vieweg Verlag, Braunschweig (1990).<br />

11. D. Euvrard , Résolution numérique des équations aux dérivées partielles, Masson (1988).<br />

12. D.J. Evans, Lishan Kang, Jianping Shao and Yuping Chen, The convergence rate of Schwarz alternating<br />

procedure (I) : for one-dimensional problems , Int. Jour. Comp. Math., 20 (1986), pp. 157–170.<br />

13. D.J. Evans, Lishan Kang, Jianping Shau and Yuping Chen, The convergence rate of Schwarz alternating<br />

procedure (II) for two dimensional problems, Int. Jour. Comp. Math., 20 (1986), pp. 325–339.<br />

14. D.J. Evans, Lishan Kang, Jianping Shau and Yuping Chen, The convergence rate of Schwarz alternating<br />

procedure (IV) : with pseudo boundary relaxation factor , Int. Jour. Comp. Math., 21 (1987), pp. 185–203.<br />

15. C.A.J. Fletcher , Computational techniques for fluid dynamics , Springer-Verlag (1988).<br />

16. L. Giraud, J.C. Miellou and P. Spitéri, Implementation of domain decomposition methods on shared memory<br />

multiprocessors, High-Performance Computing II, M. Durand and F. El Dabaghi ed., Elsevier North Holland,<br />

(1991) pp. 357–367.<br />

17. L. Giraud and P. Spitéri, Parallel resolution of nonlinear boundary values problems, M.2 A.N., 25 (1991),<br />

pp. 579–606.<br />

18. R. Guivarch, H.C. Boisson, J.C. Miellou et P. Spitéri, Parallélisation de méthodes de sous-domaines pour la<br />

résolution de problèmes aux limites, Congrès National d’Analyse Numérique, Super-Besse (1995).<br />

19. R. Guivarch, H.C. Boisson et P. Spitéri, Résolution de problèmes de mécanique des fluides par des méthodes<br />

paralléles de décomposition de domaines, Congrès National d’Analyse Numérique, La Londe Les Maures<br />

(1996).<br />

20. R. Guivarch, P. Spitéri, H.C. Boisson and J.C. Miellou, Schwarz alternating parallel algorithm applied to<br />

incompressible flow computation in vorticity stream function formulation, Rapport IRIT/96-04-R (1996), à<br />

5.23


paraître dans Parallel Algorithms and Applications (1997).<br />

21. K.H. Hoffmann and Jun Zou , Parallel efficiency of domain decomposition methods , Parallel Computing,<br />

19 (1993), pp. 1375–1391.<br />

22. Lishan Kang and D.J. Evans , he convergence rate of Schwarz alternating procedure (III) : for Neumann<br />

problems , Int. J. Comp. Math., 21 (1987), pp. 85–108.<br />

23. J.C. Miellou, Algorithmes de relaxation chaotiques à retard, RAIRO R1, (1975), pp. 55–82.<br />

24. J.C. Miellou, Variantes synchrones et asynchrones de la méthode alternée de Schwarz , Rapport de recherche<br />

E.R.A. de mathématiques n ◦ 070654, Université de Besançon (1982).<br />

25. J.C. Miellou, G. Perrin and P. Spitéri , An inexpensive method of performance evaluation for subdomain<br />

decomposition parallel algorithms of three-dimensional elliptic problems , The J. of Systems and Software, 6<br />

(1986), pp .169–173.<br />

26. J.C. Miellou and P. Spitéri, Un critère de convergence pour des méthodes générales de point fixe, M.2 A.N.,<br />

(1985), pp. 170–201.<br />

27. J.C. Miellou, L. Giraud, A. Laouar and P. Spitéri, Subdomain decomposition methods with overlapping and<br />

asynchronous iterations, Progress in partial differential equations, M. Chipot and J. Saint Jean Paulin ed.,<br />

Longman, Pitman Research Notes in Mathematics Series, (1991), pp. 166–183.<br />

28. H. Ha Minh, H.C. Boisson and G. Martinez , Unsteady mixed convection heat transfer around a circular<br />

cylinder, Momentum and heat transfer processes in recirculating flows, B.E. Launder and J.C. Humphrey<br />

editors, A.S.M.E. Annual winter meeting, Heat transfer division, 13 (1980), pp. 35–44.<br />

29. J.M. Ortega and W.C. Rheinboldt, Iterative solution of nonlinear equations in several variables, New York :<br />

Academic Press, (1970).<br />

30. S.V. Patankar , Numerical heat transfer and fluid flow , Mc Graw-Hill (1980).<br />

31. R. Schreiber and H.B. Keller , Driven cavity flows by efficient numerical techniques , Journal of Computational<br />

Physics, 49 (1983), pp. 1983.<br />

32. P. Spitéri, Parallel asynchronous algorithms for solving boundary value problems , In Parallel algorithms,<br />

Eds M. Cosnard et al., North Holland, (1986) pp. 73–84.<br />

33. P. Spitéri and H.C. Boisson , Subdomain predictor-corrector algorithms for solving the incompressible Navier-<br />

Stokes equation , Asymptotic and numerical methods for partial differential equations with critical parameters<br />

NATO ASI series, H.G. Kaper and M. Garbey editors, Kluwer Academic Publishers, 384 (1993),<br />

pp. 335–347.<br />

34. P. Spitéri, J.C. Miellou and D. El Baz, Asynchronous Schwarz alternating method for the solution of nonlinear<br />

partial differential equations, LAAS 95309, IRIT 95-17-R, LCS 1995-10 (1995).<br />

35. R.S. Varga, Matrix iterative analysis, Prentice Hall (1962).<br />

5.24


Chapitre 6<br />

Étude numérique d’un problème<br />

d’électrophorèse en écoulement<br />

continu.<br />

Introduction.<br />

Les techniques les plus largement utilisées pour analyser les mélanges de protéines biologiques sont basées<br />

sur le principe de la séparation par électrophorèse. De petites quantités de matière, injectées dans une solution<br />

liquide stabilisée par la présence d’un gel, migrent sous l’effet d’un champ électrique.<br />

On étudie les transferts couplés de masse et de quantité de mouvement de la solution et des protéines injectées<br />

dans une cellule sous l’effet des forces électriques. La simulation numérique directe par résolution des équations<br />

de transport du fluide est le moyen le plus adapté pour isoler les contributions spécifiques de chacun des<br />

phénomènes en présence.<br />

La modélisation de ces phénomènes conduit à la résolution de problèmes d’équations aux dérivées partielles<br />

couplées comportant :<br />

- l’équation de Navier-Stokes, régissant l’hydrodynamique,<br />

- l’équation de transport de la concentration des espèces en présence,<br />

- l’équation de potentiel généralisée du champ électrique.<br />

La complexité de ce problème réside essentiellement dans le fait que le domaine d’étude est tridimensionnel<br />

et dans des non-linéarités présentes dans l’équation de Navier-Stokes ainsi que de forts phénomènes convectifs<br />

pris en compte dans l’équation de concentration, ce qui corrélativement induit pour ce problème de mauvais<br />

conditionnements numériques.<br />

Dans une première partie de ce chapitre, nous exposons les phénomènes physiques intervenant dans l’électrophorèse<br />

et nous donnons la modélisation mathématique de ce type de problème. Nous montrons ensuite que ces équations<br />

peuvent être discrétisées de telle manière à obtenir sept systèmes linéaires couplés pour lesquels les matrices de<br />

discrétisation rentrent dans le cadre de l’accrétivité et des M-fonctions présentées aux chapitres 1 et 2.<br />

6.1


En ce qui concerne les essais numériques, en raison des contraintes de temps seule une version séquentielle du<br />

code a été mise en place afin de vérifier la faisabilité numérique des simulations. Nous indiquons les méthodes de<br />

résolution choisies pour résoudre chacun des systèmes linéaires et donnons les résultats des essais numériques.<br />

6.2


1 Position du problème.<br />

1.1 Le principe de l’électrophorèse en écoulement continu.<br />

L’électrophorèse en écoulement continu est un procédé qui permet de séparer des mélanges de protéines. Ce<br />

procédé se déroule dans une longue cellule parallélépipédique à travers laquelle coule à faible vitesse une solution<br />

tampon ( voir figure 6.1 ). La solution contenant le mélange à séparer est injectée dans cet écoulement par une<br />

face de la cellule ( face C ) sous forme d’un fin filament liquide. Deux électrodes situées de part et d’autre de<br />

la cellule ( faces E et F ) créent un champ électrique à travers la largeur de la cellule.<br />

Les protéines sont portées tout au long de la cellule par l’écoulement de la solution tampon et de plus migrent<br />

sous l’influence du champ électrique. La distance latérale de migration de chaque protéine est donnée par le<br />

produit de sa mobilité électrique par la force électrique et la durée de sa présence dans la cellule ; les différentes<br />

espèces de protéines ayant des mobilités différentes, elles peuvent donc être recueillies séparément à la sortie de<br />

la cellule ( face D ).<br />

Nous supposons l’écoulement isotherme et l’absence de réaction chimique. Ainsi les différents coefficient physiques<br />

intervenant dans ce phénomène restent constants.<br />

x<br />

y<br />

z<br />

Face C<br />

Face E<br />

écoulement<br />

principal<br />

Face F<br />

Face A<br />

+ -<br />

A<br />

B<br />

Face B<br />

Face D<br />

jet de protéines A+B<br />

Figure 6.1 : Le principe de l’électrophorèse en écoulement continu.<br />

6.3


1.2 Les phénomènes physiques mis en jeu.<br />

Les phénomènes physiques auxquels nous nous intéressons dans la présente étude sont :<br />

- La conservation de la masse.<br />

- L’écoulement principal ( du fluide tampon ) : il s’agit d’un écoulement 3D, décrit par le vecteur vitesse<br />

V , fonction de la pression et soumis à l’effet électrocinétique.<br />

- Le transport des protéines : on s’intéresse à la répartition spatiale des protéines par l’intermédiaire de la<br />

concentration c, qui dépend de V .<br />

- L’effet électrocinétique, lié aux variations spatiales du potentiel ( donc du champ électrique ) en fonction<br />

de la concentration des différentes espèces ioniques.<br />

2 Équations du problème.<br />

2.1 Variables physiques et coefficients.<br />

Dans les équations du problème d’électrophorèse on cherche à déterminer en chaque point P de coordonnées<br />

(x, y, z) du volume d’électrophorèse Ω :<br />

- Le champ de vitesse du fluide V (u, v, w),<br />

- la pression p,<br />

- le champ électrique E(Ex, Ey, Ez),<br />

- pour chaque protéine m, sa concentration cm,<br />

- le potentiel Φ.<br />

Les grandeurs physiques qui interviennent dans les équations sont les suivantes :<br />

- La température T ,<br />

- la viscosité cinématique du fluide ν,<br />

- la masse volumique du fluide ρ,<br />

- la permittivité diélectrique du fluide ɛ,<br />

- le coefficient de diffusion de la protéine m Dm,<br />

- la conductivité électrique du fluide K,<br />

- la conductivité ionique moyenne de la protéine m λm,<br />

- la mobilité électrophorétique de la protéine m um.<br />

2.2 Les équations du problème.<br />

2.2.1 La conservation de la masse.<br />

Le principe de conservation de la masse s’énonce de la manière suivante :<br />

6.4


avec<br />

ou encore<br />

<br />

D<br />

Dt Ω ρ(x, t)dt = 0<br />

D ∂ ∂ ∂ ∂<br />

Dt = ∂t + u ∂x + v ∂y + w ∂z<br />

∂ρ<br />

∂t + div(ρ V ) = 0<br />

Comme l’écoulement est incompressible, ρ est constant et l’équation de conservation de la masse, exprimée<br />

en repère cartésien, aboutit à la relation :<br />

∂u ∂v ∂w<br />

+ + = 0 (6.1)<br />

∂x ∂y ∂z<br />

Cette équation qui n’apparaitra pas directement dans la résolution sera utilisée pour la résolution de l’équation<br />

d’écoulement 3D.<br />

2.2.2 L’équation d’écoulement 3D.<br />

L’écoulement principal est décrit par les équations de Navier-Stokes 3D avec champ de forces extérieures.<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

<br />

∂u ∂u ∂u<br />

∂t + u ∂x + v ∂y<br />

<br />

∂v ∂v ∂v<br />

∂t + u ∂x + v ∂y<br />

∂w<br />

∂t<br />

avec pour i = x ou i = y ou i = z<br />

∂w ∂w<br />

+ u ∂x + v ∂y<br />

2.2.3 L’équation de transport des protéines.<br />

<br />

∂u + w ∂z<br />

+ w ∂v<br />

∂z<br />

+ w ∂w<br />

∂z<br />

<br />

<br />

∂p<br />

= ν∆u − 1<br />

ρ ∂x + ɛ div(Ex. E),<br />

∂p<br />

= ν∆v − 1<br />

ρ ∂y + ɛ div(Ey. E),<br />

∂p<br />

= ν∆w − 1<br />

ρ ∂z + ɛ div(Ez. E).<br />

div(Ei. E) = ∂<br />

∂x EiEx + ∂<br />

∂y EiEy + ∂<br />

∂z EiEz<br />

Le transport des protéines est modélisé par l’équation de transport 3D suivante :<br />

où ϕ est le terme source.<br />

2.2.4 L’équation de potentiel.<br />

∂cm<br />

∂t<br />

+ u ∂cm<br />

∂x<br />

+ v ∂cm<br />

∂y<br />

Le potentiel Φ est régi par une équation de Poisson généralisée :<br />

ou encore − ∂<br />

∂x<br />

(6.2)<br />

+ w ∂cm<br />

∂z − Dm∆cm = ϕ. (6.3)<br />

− div (K grad Φ) = ∆Q,<br />

∂Φ ∂ (K ∂x ) − ∂y<br />

6.5<br />

∂Φ ∂ (K ∂y ) − ∂y<br />

∂Φ (K ∂y ) = ∆Q,<br />

(6.4)


avec Q = Q0 + RT umcm, R étant la constante des gaz parfaits, et K = K0 + λmcm.<br />

L’équation d’écoulement (6.2) est couplée à cette dernière équation par la relation :<br />

2.3 Les conditions aux limites.<br />

2.3.1 Les conditions aux limites de l’écoulement 3D.<br />

E = − <br />

grad Φ (6.5)<br />

Le fluide tampon et les protéines entrent par la face supérieure C de la cellule et sortent par la face inférieure D.<br />

Nous considérons que la vitesse satisfait à des conditions de Dirichlet non homogènes sur la face C et des<br />

conditions de Neumann homogènes pour la face D. Sur les quatre autres faces, on suppose que la vitesse est<br />

nulle ; on impose donc des conditions de Dirichlet homogènes sur ces faces.<br />

Les conditions s’énoncent ainsi de la manière suivante :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

u /A = v /A = w /A = 0,<br />

u /B = v /B = w /B = 0,<br />

u /C = w /C = 0,<br />

v /C = VC<br />

∂u ∂v ∂w<br />

∂n = /D ∂n = /D ∂n = 0, /D<br />

u /E = v /E = w /E = 0,<br />

u /F = v /F = w /F = 0<br />

2.3.2 Les conditions aux limites associées à l’équation de transport.<br />

Les protéines pénètrent dans la cellule par la face C ; la concentration est donc connue sur cette face, ce qui<br />

conduit à des conditions de Dirichlet non homogènes. A priori la concentration est libre sur les cinq autres faces<br />

ce que l’on traduit par des conditions de Neumann homogènes.<br />

Cependant, étant donnée la forme très allongée de la cellule, on suppose que le jet de protéines n’atteint pas<br />

au cours de son trajet dans la cellule les faces E et F des électrodes. Nous prenons donc comme conditions<br />

aux limites sur ces faces E et F des conditions de Dirichlet homogènes, ce qui a pour effet d’améliorer le<br />

conditionnement du système discrétisé de l’équation de concentration.<br />

Les conditions limites pour la concentration de la protéine m sont donc les suivantes :<br />

6.6<br />

(6.6)


2.3.3 Les conditions aux limites de potentiel.<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

∂cm<br />

∂n = 0, /A<br />

∂cm<br />

∂n = 0, /B<br />

cm/C = cJet<br />

∂cm<br />

∂n = 0, /D<br />

cm/E = 0,<br />

cm/F = 0<br />

Le potentiel est connu et constant en tout point des deux électrodes c’est à dire sur les faces latérales E et F.<br />

Nous avons donc des conditions de Dirichlet non homogènes sur ces faces.<br />

Les deux autres faces verticales A et B sont isolées électriquement ; on leur associe des conditions de Dirichlet<br />

non homogènes définies par une interpolation linéaire du potentiel entre les deux électrodes.<br />

Sur les faces horizontales C et D, on fixe des conditions aux limites de type Dirichlet non homogènes, données<br />

par la solution de l’équation de potentiel restreinte à chacune de ces faces. Ces conditions sont calculées<br />

préalablement. Étant donné que la concentration sur la face C ne varie pas au cours du temps, le potentiel<br />

sur cette face est calculé une fois pour toute et les conditions sur cette face ne changent pas. Par contre la<br />

concentration sur la face D dépend du temps et donc à chaque pas de temps il faut recalculer le potentiel sur<br />

cette face pour obtenir les conditions aux limites manquantes de l’équation 3D.<br />

Si LongZ est la largeur de la cellule, les conditions aux limites s’écrivent :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

Φ /A =<br />

Φ /B =<br />

Φ /C = ΦC<br />

Φ /D = ΦD(t)<br />

Φ /E = ΦE<br />

Φ /F = ΦF<br />

(LongZ −z)ΦE+zΦF<br />

LongZ<br />

(LongZ −z)ΦE+zΦF<br />

LongZ<br />

6.7<br />

(6.7)<br />

(6.8)


3 Discrétisation des équations.<br />

3.1 L’équation d’écoulement 3D.<br />

Nous allons résoudre cette équation de Navier-Stokes en utilisant l’algorithme PISO avec une discrétisation<br />

des équations par la méthode des volumes finis. Nous allons vérifier que l’utilisation de cet algorithme et la<br />

discrétisation par la méthode des volumes finis conduit à des problèmes où les hypothèses énoncées aux chapitres<br />

1 et 2 pour l’application des algorithmes synchrones et asynchrones classiques et des algorithmes asynchrones<br />

avec communication flexible sont vérifiées.<br />

3.1.1 Rappel de l’algorithme PISO.<br />

L’algorithme PISO (Pressure Implicit with Splitting of Operators), mis au point par R.I. Issa [9], permet la<br />

résolution des équations de Navier-Stokes pour un écoulement incompressible.<br />

Le schéma d’Euler à la base de la discrétisation temporelle des équations nous fournit une formulation d’avancement<br />

en temps inconditionnellement stable.<br />

Le principe de l’Operator Splitting permet de traiter le couplage des variables ( V , p) en divisant chaque pas<br />

de temps en trois ”sous-pas”.<br />

- Un pas prédicteur, implicite en vitesse, permet à partir des champs V (n) = (U (n) , V (n) , W (n) ) et p (n)<br />

d’obtenir les champs V ∗ = (U ∗ , V ∗ , W ∗ ) et p (n) . Mais à cet instant, l’équation de conservation de la masse<br />

n’est pas vérifiée.<br />

- On effectue alors un premier pas correcteur qui impose cette dernière condition, pour aboutir aux<br />

champs V ∗∗ = (U ∗∗ , V ∗∗ , W ∗∗ ) et p ∗ et à une conservation approchée de la masse,<br />

- puis un second pas correcteur permet d’améliorer le degré d’approximation des équations de conservation<br />

de la quantité de mouvement. On obtient finalement les champs V ∗∗∗ = (U ∗∗∗ , V ∗∗∗ , W ∗∗∗ ) = V (n+1)<br />

et p ∗∗ = p (n+1) .<br />

On montre [9] que deux pas correcteurs suffisent pour assurer la convergence de l’approximation à l’instant<br />

tn+1 vers la solution exacte.<br />

3.1.1.1 Pas prédicteur.<br />

Il permet de calculer de façon implicite V ∗ = (U ∗ , V ∗ , W ∗ ), solution des équations de la quantité de mouvement<br />

avec la pression p (n) .<br />

Il s’agit alors de résoudre les équations :<br />

( 1<br />

δt − Ai 0)u ∗ i = H ′ i(u ∗ i ) − 1<br />

ρ ∆i p n + Si + 1<br />

δt un i<br />

L’opérateur ∆i représente la discrétisation de l’opérateur ∂<br />

∂xi ( xi = x ou xi = y ou xi = z ).<br />

L’opérateur Hi = A i 0+H ′ i représente la discrétisation des flux convectifs et diffusifs, Ai 0 étant le terme diagonal.<br />

Si représente le terme source de l’équation égal à ɛ.div (Exi .E).<br />

6.8<br />

(6.9)


Remarque 6.1. Le pas prédicteur revient à résoudre trois systèmes d’équations indépendants qui calculent<br />

chacun d’entre eux une composante de la vitesse. Ces trois systèmes peuvent être résolus en parallèle.<br />

3.1.1.2 Premier pas correcteur.<br />

Ce premier pas explicite calcule le champ des vitesses V ∗∗ qui, associé à la pression p ∗ , vérifie les équations<br />

approchées de Navier-Stokes discrètes et l’équation de continuité :<br />

<br />

( 1<br />

δt − Ai0)u ∗∗<br />

i = H′ i (u∗ 1<br />

i ) − ρ∆i p∗ + Si + 1<br />

δt uni div V ∗∗ = 0<br />

L’approximation consiste à maintenir inchangé le terme H ′ i (u∗ i ).<br />

En soustrayant l’équation précédente à l’équation (6.9), on obtient :<br />

d’où<br />

( 1<br />

δt − Ai 0)(u ∗∗<br />

i − u ∗ i ) = − 1<br />

ρ ∆i(p ∗ − p n ),<br />

u ∗∗<br />

i = u ∗ i − 1<br />

ρ<br />

( 1<br />

δt − Ai 0) −1 ∆i(p ∗ − p n ).<br />

L’équation de continuité div V ∗∗ = 0 s’écrit sous forme discrétisée :<br />

<br />

i<br />

∆i(u ∗∗<br />

i ) = 0.<br />

Finalement l’équation du premier pas correcteur s’écrit de la manière suivante :<br />

− <br />

i<br />

∆i( 1 1<br />

(<br />

ρ δt − Ai0) −1 ∆i(p ∗ − p n )) = − <br />

i<br />

∆i u ∗ i<br />

(6.10)<br />

Cette équation permet de calculer la correction de pression p c = p ∗ − p n . Pour obtenir p ∗ et u ∗∗<br />

i , il suffit alors<br />

de faire p ∗ = p n + p c et u ∗∗<br />

i = u∗ i<br />

3.1.1.3 Second pas correcteur.<br />

1 1 − ρ ( δt − Ai0) −1∆i pc .<br />

À partir des champs V ∗∗ = (U ∗∗ , V ∗∗ , W ∗∗ ) et p ∗ , on calcule les champs V ∗∗∗ = (U ∗∗∗ , V ∗∗∗ , W ∗∗∗ ) et p ∗∗ ;<br />

on améliore la prise en compte de l’équation de continuité en considérant l’équation de Navier-Stokes discrétisée<br />

sous une forme plus complète en faisant évoluer le terme H ′ i (u∗∗<br />

i ).<br />

On considère pour ce faire l’équation de la quantité de mouvement sous la forme suivante :<br />

En soustrayant (6.11) à (6.9), on obtient :<br />

u ∗∗∗<br />

i<br />

( 1<br />

δt − Ai0)u ∗∗∗<br />

i = H ′ i(u ∗∗<br />

i ) − 1<br />

ρ ∆i p ∗∗ + Si + 1<br />

δt uni . (6.11)<br />

= u ∗∗<br />

i + ( 1<br />

δt − Ai 0) −1 (H ′ i(u ∗∗<br />

i − u ∗ i ) − 1<br />

ρ ∆i(p ∗∗ − p ∗ )).<br />

6.9


Donc :<br />

div V ∗∗∗ = div V ∗∗ + <br />

i<br />

∆i( 1<br />

δt − Ai 0) −1 (H ′ i(u ∗∗<br />

i − u ∗ i ) − 1<br />

ρ ∆i(p ∗∗ − p ∗ ))<br />

Sachant que div V ∗∗ = div V ∗∗∗ = 0 , on obtient alors pour p cc = p ∗∗ − p ∗ l’équation :<br />

− <br />

i<br />

∆i( 1 1<br />

(<br />

ρ<br />

δt − Ai 0) −1 ∆i(p cc )) = − <br />

i<br />

∆i(( 1<br />

δt − Ai 0) −1 H ′ i(u ∗∗<br />

i − u ∗ i )) (6.12)<br />

On remarque ainsi que la matrice du second pas correcteur est la même que celle du premier : les équations<br />

du premier pas correcteur et du second pas correcteur ne diffèrent que par leur second membre.<br />

3.1.2 Rappel de la méthode des volumes finis.<br />

Il existe pour la simulation d’écoulement de fluide diverses méthodes d’intégration dont les plus utilisées sont<br />

les différences finies, les volumes finis et les éléments finis.<br />

L’inconvénient majeur de la méthode des éléments finis est la complexité de sa mise en oeuvre. D’un autre<br />

côté, la méthode des différences finies n’assure pas toujours la conservation des équations physiques continues<br />

lors de la discrétisation de celles-ci, au contraire de la méthode des volumes finis qui exprime la conservation de<br />

la variable sur un volume d’intégration fini.<br />

Le principe de conservation s’exprime alors par l’intégration sur chacun de ces volumes de l’équation de<br />

transport.<br />

3.1.2.1 Les maillages décalés.<br />

Contrairement aux discrétisations utilisées dans les chapitres précédents, nous sommes amenés à définir en<br />

plus du maillage principal, sur lequel sera calculée la pression, plusieurs maillages décalés les uns par rapport<br />

aux autres sur lesquels une seule composante de la vitesse sera calculée. Ainsi, en aucun point du domaine on ne<br />

connaîtra directement à la fois la pression et le vecteur vitesse : il faudra faire des extrapolations pour obtenir<br />

toutes les grandeurs en un même point.<br />

L’utilisation des maillages décalés est motivée par le fait qu’une instabilité numérique peut apparaître lorsqu’on<br />

calcule toutes les grandeurs sur un même maillage.<br />

Nous utilisons donc quatre maillages : un maillage principal sur lequel on calcule la pression et trois maillages<br />

décalés sur chacun desquels on calcule une composante de la vitesse. Ces composantes étant calculées sur les<br />

frontières du volume de contrôle, la détermination des maillages décalés permet en même temps de définir les<br />

volumes de contrôle en chaque point.<br />

6.10


W<br />

.<br />

m<br />

δ<br />

u<br />

x<br />

δ<br />

p<br />

x<br />

w<br />

δ<br />

p<br />

x<br />

e<br />

w<br />

N<br />

Points du maillage principal.<br />

n<br />

M<br />

s<br />

S<br />

Points du maillage décalé pour U.<br />

Points du maillage décalé pour V.<br />

e<br />

E<br />

Oz<br />

Oy<br />

δ p y n<br />

s<br />

δ<br />

p<br />

y<br />

Ox<br />

m<br />

δ<br />

v<br />

y<br />

Figure 6.2 : Coupe du maillage suivant un plan parallèle au plan xOy.<br />

– La pression est calculée aux points M, E, W, N, S, H, B.<br />

– La vitesse U est calculée aux points e et w.<br />

– La vitesse V est calculée aux points n et s.<br />

– La vitesse W est calculée aux points h et b.<br />

– Le volume de contrôle autour du point M a pour taille δux m × δvy m × δwz m .<br />

– De même le volume de contrôle autour du point w pour le calcul de U a pour taille δpx w × δvy m × δwz m .<br />

3.1.2.2 Forme générale des équations discrétisées du pas prédicteur.<br />

Pour le pas prédicteur, on s’intéresse aux systèmes linéaires A U U = b U , A V V = b V , A W W = b W obtenus à<br />

partir des équations continues. Les trois matrices se construisent de la même façon.<br />

On note par Θ une composante quelconque de la vitesse ( Θ = u ou Θ = v ou Θ = w). Pour l’équation de<br />

transport qui calcule la composante Θ, il s’agit d’intégrer sur un volume V ol = ∆x ∆y ∆z autour d’un point<br />

du maillage décalé pour la composante Θ de la vitesse ( voir figure 6.4 ), l’équation :<br />

∂(Θ)<br />

∂t<br />

+ <br />

j<br />

∂<br />

∂xj<br />

[ujΘ − ∂(νΘ)<br />

] = BΘ<br />

∂xj<br />

(6.13)<br />

Finalement nous obtenons pour chaque point M d’un maillage décalé en utilisant a méthode des volumes finis<br />

et les travaux de Patankar [12], une équation de la forme :<br />

6.11


avec<br />

W<br />

m<br />

δ<br />

u<br />

x<br />

δ<br />

p<br />

x<br />

w<br />

δ<br />

p<br />

x<br />

e<br />

w<br />

H<br />

Points du maillage principal.<br />

h<br />

M<br />

b<br />

B<br />

Points du maillage décalé pour U.<br />

Points du maillage décalé pour W.<br />

e<br />

E<br />

Oy<br />

Oz<br />

δ<br />

p<br />

z<br />

h<br />

δ<br />

p<br />

z<br />

b<br />

Figure 6.3 : Coupe du maillage suivant un plan parallèle au plan xOz.<br />

−a Θ BΘB − a Θ S ΘS − a Θ W ΘW + a Θ M ΘM − a Θ EΘE − a Θ N ΘN − a Θ HΘH = b Θ<br />

b Θ <br />

=<br />

Vol<br />

BΘ dx dy dz +<br />

Ox<br />

∆x ∆y ∆z<br />

Θ<br />

δt<br />

(n)<br />

M ,<br />

δ z<br />

w<br />

m<br />

(6.14)<br />

où les coefficients a Θ ∗ sont les composantes de la matrice A U si Θ = U, de la matrice A V si Θ = V ou de la<br />

matrice A W si Θ = W .<br />

Pour l’analyse de la convergence des algorithmes asynchrones, les valeurs de ces coefficients sont importantes ;<br />

ainsi, pour la composante U, nous les définissons de la manière suivante, en utilisant toujours les notations de<br />

Patankar et Pi le nombre local de Peclet sur la face i :<br />

• Face basse du volume de contrôle δpx w × δvy m × δwz m :<br />

a U B = Db α(|Pb|) + max(0, Fb)<br />

avec Db = ν δpxmδvy m<br />

δpzb , Fb = Wb δwzm et Pb = Fb<br />

Db<br />

• Face sud du volume de contrôle δpx w × δvy m × δwz m :<br />

a U S = Ds α(|Ps|) + max(0, Fs)<br />

avec Ds = ν δpxmδwz m<br />

δpys , Fs = Vs δvym et Ps = Fs<br />

Ds<br />

6.12


.<br />

m<br />

δ<br />

p<br />

x<br />

w e<br />

δ<br />

u<br />

x δ<br />

u<br />

x<br />

N<br />

Points du maillage principal.<br />

n<br />

W w M e E<br />

m<br />

δ<br />

v<br />

y<br />

s<br />

S<br />

Points du maillage décalé pour U.<br />

Points du maillage décalé pour V.<br />

Figure 6.4 : Coupe selon un plan parallèle au plan xOy du volume de contrôle autour d’un point du maillage décalé<br />

pour U.<br />

• Face ouest du volume de contrôle δpx w × δvy m × δwz m :<br />

Oz<br />

Oy<br />

δ p y n<br />

s<br />

δ<br />

p<br />

y<br />

a U W = Dw α(|Pw|) + max(0, Fw)<br />

Ox<br />

avec Dw = ν δvym δwz m<br />

δuxw , Fw = Uw δpxm et Pw = Fw<br />

Dw<br />

• Face est du volume de contrôle δpx w × δvy m × δwz m :<br />

a U E = De α(|Pe|) + max(0, Fe)<br />

avec De = ν δvym δwz m<br />

δuxe , Fe = Ue δpxm et Pe = Fe<br />

De<br />

• Face nord du volume de contrôle δpx w × δvy m × δwz m :<br />

a U N = Dn α(|Pn|) + max(0, Fn)<br />

avec Dn = ν δpxmδwz m<br />

δpyn , Fn = Vn δvym et Pn = Fs<br />

Dn<br />

• Face haute du volume de contrôle δpx w × δvy m × δwz m :<br />

a U H = Dh α(|Ph|) + max(0, Fh)<br />

avec Dh = ν δpxmδvy m<br />

δpzh , Fh = Wh δwzm et Ph = Fh<br />

Dh<br />

6.13


• et enfin<br />

a Θ M = a Θ B + a Θ S + a Θ W + a Θ E + a Θ N + a Θ H + δpx m δvy m δwz m<br />

Nous définissons les coefficients pour les matrices A V et A W de manière analogue.<br />

La fonction α(|Pi|) dont différentes valeurs sont données dans la table 6.1 est utilisée pour définir plusieurs<br />

schémas de discrétisation [12] :<br />

Schéma : α(|Pi|)<br />

Différences centrées : 1 − 0.5|Pi|<br />

Amont : 1<br />

Hybride : Max(0; 1 − 0.5|Pi|)<br />

Power Law : Max(0; (1 − 0.5|Pi|) 5 )<br />

Exponentiel : |Pi|/(exp|Pi| − 1)<br />

Table 6.1 : Définition de α(|Pi|).<br />

Pour les points au voisinage des frontières, les coefficients correspondants sont nuls :<br />

• près de la frontière basse ( resp. haute ), a Θ B ( resp. aΘ H<br />

• près de la frontière sud ( resp. nord ), a Θ S ( resp. aΘ N<br />

• près de la frontière ouest ( resp. est ), a Θ W ( resp. aΘ E<br />

) est nul,<br />

) est nul,<br />

) est nul.<br />

Proposition 6.1. Les trois matrices A U , A V et A W sont des matrices à diagonale dominante.<br />

Dmonstration. Ce résultat provient directement de la définition des coefficients des différentes matrices.<br />

Proposition 6.2. Les trois matrices A U , A V et A W sont des M-matrices pour tous les schémas de discrétisation<br />

du tableau 6.1 excepté pour le schéma de différences centrées. Pour le schéma de différences centrées, si |Pi| ≤ 2,<br />

A U , A V et A W sont alors des M-matrices.<br />

Dmonstration. En effet les coefficients diagonaux de ces matrices sont strictement positifs et les coefficients<br />

hors-diagonaux sont strictement négatifs ; les trois matrices sont des Z-matrices. De plus ces matrices sont<br />

irréductibles et selon la proposition précédente à diagonale dominante ; ce sont donc des M-matrices.<br />

Corollaire 6.3. Les algorithmes synchrones et asynchrones classiques appliqués à la résolution des trois<br />

systèmes linéaires du pas prédicteur de la méthode PISO convergent.<br />

Corollaire 6.4. Les algorithmes asynchrones avec communication flexible appliqués à la résolution des trois<br />

systèmes linéaires du pas prédicteur de la méthode PISO convergent.<br />

Remarque 6.2. Compte-tenu des résultats des chapitres 1 et 2, on peut envisager la résolution de ces systèmes<br />

par la méthode alternée de Schwarz avec communication asynchrone.<br />

3.1.2.3 Forme générale des équations discrétisées des pas correcteurs en pression.<br />

Pour les deux pas correcteurs le système à résoudre est de la forme :<br />

6.14<br />

δt<br />

.


⎧<br />

⎨<br />

et f =<br />

⎩<br />

− <br />

i<br />

1 1 ∆i( ρ ( δt − Ai0) −1∆i(pγ )) = f<br />

équivalent à<br />

A P p γ = f<br />

avec p γ ⎧<br />

⎨ p<br />

=<br />

⎩<br />

c pour le premier pas correcteur,<br />

pcc pour le second pas correcteur.<br />

−( div <br />

V ∗ )P pour le premier pas correcteur,<br />

− 1<br />

i ∆i(( δt − Ai0) −1 H ′ i (u∗∗ i − u∗i )) pour le second pas correcteur.<br />

W<br />

.<br />

m<br />

δ<br />

u<br />

x<br />

δ<br />

p<br />

x<br />

w<br />

δ<br />

p<br />

x<br />

e<br />

w<br />

N<br />

Points du maillage principal.<br />

n<br />

M<br />

s<br />

S<br />

Points du maillage décalé pour U.<br />

Points du maillage décalé pour V.<br />

e<br />

E<br />

Oz<br />

Oy<br />

δ p y n<br />

δ<br />

p<br />

y<br />

s<br />

Ox<br />

m<br />

δ<br />

v<br />

y<br />

Figure 6.5 : Coupe selon un plan parallèle au plan xOy du volume de contrôle autour d’un point du maillage principal.<br />

Après discrétisation nous obtenons pour chaque point M du maillage principal une équation de la forme :<br />

−dBp γ γ<br />

B − dSpS − dW p γ<br />

W + dM p γ γ<br />

M − dEpE − dN p γ γ<br />

N − dHpH = fM<br />

(6.16)<br />

6.15<br />

(6.15)


avec : ⎧⎪ ⎨<br />

⎪⎩<br />

dB = 1/(a W P (b) δwz m δpz b )<br />

dS = 1/(a V P (s) δvy m δpy s )<br />

dW = 1/(a U P (w) δux m δpx w )<br />

dE = 1/(a U P (e) δux m δpx e )<br />

dN = 1/(a V P (n) δvy m δpy n )<br />

dH = 1/(a W P (h) δwz m δpz h )<br />

dM = dB + dS + dW + dE + dN + dH.<br />

Finalement la matrice A P des systèmes correcteurs dont les coefficients sont les d∗ possède les propriétés<br />

suivantes que l’on montre d’une manière similaire à celle utilisée au paragraphe précédent.<br />

Proposition 6.5. La matrice A P est à diagonale dominante.<br />

Proposition 6.6. La matrice A P est une M-matrice.<br />

Corollaire 6.7. Les algorithmes synchrones et asynchrones classiques appliqués à la résolution des systèmes<br />

linéaires des deux pas correcteurs de la méthode PISO convergent.<br />

Corollaire 6.8. Les algorithmes asynchrones avec communication flexible appliqués à la résolution des<br />

systèmes linéaires des deux pas correcteurs de la méthode PISO convergent.<br />

Remarque 6.3. Comme pour les équations de vitesse, nous pouvons envisager la parallélisation de la<br />

résolution de ces systèmes par la méthode alternée de Schwarz avec communication asynchrone.<br />

3.1.3 L’équation de transport des protéines.<br />

L’équation de transport (6.3) est une équation de convection-diffusion qui présente une forme similaire à celle<br />

de l’équation de convection-diffusion (5.5) du chapitre 5.<br />

Nous considérons une discrétisation par différences finies. Le Laplacien est discrétisé en utilisant un schéma<br />

de différences finies classique à sept points. Les termes de convection peuvent être discrétisés par des schémas<br />

de discrétisation centrés ou décentrés en accord avec les signes de u, v et w ( voir l’équation (4.2) ).<br />

Nous arrivons aux mêmes conclusions que celles exprimées au paragraphe 2 du chapitre 5 :<br />

- la matrice de discrétisation obtenue par des schémas de discrétisation décentrés des termes de convection<br />

est une M-matrice ; le problème (6.3) discrétisé à l’aide de ces schémas rentre dans le cadre de la Haccrétivité<br />

et aussi des M-fonctions. Ainsi les algorithmes parallèles synchrones et asynchrones classiques<br />

et les algorithmes parallèles asynchrones avec communication flexible convergent.<br />

- sous certaines hypothèses sur la norme de la vitesse analogue à celle du chapitre 5 condition 5.6, des pas<br />

de discrétisation en espaces et du pas de temps, la matrice de discrétisation obtenue par des schémas<br />

de discrétisation centrés des termes de convection est une M-matrice et le problème (6.3) rentre dans le<br />

cadre de la H-accrétivité et aussi des M-fonctions. Les algorithmes parallèles synchrones et asynchrones<br />

classiques et les algorithmes parallèles asynchrones avec communication flexible convergent.<br />

6.16


3.1.4 L’équation de potentiel.<br />

On discrétise ce problème par différences finies. Le schéma numérique est le même pour chacun des trois<br />

termes du premier membre ; il est obtenu par la moyenne de deux schémas intermédiaires.<br />

<br />

pour y = yj et z = zk fixés.<br />

Nous nous intéressons par exemple à la discrétisation de − ∂<br />

∂x<br />

K ∂φ<br />

∂x<br />

Par simplification on note hi = xi − xi−1, Ki = K(xi, yj, zk) = Kijk, Φi = Φ(xi, yj, zk) = Φijk.<br />

• schéma “avant-arrière”<br />

<br />

− ∂<br />

∂x<br />

• schéma “arrière-avant”<br />

<br />

xi,yj,zk<br />

− ∂<br />

∂x<br />

K ∂φ<br />

∂x<br />

K ∂φ<br />

∂x<br />

<br />

<br />

xi<br />

xi<br />

h 2 i<br />

= − 1<br />

<br />

hi+1<br />

Ki+1<br />

= − 1<br />

hi+1<br />

<br />

Ki+1<br />

<br />

∂Φ<br />

∂x − Ki<br />

i+1<br />

Φi+1−Φi<br />

hi+1<br />

= − Ki<br />

hihi+1 Φi−1<br />

<br />

Ki<br />

+ hihi+1<br />

= − 1<br />

<br />

hi<br />

Ki<br />

= − 1<br />

hi<br />

<br />

Ki<br />

<br />

∂Φ<br />

∂x − Ki−1<br />

i<br />

Φi+1−Φi<br />

hi+1<br />

<br />

− Ki<br />

<br />

∂Φ<br />

∂x i<br />

Ki+1<br />

+ h2 <br />

i+1<br />

<br />

∂Φ<br />

<br />

∂x i−1<br />

<br />

− Ki−1<br />

= − Ki−1<br />

h2 <br />

Ki−1<br />

Φi−1 + h i<br />

2 +<br />

i<br />

Ki<br />

hihi+1<br />

h 2 i<br />

Φi−Φi−1<br />

hi<br />

Φi−Φi−1<br />

<br />

<br />

Φi − Ki+1<br />

h2 Φi+1<br />

i+1<br />

hi<br />

<br />

Φi − Ki<br />

hihi+1 Φi+1<br />

Le schéma de discrétisation final est obtenu en prenant la demi-somme de chacun des schémas pré-cédants.<br />

Nous obtenons pour la dérivée seconde par rapport à x :<br />

− ∂<br />

<br />

∂x K ∂φ<br />

<br />

<br />

1 Ki−1<br />

∂x = 2 − + Ki<br />

<br />

Ki−1<br />

Φi−1 + + hihi+1<br />

2Ki<br />

hihi+1<br />

De même pour les autres dérivées par rapport à y et par rapport à z :<br />

− ∂<br />

<br />

∂y<br />

− ∂<br />

<br />

∂z<br />

K ∂φ<br />

∂y<br />

K ∂φ<br />

∂z<br />

<br />

<br />

xi,yj,zk<br />

xi,yj,zk<br />

=<br />

=<br />

<br />

1 Kj−1<br />

2 − h2 +<br />

j<br />

Kj<br />

<br />

Kj−1<br />

Φj−1 +<br />

hjhj+1<br />

h2 +<br />

j<br />

2Kj<br />

hjhj+1<br />

<br />

1 Kk−1<br />

2 − h2 +<br />

k<br />

Kk<br />

<br />

Φk−1 +<br />

hkhk+1<br />

Kk−1<br />

h 2<br />

k<br />

+ 2Kk<br />

hkhk+1<br />

Ki+1<br />

+ h2 <br />

Ki<br />

Φi − hihi+1 i+1<br />

Kj+1<br />

+ h2 <br />

Kj<br />

Φj − hjhj+1 j+1<br />

Kk+1 + h2 <br />

Kk<br />

Φk − hkhk+1 k+1<br />

Ki+1<br />

+ h2 <br />

Φi+1<br />

i+1<br />

(6.17)<br />

Kj+1<br />

+ h2 <br />

Φj+1<br />

j+1<br />

(6.18)<br />

Kk+1 + h2 <br />

Φk+1<br />

k+1<br />

(6.19)<br />

Finalement la matrice de discrétisation P de l’équation de potentiel est une matrice heptadiagonale. Pour<br />

trouver le potentiel nous résolvons le système suivant :<br />

où SΦ = ∆Q.<br />

P Φ = SΦ<br />

(6.20)<br />

La conductivité électrique K étant une grandeur positive, il est à noter que ce type de schéma conduit à une<br />

matrice P définie positive ; on peut calculer l’erreur de troncature et vérifier qu’elle tend vers 0 avec le pas de<br />

discrétisation .<br />

6.17


Nous pouvons énoncer de façon évidente la proposition et les corollaires suivants :<br />

Proposition 6.9. la matrice P du système discrétisé de l’équation de potentiel est une M-matrice.<br />

Corollaire 6.10. Les algorithmes synchrones et asynchrones classiques appliqués à la résolution du système<br />

linéaire de l’équation de potentiel convergent.<br />

Corollaire 6.11. Les algorithmes asynchrones avec communication flexible appliqués à la résolution du<br />

système linéaire de l’équation de potentiel convergent.<br />

Remarque 6.4. La méthode alternée de Schwarz avec communication asynchrone peut être mise en œuvre<br />

pour paralléliser la résolution de ce problème.<br />

4 Méthodes de résolution des systèmes linéaires.<br />

Dans un premier temps afin de tester notre code de résolution, nous cherchons à résoudre de manière<br />

séquentielle le problème d’électrophorèse.<br />

Pour toutes les équations intervenant dans le problème d’électrophorèse, nous obtenons des matrices de<br />

discrétisation non-symétriques, soit en raison de leur forme propre ( équation de potentiel par exemple ), soit<br />

en raison du maillage irrégulier que nous sommes amenés à utiliser compte tenu de la forme fortement allongée<br />

de la cellule.<br />

Il nous faut donc utiliser des méthodes efficaces de résolution séquentielle des systèmes linéaires : nous nous<br />

sommes intéressés à plusieurs méthodes suivant les équations :<br />

- Pour les équations de vitesse de la méthode P.I.S.O., nous avons mis en place la méthode du Bi-gradient<br />

conjugué avec un préconditionnement diagonal classique.<br />

- Afin de résoudre les équations de correction en pression de la méthode P.I.S.O., nous utilisons la méthode<br />

du Bi-gradient conjugué avec un premier préconditionnement selon une méthode introduite par J.C.<br />

Miellou [11] puis un second préconditionnement diagonal classique.<br />

- La méthode du Bi-gradient conjugué stabilisé permet de résoudre les équations de transport et de potentiel.<br />

4.1 La méthode du Bi-gradient conjugué pour le problème d’écoulement.<br />

Les matrices A U , A V et A W du pas prédicteur de la méthode P.I.S.O. sont définies positives et donc inversibles.<br />

Elles sont non-symétriques si le maillage est irrégulier. La méthode du Bi-gradient conjugué est bien adaptée à la<br />

résolution des systèmes non-symétriques ; elle présente plus de régularité au niveau des résultats de convergence<br />

que la méthode du gradient conjugué ”squared”. Dans cette méthode nous utilisons comme préconditionnement<br />

le préconditionnement diagonal classique.<br />

En ce qui concerne les matrices de discrétisation des pas correcteurs, nous n’avons la diagonale dominance<br />

stricte pour aucun point du maillage : l’équation algébrique A P p γ = f admet soit aucune solution, soit une<br />

infinité (la solution est alors définie à une constante près).<br />

Pour avoir une solution unique, il est alors au moins nécessaire de fixer la correction de pression en un point<br />

du domaine : les hydrauliciens choisissent classiquement d’imposer p c = 0 dans le coin sud-ouest du bas.<br />

Cependant, la diagonale dominance n’étant assurée qu’en trois points, la résolution des équations de correction<br />

6.18


en pression est plus lente que celle des équations de vitesse où il y a diagonale dominance stricte en chaque point.<br />

Afin de palier au mauvais conditionnement de la matrice de discrétisation nous utilisons un préconditionnement<br />

proposé par J.C. Miellou [11] et décrit dans l’annexe D, qui a pour effet d’augmenter la diagonale et de régulariser<br />

le problème ; on constate aussi une accélération de la convergence. Ainsi la matrice de discrétisation de correction<br />

de pression peut être préconditionnée d’une part avec un préconditionnement qui augmente le terme diagonale<br />

et d’autre part avec le préconditionnement diagonal classique.<br />

Pour le préconditionnement de J.C. Miellou, nous avons choisi d’augmenter la diagonale de la matrice par le<br />

terme maximal de la diagonale multiplié par un coefficient compris entre 0 et 1.<br />

4.2 La méthode du Bi-gradient conjugué stabilisé pour les équations de transport et de potentiel.<br />

Les matrices de discrétisation de l’équation de transport et de l’équation de potentiel étant non-symétriques,<br />

nous utilisons pour résoudre les systèmes linéaires associés la méthode du Bi-gradient stabilisé décrite dans<br />

l’annexe E. Cette méthode et ses avantages sont décrit dans [1] ; elle donne des meilleures convergences pour la<br />

résolution de nos systèmes linéaires que la méthode du Bi-gradient conjugué.<br />

5 Quelques Résultats Numériques.<br />

Dans un premier temps nous avons réalisé les simulations avec une seule protéine ; l’indice m qui indiquait<br />

l’espèce de la protéine dans les équations de transport et de potentiel n’apparaît pas dans ce paragraphe.<br />

5.1 Le maillage.<br />

La cellule d’électrophorèse est une cellule parallélépipédique très fine et allongée. L’épaisseur de la cellule ( axe<br />

Ox ) est prise égale à 3.10 −3 m, sa longueur ( axe Oy ) est de 0, 3m et sa largeur ( axe Oz ) est 0, 1m.<br />

Nous considérons un maillage avec 20 points selon l’axe Ox. Afin de mailler correctement la zone centrale<br />

autour du jet de protéines nous considérons un maillage dont les cellules sont deux fois plus longues ( axe 0z )<br />

que larges ( axe Ox ) dans le plan (xOz) dans la zone de projection de la protéine. Nous ne pouvons garder ce<br />

type de maillage tout au long de l’axe Oz ; tous les dix points nous multiplions la taille d’une cellule selon Oz<br />

par deux. Nous arrivons à un découpage de l’axe Oz avec 70 points ( voir figures 6.6 et fig.6.11 ).<br />

Finalement nous découpons la longueur de la cellule selon l’axe Oy par 50 points.<br />

Récapitulons :<br />

- Épaisseur ( Ox ) : 3.10−3 m , 20 points, maillage régulier ;<br />

- Longueur ( Oy ) : 0, 3 m , 50 points, maillage régulier ;<br />

- Largeur ( Oz ) : 0, 1 m , 70 points, maillage irrégulier.<br />

Nous obtenons un maillage comportant 70 000 points intérieurs.<br />

6.19


z<br />

0.056<br />

0.054<br />

0.052<br />

0.05<br />

0.048<br />

0.046<br />

0 0.5 1 1.5 2 2.5 3<br />

x 10 −3<br />

0.044<br />

x<br />

Figure 6.6 : Maillage autour de la zone de jet ( Plan xOz ).<br />

6.20


z<br />

0.1<br />

0.09<br />

0.08<br />

0.07<br />

0.06<br />

0.05<br />

0.04<br />

0.03<br />

0.02<br />

0.01<br />

0 0.5 1 1.5 2 2.5 3<br />

x 10 −3<br />

0<br />

x<br />

Figure 6.7 : Maillage d’un plan xOz.<br />

6.21


5.2 Valeurs indicatives des différents paramètres.<br />

5.2.1 Problème d’écoulement.<br />

Afin de diminuer le nombre de paramètres, nous passons selon un procédé classique en physique aux valeurs<br />

adimensionnelles ∗ :<br />

u ∗ = u<br />

um<br />

; E ∗ = E<br />

Em<br />

; p ∗ = p<br />

ρu2 ,<br />

m<br />

nous obtenons la forme simplifiée suivante pour l’équation d’écoulement de la composante u de la vitesse :<br />

∂u ∗<br />

∂t<br />

+ u∗ ∂u∗<br />

∂x<br />

+ v∗ ∂u∗<br />

∂y<br />

<br />

∂u∗<br />

+ w∗ =<br />

∂z<br />

1<br />

Re ∆u∗ − ∂p∗<br />

∂x + ɛE2 m<br />

ρU 2 m<br />

div(E ∗ x. E ∗ ) (6.21)<br />

avec Em potentiel moyen, Um vitesse moyenne et Re nombre de Reynolds ; nous prendrons alors pour Re et<br />

des valeurs vérifiant :<br />

ɛE 2<br />

m<br />

ρU 2 m<br />

- Re ≤ 10 ;<br />

- ɛE2 m<br />

ρU 2 ≤ 0.1.<br />

m<br />

Les vitesses initiales sont les suivantes :<br />

- u = w = 0,<br />

- v est nulle sur les faces des électrodes et possède les profils indiqués sur la figure 6.8 i.e.<br />

avec vmoy = 2, 5.10 −3 m/s.<br />

v<br />

x 10−6<br />

2.5<br />

2<br />

1.5<br />

1<br />

0.5<br />

v =<br />

6 vmoyen<br />

(x(épaisseur − x))<br />

épaisseur<br />

profil de la vitesse v initiale selon l’ épaisseur<br />

0 0.5 1 1.5 2 2.5 3<br />

x 10 −3<br />

0<br />

x<br />

1.5<br />

1<br />

0.5<br />

0<br />

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1<br />

Figure 6.8 : Profil de la vitesse initiale v.<br />

La pression initiale découle de la vitesse initiale ; son équation est :<br />

12 vmoyen<br />

p = −<br />

Re épaisseur y<br />

6.22


5.2.2 Équation de transport.<br />

Les paramètres apparaissant dans l’équation déterminant la concentration de la protéine ont les valeurs<br />

suivantes :<br />

- le coefficient de diffusion Dm est de l’ordre de 10 −4 ,<br />

- le terme source ϕ est nul,<br />

- la concentration initiale est nulle sauf pour les points du jet de la protéine où elle est égale à 1. Le jet est<br />

l’ensemble des points (x, y, z) vérifiant<br />

avec<br />

- xjet = 1, 5.10 −3 m,<br />

- zjet = 50.10 −3 m,<br />

- rjet compris entre 0, 75.10 −3 m et 1.10 −3 m.<br />

(xjet − x) 2 + (zjet − z) 2 ≤ r 2 jet,<br />

- la concentration limite sur la face supérieure ( qui est en fait le terme source ) est 1 pour les points inclus<br />

dans le disque (xjet − x) 2 + (zjet − z) 2 ≤ r2 jet et nulle ailleurs. Les conditions limites sur les autres faces<br />

sont données dans le paragraphe 2.3.2 du présent chapitre.<br />

5.2.3 Équation de potentiel.<br />

- La conductivité K est de la forme<br />

avec K0 = 122.10 −4 S/m et Kmax = 150.10 −4 S/m,<br />

- La mobilité u = −15.10 −9 m 2 V −1 s −1 ,<br />

- la constante des gaz parfaits R = 287 J/Kg/ o K,<br />

- la température est T = 294 o K,<br />

K = K0 + (Kmax − K0)C,<br />

- le potentiel sur les électrodes est tel que la différence de potentiel soit de 3500V/m :<br />

5.3 Différentes courbes.<br />

φE = 350 V<br />

φF = 0 V.<br />

Les résultats présentés dans ce paragraphe proviennent d’une simulation où l’horizon de temps est 10 secondes<br />

et où le pas de temps est 0.1 seconde ( 100 itérations temporelles ). En raison de contraintes de temps, nous<br />

avons réduit la longueur de la cellule à 0.18 m et par conséquent le nombre de points de discrétisation dans la<br />

longueur à 30. Avec ces 42000 points intérieurs une simulation dure à peu près 9 heures sur une station SUN<br />

SPARC5.<br />

Les courbes suivantes donnent la forme de la concentration pour différents temps espacés de 0.5 seconde dans<br />

une coupe selon l’épaisseur en x = 1, 5.10 −3 m ( le milieu de l’épaisseur ).<br />

Chaque figure présente deux courbes :<br />

6.23


- une vue 3D des valeurs de la concentration sur le plan de la coupe,<br />

- une courbe des équivaleurs de la concentration ( il est à noter que sur cette figure la cellule est représentée<br />

avec une rotation de 90 o par rapport à la réalité ).<br />

Concentration<br />

z<br />

0.1<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 5 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 5 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.9 : Concentration à l’instant t=0,5.<br />

6.24<br />

0.2


Concentration<br />

Concentration<br />

0.05<br />

z<br />

0.1<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

0.1<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 10 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 10 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.10 : Concentration à l’instant t=1,0.<br />

0.05<br />

z<br />

Itération 15 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 15 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.11 : Concentration à l’instant t=1,5.<br />

6.25<br />

0.2<br />

0.2


Concentration<br />

Concentration<br />

0.06<br />

0.04<br />

0.02<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.06<br />

0.04<br />

0.02<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 20 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 20 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.12 : Concentration à l’instant t=2,0.<br />

0.05<br />

z<br />

Itération 25 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 25 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.13 : Concentration à l’instant t=2,5.<br />

6.26<br />

0.2<br />

0.2


Concentration<br />

Concentration<br />

0.04<br />

0.02<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.04<br />

0.02<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 30 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 30 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.14 : Concentration à l’instant t=3,0.<br />

0.05<br />

z<br />

Itération 35 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 35 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.15 : Concentration à l’instant t=3,5.<br />

6.27<br />

0.2<br />

0.2


Concentration<br />

Concentration<br />

0.04<br />

0.02<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.03<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 40 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 40 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.16 : Concentration à l’instant t=4,0.<br />

0.05<br />

z<br />

Itération 45 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 45 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.17 : Concentration à l’instant t=4,5.<br />

6.28<br />

0.2<br />

0.2


Concentration<br />

Concentration<br />

0.03<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.03<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 50 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 50 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.18 : Concentration à l’instant t=5,0.<br />

0.05<br />

z<br />

Itération 55 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 55 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.19 : Concentration à l’instant t=5,5.<br />

6.29<br />

0.2<br />

0.2


Concentration<br />

Concentration<br />

0.03<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.03<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 60 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 60 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.20 : Concentration à l’instant t=6,0.<br />

0.05<br />

z<br />

Itération 65 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 65 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.21 : Concentration à l’instant t=6,5.<br />

6.30<br />

0.2<br />

0.2


Concentration<br />

Concentration<br />

0.03<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.03<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 70 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 70 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.22 : Concentration à l’instant t=7,0.<br />

0.05<br />

z<br />

Itération 75 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 75 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.23 : Concentration à l’instant t=7,5.<br />

6.31<br />

0.2<br />

0.2


Concentration<br />

Concentration<br />

0.03<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 80 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 80 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.24 : Concentration à l’instant t=8,0.<br />

0.05<br />

z<br />

Itération 85 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 85 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.25 : Concentration à l’instant t=8,5.<br />

6.32<br />

0.2<br />

0.2


Concentration<br />

Concentration<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 90 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 90 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.26 : Concentration à l’instant t=9,0.<br />

0.05<br />

z<br />

Itération 95 − mesh<br />

0<br />

0<br />

0.05<br />

Itération 95 − contour 2D<br />

y<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.27 : Concentration à l’instant t=9,5.<br />

6.33<br />

0.2<br />

0.2


Concentration<br />

0.02<br />

0.01<br />

z<br />

0.1 0<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0.05<br />

z<br />

Itération 100 − mesh<br />

0.05<br />

0 0<br />

y<br />

Itération 100 − contour 2D<br />

0.1<br />

0.15<br />

5 10 15<br />

y<br />

20 25 30<br />

Figure 6.28 : Concentration à l’instant t=10,0.<br />

6.34<br />

0.2


Rfrences du chapitre 6.<br />

1. R. Barret and all. Templates for the solution of linear systems : building blocks for iterative, SIAM publications<br />

(1994).<br />

2. E. Braun, Electrophorèse en flot continu : modélisation numérique, Rapport de stage de troisième année,<br />

E.N.S.E.E.I.H.T.-Informatique, (1995).<br />

3. P. Bricard, Etude algorithmique numérique des équations du problème d’électrophorèse, Rapport de stage de<br />

troisième année, E.N.S.E.E.I.H.T.-Informatique, (1993).<br />

4. M.J. Clifton, H. Roux-de-Balmann and V. Sanchez, Electrohydrodynamic Deformation Of The Sample<br />

Stream in Continuous-flow Electrophoresis With an AC Electric Field, The Canadian Journal Of Chemical<br />

Engineering, 70 (1992), pp. 1055–1062.<br />

5. M.J. Clifton and V. Sanchez, Continuous-flow electrophoresis : numerical simulation of electrokinetics and<br />

electrohydrodynamics, 43rd Congress of the International Astronautical Federation, August 28-September 5,<br />

1992/ Washington, DC.<br />

6. M.J. Clifton, Numerical simulation of protein separation by continuous-flow electrophoresis, Electrophoresis,<br />

14 (1993), pp. 1284–1291.<br />

7. M. Coulon, Résolution des équations de Navier-Stokes pour un écoulement incompressible, Rapport de stage<br />

E.N.S.E.E.I.H.T.-Informatique, (1995).<br />

8. J.L. Estivalezes et A. Rompteaux, Etude comparative des différentes méthodes itératives pour la résolution de<br />

grands systèmes linéaires creux, ONERA/CERT/DERMES, Rapport final nx 2648.00-2644.00/DERMES,<br />

(1990).<br />

9. R.I. Issa, Solution of the implicitely discretised fluid flow equations by operator splitting, Journal of Computational<br />

Physics, 62 (1986), pp. 40–65.<br />

10. N. Jouve, Modélisation et optimisation du procédé d’électrophorèse de zone à écoulement continu. Limites<br />

d’application au sol en microgravité, Thèse de Doctorat, Université Paul Sabatier de Toulouse ( Sciences ),<br />

(1991).<br />

11. J.C. Miellou , Une méthode du gradient conjugué préconditionné,dans le cas d’opérateur non borné ( application<br />

à la résolution de problèmes de Poisson avec condition de Neumann, par la méthode alternée de<br />

Schwarz). Communication au XV ième Colloque d’Analyse Numérique, Belgodère (1982).<br />

12. S.V. Patankar. Numerical heat transfer and fluid flow, Mc Graw-Hill (1980).<br />

13. P. Spitéri and H.C. Boisson Subdomain predictor corrector algorithms for solving incompressible Navier-<br />

Stokes equation, Asymptotic and numerical methods for partial differential equations with critical parameters<br />

NATO ASI series, H.G. Kaper and M. Garbey editors, Kluwer Academic Publishers, 384 (1993), pp. 335–347.<br />

6.35


6.36


Annexe A<br />

Récapitulatif des routines P.V.M.<br />

utilisées.<br />

( voir aussi P.V.M. 3 USER’S GUIDE AND REFERENCE MANUAL ).<br />

PVMFBUFINFO( BUFID, BYTES, MSGTAG, TID, INFO )<br />

retourne des informations un buffer message.<br />

INTEGER BUFID, BYTES, MSGTAG, TID, INFO<br />

BUFID est l’identificateur du buffer message ;<br />

BYTES retourne la taille en bytes du message ;<br />

MSGTAG retourne le label du message ;<br />

TID retourne l’émetteur ;<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

PVMFEXIT( INFO )<br />

dit au pvmd local que le processus quitte P.V.M.<br />

INTEGER INFO<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

PVMFINITSEND( ENCODING, BUFID )<br />

initialise le buffer d’envoi et spécifie l’encodage du message.<br />

INTEGER ENCODING, BUFID<br />

ENCODING spécifie le shéma d’encodage du prochain message ;<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

les valeurs prédéfinies de ENCODING en FORTRAN sont :<br />

PVNDEFAULT le codage XDR est utilisé. Il permet de faire communiquer un réseau hétérogène de<br />

machines ;<br />

PVMRAW Pas de codage, les messages sont envoyés dans leur format original ;<br />

PVMINPLACE les données ne sont pas recopiées dans le buffer qui contient seulement les pointeurs<br />

sur les données.<br />

PVMFMCAST( NTASK, TIDS, MSGTAG, INFO )<br />

envoie les données du buffer message actif à un ensemble de tâches.<br />

A.1


INTEGER NTASK, TIDS(*), MSGTAG, INFO<br />

NTASK nombre de tâches destinataires ;<br />

TIDS tableau de taille au moins NTASK qui contient les identificateurs des tâches destinataires ;<br />

MSGTAG label fourni par l’utilisateur du message à envoyer ;<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

PVMFMYTID( TID )<br />

retourne l’identificateur du processus.<br />

INTEGER TID<br />

TID identificateur de la tâche du processus P.V.M. appelant ; une valeur inférieure à zéro indique une<br />

erreur.<br />

PVMFNRECV( TID, MSGTAG, INFO )<br />

réception non-bloquante.<br />

INTEGER TID, MSGTAG, INFO<br />

TID identificateur fourni par l’utilisateur du processus émetteur ; la valeur -1 permet de recevoir un<br />

message de la part de n’importe quel des processus ;<br />

MSGTAG label fourni par l’utilisateur du message ; la valeur -1 permet de recevoir n’importe quel message<br />

;<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

PVMFPACK( WHAT, XP, NITEM, STRIDE, INFO )<br />

empaquete dans le buffer message actif les données.<br />

< type > XP<br />

INTEGER WHAT, NITEM, STRIDE, INFO<br />

WHAT type de données à empaqueter ;<br />

XP pointeur sur le début de la donnée à empaqueter ;<br />

NITEM nombre total d’éléments à empaqueter ( pas le nombres de bytes ) ;<br />

STRIDE le saut à utiliser lors de l’empaquetage des éléments ;<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

PVMFPARENT( TID )<br />

retourne l’identificateur du processus qui a crée le processus appelant.<br />

INTEGER TID<br />

TID retourne l’identificateur de la tâche parent du processus appelant ; si le processus appelant n’a pas<br />

été créé par un PVM SPAWN alors TID=PVMNOPARENT.<br />

PVMFPSEND( TID, MSGTAG, BUF, LEN, DATATYPE, INFO )<br />

empaquete et envoie un message en une fois.<br />

< type > BUF<br />

INTEGER TID, MSGTAG, LEN, DATATYPE, INFO<br />

TID identificateur de la tâche réceptrice ;<br />

MSGTAG label fourni par l’utilisateur du message ;<br />

BUF pointeur sur le buffer à envoyer ;<br />

LEN longueur du buffer ;<br />

DATATYPE type de données du buffer ;<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

A.2


PVMFRECV(TID, MSGTAG, BUFID )<br />

reçoit un message.<br />

INTEGER TID, MSGTAG, BUFID<br />

TID identificateur fourni par l’utilisateur du processus émetteur ; la valeur -1 permet de recevoir un<br />

message de la part de n’importe quel des processus ;<br />

MSGTAG label fourni par l’utilisateur du message ; la valeur -1 permet de recevoir n’importe quel message<br />

;<br />

BUFID retourne la valeur de l’dentificateur du nouveau buffer de récption actif.<br />

PVMFSEND( TID, MSGTAG, INFO )<br />

envoie les données du buffer message actif.<br />

INTEGER TID, MSGTAG, INFO<br />

TID identificateur du processus destinateur ;<br />

MSGTAG label fourni par l’utilisateur du message ;<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

PVMFSPAWN( TASK, FLAG, WHERE, NTASK, TIDS, NUMT )<br />

lance des nouveaux processus P.V.M.<br />

CHARACTER STRING TASK<br />

INTEGER NTASK, TIDS(*), NUMT<br />

TASK chaîne de caractères contenant le nom du fichier exécutable du processus P.V.M. à lancer ;<br />

FLAG option de spawn ;<br />

WHERE chaîne de caractères spécifiant où commencer le processus P.V.M. ;<br />

NTASK nombre de copies de l’exécutable à lancer ;<br />

TIDS tableau de taille au moins égal à NTASK ; au retour ce tableau contient les identificateurs des<br />

processus P.V.M. lancés par cette routine ;<br />

NUMT retourne le nombre de tâches lancées.<br />

les options prédéfinies de FLAG en FORTRAN sont :<br />

PVMDEFAULT P.V.M. choisit les machines sur lesquelles les processus seront activés ;<br />

PVMARCH WHERE définit un type d’architecture ;<br />

PVMHOST WHERE définit une machine particulière ;<br />

PVMDEBUG démarre les processus sous debugger.<br />

PVMFUNPACK( WHAT, XP, NITEM, STRIDE, INFO )<br />

dépaquete le buffer message actif.<br />

< type > XP<br />

INTEGER WHAT, NITEM, STRIDE, INFO<br />

WHAT type de données à empaqueter ;<br />

XP pointeur sur le début de la donnée à empaqueter ;<br />

NITEM nombre total d’éléments à empaqueter ( pas le nombres de bytes ) ;<br />

STRIDE le saut à utiliser lors de l’empaquetage des éléments ;<br />

INFO code d’état retourné par la routine ; une valeur inférieure à zéro indique une erreur.<br />

A.3


A.4


Annexe B<br />

Récapitulatif des routines M.P.I.<br />

utilisées.<br />

( voir aussi M.P.I. : A Message Passing Interface Standard ).<br />

– routines de communication point à point :<br />

MPI SEND( BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR )<br />

envoi bloquant en mode standard.<br />

BUF(*)<br />

INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR<br />

BUF adresse du buffer d’envoi ;<br />

COUNT nombre d’élément du buffer ;<br />

DATATYPE type des données ;<br />

DEST rang du destinataire ;<br />

TAG label du message ;<br />

COMM communicateur ;<br />

IERROR code d’état retourné par la routine.<br />

MPI RECV( BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR )<br />

réception bloquante.<br />

BUF(*)<br />

INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM,<br />

STATUS(MPI STATUS SIZE), IERROR<br />

BUF adresse du buffer de réception ;<br />

COUNT nombre d’élément du buffer ;<br />

DATATYPE type des données ;<br />

SOURCE rang fourni par l’utilisateur de l’émetteur ;<br />

TAG label fourni par l’utilisateur du message ;<br />

COMM communicateur ;<br />

STATUS retourne le rang de l’émetteur et le label du message reçu ;<br />

IERROR code d’état retourné par la routine.<br />

B.1


MPI ISEND( BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR )<br />

lance un envoi non-bloquant en mode standard.<br />

BUF(*)<br />

INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR<br />

BUF adresse du buffer d’envoi ;<br />

COUNT nombre d’élément du buffer ;<br />

DATATYPE type des données ;<br />

DEST rang du destinataire ;<br />

TAG label du message ;<br />

COMM communicateur ;<br />

REQUEST numéro de la requête ;<br />

IERROR code d’état retourné par la routine.<br />

MPI IRECV( BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR )<br />

lance une réception non-bloquante.<br />

BUF(*)<br />

INTEGER COUNT, DATATYPE, SOURCE, COMM, TAG, COMM, REQUEST, IERROR<br />

BUF adresse du buffer de réception ;<br />

COUNT nombre d’éléments du buffer ;<br />

DATATYPE type des données ;<br />

SOURCE rang fourni par l’utilisateur de l’émetteur ;<br />

TAG label fourni par l’utilisateur du message ;<br />

COMM communicateur ;<br />

REQUEST numéro de la requête ;<br />

IERROR code d’état retourné par la routine.<br />

MPI TEST( REQUEST, FLAG, STATUS, IERROR )<br />

teste la complétion d’une requête.<br />

LOGICAL FLAG<br />

INTEGER REQUEST, STATUS(MPI STATUS SIZE), IERROR<br />

REQUEST numéro de la requête ;<br />

FLAG vrai si l’opération est faite ;<br />

STATUS retourne le rang de l’émetteur et le label du message de la requête testée ;<br />

IERROR code d’état retourné par la routine.<br />

MPI CANCEL( REQUEST, IERROR )<br />

annule une requête.<br />

INTEGER REQUEST, IERROR<br />

REQUEST numéro de la requête ;<br />

IERROR code d’état retourné par la routine.<br />

MPI SEND INIT( BUF, COUNT,DATATYPE, DEST, TAG, COMM, REQUEST, IERROR )<br />

crée une requête de communication persistante pour une opération d’envoi en mode standard.<br />

BUF(*)<br />

INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR<br />

BUF adresse du buffer de d’envoi ;<br />

COUNT nombre d’éléments du buffer ;<br />

B.2


DATATYPE type des données ;<br />

DEST rang du destinataire ;<br />

TAG label fourni par l’utilisateur du message ;<br />

COMM communicateur ;<br />

REQUEST numéro de la requête ;<br />

IERROR code d’état retourné par la routine.<br />

MPI RECV INIT( BUF, COUNT,DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR )<br />

crée une requête de communication persistante pour une opération de réception.<br />

BUF(*)<br />

INTEGER COUNT, DATATYPE, SOURCE, COMM, TAG, COMM, REQUEST, IERROR<br />

BUF adresse du buffer de réception ;<br />

COUNT nombre d’éléments du buffer ;<br />

DATATYPE type des données ;<br />

DEST rang du destinataire ;<br />

SOURCE rang fourni par l’utilisateur de l’émetteur ;<br />

TAG label fourni par l’utilisateur du message ;<br />

COMM communicateur ;<br />

REQUEST numéro de la requête ;<br />

IERROR code d’état retourné par la routine.<br />

MPI START( REQUEST, IERROR )<br />

active une requête de communication persistante.<br />

INTEGER REQUEST, IERROR<br />

REQUEST numéro de la requête ;<br />

IERROR code d’état retourné par la routine.<br />

– routines de communication collective :<br />

MPI GATHER( SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,<br />

ROOT, COMM, IERROR )<br />

Chaque processus ( processus Root inclu ) envoie le contenu de son buffer d’envoi au processus Root ; le<br />

processus Root reçoit les messages et stocke les données selon le rang des processus émetteurs ; les données<br />

ont la même taille.<br />

SENDBUF(*), RECVBUF(*)<br />

INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR<br />

SENDBUF adresse du buffer d’envoi ;<br />

SENDCOUNT nombre d’éléments du buffer d’envoi ;<br />

SENDTYPE type des données du buffer d’envoi ;<br />

RECVBUF adresse du buffer de réception ( significatif pour le processeur qui réceptionne ) ;<br />

RECVCOUNT nombre d’éléments pour chaque simple réception ( significatif pour le processeur qui<br />

réceptionne ) ;<br />

RECVTYPE type des données du buffer de réception ;<br />

ROOT rang du processeur de réception ;<br />

COMM communicateur ;<br />

IERROR code d’état retourné par la routine.<br />

MPI GATHERV( SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS,<br />

B.3


RECVTYPE, ROOT, COMM, IERROR )<br />

Même chose que MPI GATHER mais les données des messages peuvent avoir des tailles différentes.<br />

SENDBUF(*), RECVBUF(*)<br />

INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT(*), DISPLS(*), RECVTYPE, ROOT,<br />

COMM, IERROR<br />

SENDBUF adresse du buffer d’envoi ;<br />

SENDCOUNT nombre d’éléments du buffer d’envoi ;<br />

SENDTYPE type des données du buffer d’envoi ;<br />

RECVBUF adresse du buffer de réception ( significatif pour le processeur qui réceptionne ) ;<br />

RECVCOUNT tableau qui contient le nombre d’éléments qui sont reçus de chaque processus ( significatif<br />

pour le processeur qui réceptionne ) ;<br />

DISPLS tableau dont l’entrée i spécifie le déplacement relatif dans RECVBUF pour être à l’endroit où<br />

placer les données provenant du processus i ( significatif pour le processeur qui réceptionne ) ;<br />

RECVTYPE type des données du buffer de réception ;<br />

ROOT rang du processeur de réception ;<br />

COMM communicateur ;<br />

IERROR code d’état retourné par la routine.<br />

MPI ALLGATHERV( SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,<br />

DISPLS, RECVTYPE, COMM, IERROR )<br />

La routine MPI ALLGATHERV peut être vu comme un MPI GATHERV où tous les processus recoivent<br />

les données.<br />

SENDBUF(*), RECVBUF(*)<br />

INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT(*), DISPLS(*), RECVTYPE,COMM,<br />

IERROR<br />

SENDBUF adresse du buffer d’envoi ;<br />

SENDCOUNT nombre d’éléments du buffer d’envoi ;<br />

SENDTYPE type des données du buffer d’envoi ;<br />

RECVBUF adresse du buffer de réception ( significatif pour le processeur qui réceptionne ) ;<br />

RECVCOUNT tableau qui contient le nombre d’éléments qui sont reçu de chaque processus ( significatif<br />

pour le processeur qui réceptionne ) ;<br />

DISPLS tableau dont l’entrée i spécifie le déplacement relatif dans RECVBUF pour être à l’endroit où<br />

placer les données provenant du processus i ( significatif pour le processeur qui réceptionne ) ;<br />

RECVTYPE type des données du buffer de réception ;<br />

COMM communicateur ;<br />

IERROR code d’état retourné par la routine.<br />

– routines de groupes :<br />

MPI COMM SIZE( COMM, SIZE, IERROR )<br />

retourne le nombre de processus appartenant au groupe de communication.<br />

INTEGER COMM, SIZE, IERROR<br />

COMM communicateur ;<br />

SIZE nombre d’éléments dans le groupe de COMM ;<br />

IERROR code d’état retourné par la routine.<br />

MPI COMM RANK( COMM, RANK, IERROR )<br />

B.4


etourne le rang du processus.<br />

INTEGER COMM, RANK, IERROR<br />

COMM communicateur ;<br />

RANK rang du processus appelant dans le groupe de COMM ;<br />

IERROR code d’état retourné par la routine.<br />

– routines de gestion des processus :<br />

MPI INIT( IERROR )<br />

routine d’initialisation.<br />

INTEGER IERROR<br />

IERROR code d’état retourné par la routine.<br />

MPI FINALIZE( IERROR )<br />

routine de terminaison.<br />

INTEGER IERROR<br />

IERROR code d’état retourné par la routine.<br />

– variables prédéfinies :<br />

MPI COMM WORLD INTEGER<br />

communicateur prédéfini ;<br />

MPI DOUBLE PRECISION INTEGER<br />

type MPI correspondant au type double précision de FORTRAN ;<br />

MPI INTEGER INTEGER<br />

type MPI correspondant au type INTEGER de FORTRAN ;<br />

B.5


Annexe C<br />

Récapitulatif des variables utilisées.<br />

Les variables sont listées par ordre alphabétique.<br />

– CD P et CF P : INTEGER<br />

tableaux de taille N P ; CD P( I P ) contient le numéro du premier sous-domaine confié au processeur I P<br />

et CF P( I P ) le numéro du dernier ;<br />

– DEST : INTEGER<br />

numéro du processeur destinataire ;<br />

– DIFF : DOUBLE PRECISION<br />

tableau de taille NSDOM qui contient pour chaque sous-domaine la norme de la différence entre deux itérés<br />

de Schwarz ;<br />

– DIFFRELAX : DOUBLE PRECISION<br />

norme de la différence entre deux itérés successifs de l’itération de relaxation ;<br />

– DIFFSUP : DOUBLE PRECISION<br />

variable locale à un processeur contenant après chaque itération de Schwarz le max sur les sous-domaines<br />

du processeur de la norme de la différence entre deux itérées ;<br />

– EPSIRELAX : DOUBLE PRECISION<br />

seuil de convergence de l’itération de relaxation ;<br />

– EPSISC : DOUBLE PRECISION<br />

seuil de convergence de l’itération de Schwarz ;<br />

– I P : INTEGER<br />

numéro du processeur courant ; il varie de 1 à N P pour P.V.M., 1 étant par convention le numéro du<br />

Maître ;<br />

– INFO P : INTEGER<br />

variable qui contient des informations sur le déroulement d’une instruction P.V.M. ;<br />

– LARGEURSD : INTEGER<br />

tableau de taille N P ; LARGEURSD ( T P ) contient le nombre de points des sous-domaines traités par<br />

le processeur T P ;<br />

– LOG P : LOGICAL<br />

variable en sortie de MPI TEST ;<br />

C.1


– N P : INTEGER<br />

nombre de processeurs ;<br />

– NDCY : INTEGER<br />

nombre de points dans la direction de l’axe des ordonnées = nombre de points d’une frontière de recouvrement<br />

;<br />

– NSD : INTEGER<br />

nombre maximal de points par sous-domaine ;<br />

– NSDOM : INTEGER<br />

nombre de sous-domaines ;<br />

– NSDOMPRO : INTEGER<br />

tableau de taille N P qui contient le nombre de sous-domaines par processeurs ;<br />

– NUMMES P : INTEGER<br />

numéro du message ;<br />

– POINTLARGEUR : INTEGER<br />

tableau de taille N P ; POINTLARGEUR ( T P ) contient les déplacements dans WSOLSD pour pointer<br />

sur les données provenant du processeur T P ;<br />

– POINTNSDOM : INTEGER<br />

tableau de taille N P ; POINTNSDOM ( T P ) contient les déplacements dans DIFF pour pointer sur les<br />

données provenant du processeur T P ;<br />

– REQ P : INTEGER<br />

numéro de la requête ;<br />

– SOMMETEST : INTEGER<br />

variable du processeur Maître qui contient le somme des éléments du tableau TEST ; si cette somme est<br />

égale à zéro, il y a convergence globale.<br />

– SOURCE : INTEGER<br />

numéro du processeur émetteur ;<br />

– STATUS REQ P : INTEGER<br />

tableau qui contient pour chaque requête des informations la concernant ;<br />

– T P : INTEGER<br />

numéro du processeur courant pour M.P.I. ; il varie de 0 à N P-1, 0 étant le numéro du Maître ou Root ;<br />

– TEST : DOUBLE PRECISION<br />

tableau de taille N P qui contient pour chaque processeur l’indicateur sur son état de convergence ;<br />

– TIDS P : INTEGER<br />

tableau de taille N P qui contient les numéros d’identification TID des processeurs ; TIDS P( 1 ) est le<br />

numéro du Maître ;<br />

– VALFRONSD : DOUBLE PRECISION<br />

tableau qui contient les valeurs de la solution sur les frontières de recouvrement ;<br />

– WSOLSD : DOUBLE PRECISION<br />

tableau de taille NSDOM*NSD qui contient la solution sur chaque sous-domaine.<br />

C.2


Annexe D<br />

Un préconditionnement de la méthode<br />

du gradient conjugué.<br />

Cette annexe est tirée de la communication de J.C. Miellou au XV ième Colloque d’Analyse Numérique [8].<br />

1 Notations ; position du problème.<br />

Soient V , H, V ′ trois espaces de Hilbert séparables sur le corps des réels, vérifiant :<br />

et on note par :<br />

- ∀u, v ∈ V , ((u, v)) le produit scalaire sur V ,<br />

soit ||v|| la norme associée de v.<br />

- ∀u, v ∈ H, (u, v) le produit scalaire sur H,<br />

V ⊂ H ⊂ V ′ avec injections compactes et denses. (D.1)<br />

V ′ est le dual de V, (D.2)<br />

- ∀u ′ ∈ V ′ , ∀v ∈ V , < u ′ , v > la forme bilinéaire mettant V ′ et V en dualité.<br />

Remarque D.1. Si, de plus, u ′ ∈ V ′ est un élément de H, alors < u ′ , v >= (u ′ , v).<br />

On suppose que :<br />

<br />

Soit A ∈ L(V, V ′ ) un opérateur autoadjoint :<br />

∀u, v ∈ V < Au, v >=< Av, u > .<br />

Les hypothèses (D.1) à (D.4) étant vérifiées, on sait que :<br />

(D.3)<br />

< Av, v >≥ C||v|| 2 ∀v ∈ V où C > 0. (D.4)<br />

D.1


′ ∈ V ′ étant donné, il existe un unique u ∗ ∈ V tel que<br />

Au ∗ = b ′<br />

On se place dans une situation dans laquelle on n’a pas d’algorithme permettant une obtention directe de u ∗ ,<br />

mais par contre, on suppose que :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

∃µ0 > 0 tel que ∀µ ≤ µ0, on dispose de J A µ = (I + µA) −1 ∈ L(V ′ , V );<br />

ou tout au moins que l’on sait résoudre facilement tout problème de la forme :<br />

<br />

Trouver u ∈ V tel que :<br />

u + µAu = v ′ avec v ′ ∈ V ′ donné.<br />

2 Une méthode du gradient conjugué préconditionné.<br />

Compte-tenu des hypothèses (D.3) et (D.4), le problème (D.5) est équivalent au problème d’optimisation :<br />

où J = 1<br />

2 < Av, v > − < b′ , v >.<br />

I étant l’identité dans V , nous écrirons que :<br />

de plus :<br />

<br />

Trouver u ∗ ∈ V tel que :<br />

J(u ∗ ) ≤ J(v) ∀v ∈ V,<br />

<br />

1 A = µ ((I + µA) − I) = M − R<br />

où M = 1<br />

µ (I + µA); R = 1<br />

µ I.<br />

(D.5)<br />

(D.6)<br />

(D.7)<br />

(D.8)<br />

M −1 = µJ A µ ∈ L(V ′ , V ). (D.9)<br />

On peut résoudre le problème (D.7) par l’algorithme classique du gradient conjugué préconditionné en utilisant<br />

la matrice M −1 comme matrice de préconditionnement [4].<br />

2.1 Initialisation :<br />

D’après (D.6), nous pouvons obtenir :<br />

d’où :<br />

et d’après (D.9) et (D.12) :<br />

<br />

Soit u 0 ∈ V (D.10)<br />

u 1 solution de u 1 + µAu 1 = u 0 + µb ′<br />

(D.11)<br />

r 1 = −Au 1 + b ′ = 1<br />

µ (u1 − u 0 ) ∈ V. (D.12)<br />

p 1 = h 1 = M −1 r 1 ∈ V<br />

Ap 1 = AM −1 r 1 = (I − 1<br />

µ M −1 )r 1 = (I − J A µ )r 1 ∈ V<br />

D.2<br />

(D.13)


2.2 Boucle :<br />

∀i ∈ IN, i ≥ 1<br />

u i+1 = u i + αip i<br />

h i+1 = M −1 r i+1<br />

3 Vitesse de convergence de l’algorithme :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

αi = (ri , M −1 r i )<br />

(Ap i , p i )<br />

; r i+1 = r i − αiAp i<br />

; βi = (ri+1 , M −1 r i+1 )<br />

(r i , M −1 r i )<br />

p i+1 = h i+1 + βip i<br />

Ap i+1 = AM −1 r i+1 + βiAp i<br />

= (I − 1<br />

µ M −1 )r i+1 + βiAp i<br />

= (I − J A µ )r i+1 + βiAp i<br />

= r i+1 − 1<br />

µ hi+1 + βiAp i<br />

(D.14)<br />

(D.15)<br />

(D.16)<br />

(D.17)<br />

(D.18)<br />

Proposition D.1. Les hypothèses (D.1) à (D.4), (D.6) étant vérifiées, alors ∃K > 0 tel que l’itéré u i+1 de<br />

l’algorithme du gradient conjugué vérifie :<br />

∀i ∈ IN, ||u i+1 − u ∗ || ≤ K(<br />

<br />

µC<br />

1 −<br />

1 +<br />

1+µC<br />

)<br />

µC<br />

1+µC<br />

i ||u 1 − u ∗ ||. (D.19)<br />

4 Application à la résolution du problème de Poisson avec conditions de Neumann.<br />

Soit Ω un domaine de IR n de frontière régulière ∂Ω. Considérons le problème :<br />

où k ∈ IR + , f ∈ L 2 (Ω) et g ∈ H −1/2 (∂Ω).<br />

⎧<br />

⎨<br />

⎩<br />

−∆y ∗ + ky ∗ = f |Ω<br />

∂y ∗<br />

∂n = g |∂Ω,<br />

Soit Zk l’ensemble des éléments de H 1 (Ω) vérifiant :<br />

−∆z + kz = 0 |Ω<br />

D.3<br />

(D.20)<br />

(D.21)


D’après [5] la trace sur ∂Ω d’un éléments de Zk est dans H−1/2 (∂Ω). Inversement, soit v ∈ H−1/2 (∂Ω) et<br />

z(v) la solution du problème de Dirichlet associé à (D.21) et soit C(v) = ∂z(v)<br />

∂n . On sait, par [9], qu’il existe<br />

|∂Ω<br />

un unique C(v) ∈ H−1/2 (∂Ω).<br />

Si < , > désigne la dualité entre H −1/2 (∂Ω) et H 1/2 (∂Ω), ∀v, u ∈ H 1/2 (∂Ω) :<br />

n ∂z(v) ∂z(u)<br />

< C(v), u >=< C(u), v >= (<br />

+ kz(v)z(u))dx (D.22)<br />

∂xi ∂xi<br />

Ω<br />

i=1<br />

En prenant V = H 1/2 (∂Ω) ; H = L 2 (Ω) ; V ′ = H −1/2 (∂Ω) et A = C on est dans les conditions d’application des<br />

résultats des paragraphes précédents où on remplace la résolution de (D.20) par celle d’une suite de problèmes<br />

de la forme : ⎧ ⎨<br />

⎩<br />

−∆y + ky = ˜ f<br />

y + µ ∂<br />

∂n = ˜g.<br />

Rfrences.<br />

(D.23)<br />

1. Bergman and Schiffer, Kernel Functions and elliptic differential equations in mathematical physics. New-<br />

York, Acad. Press (1953).<br />

2. J.W. Daniel, The conjuguate gradient method for linear and non linear operator equations, SIAM J. Numer.<br />

Anal., Vol. 4, n ◦ 1 (1967), pp. 11–35.<br />

3. Dinh, Thèse de 3 e cycle, Paris (1982).<br />

4. P. Lascaux et R. Théodor, Analyse numérique matricielle appliquée à l’art de l’ingénieur, tome 2. Masson<br />

(1987).<br />

5. Lions et Magenes, Problèmes aux limites non homogènes et applications, T. 1, Dunod (1968).<br />

6. T.A. Manieufel, An imcomplete factorization technique for positive definite linear system, Math. of Computation,<br />

vol. 34, number 150, (1980), pp. 473–497.<br />

7. J.C. Miellou , Variantes synchrones et asynchrones de la méthode alternée de Schwarz , Rapport de recherche<br />

E.R.A. de mathématiques n ◦ 070654, Université de Besançon, (1982).<br />

8. J.C. Miellou , Une méthode du gradient conjugué préconditionné,dans le cas d’opérateur non borné ( application<br />

à la résolution de problèmes de Poisson avec condition de Neumann, par la méthode alternée de<br />

Schwarz). Communication au XV ième Colloque d’Analyse Numérique, Belgodère (1982).<br />

9. Nedelec, Planchard, Une méthode variationnelle d’éléments finis pour la résolution d’un problème extérieur,<br />

RAIRO, 7 (1973), pp. 105–129.<br />

D.4


Annexe E<br />

La méthode du BiGradient Conjugué<br />

Stabilisée ( Bi-CGSTAB ).<br />

La méthode du BiGradient Conjugué Stabilisée a été développée pour résoudre des systèmes non-symétriques<br />

tout en évitant les cas de convergence irrégulière de la méthode du gradient conjugué carré (CGS) ( voir Van<br />

der Vorst [1] ).<br />

La méthode du BiGradient Conjugué Stabilisée préconditionnée par la matrice M est énoncée par le pseudocode<br />

de la page suivante [2].<br />

Rfrences.<br />

1. H. Van Der Vors, Bi-CGSTAB : A fast and smoothy converging variant of Bi-CG for the solution of nonsymmetric<br />

linear systems, SIAM J. Sci. Statis. Comput., 13 (1992), pp. 631–708.<br />

2. R. Barret and all. Templates for the solution of linear systems : building blocks for iterative methods, SIAM<br />

publications (1994).<br />

E.1


Calculer r 0 = b − Ax 0 pour une solution initiale x 0 .<br />

Choisir ˜r<br />

Pour i = 1, 2, . . . faire :<br />

ρi−1 = ˜r T r i−1<br />

si ρi−1 = 0 échec de la méthode<br />

si i = 1<br />

p i = r i−1<br />

sinon<br />

βi = (ρi−1/ρi−2)(αi−1/ωi−1)<br />

p i = r i−1 + βi−1(p i−1 − ωi−1v i−1 )<br />

fin si<br />

résoudre M ˆp = p i<br />

v i = Aˆp<br />

αi = ρi−1/˜r T v i<br />

s = r i−1 − αiv i<br />

test d’arrêt : si s est suffisament petit : x i = x i−1 + αi ˆp et arrêt.<br />

résoudre M ˆs = s<br />

t = Aˆs<br />

ωi = t T s/t T t<br />

x i = x i−1 + αi ˆp + ωiˆs<br />

r i = s − ωit<br />

test d’arrêt : si r i est suffisament petit : arrêt,<br />

sinon continuation à moins que ωi = 0.<br />

fin.<br />

Algorithme E.10 : La méthode du BiGradient Conjugué Stabilisée avec préconditionnement.<br />

E.2


Table des Matires<br />

0 Introduction générale. 0.1<br />

1 Algorithmes parallèles asynchrones et synchrones classiques. 1.1<br />

1 Rappel de la modélisation des algorithmes de relaxation synchrones et asynchrones – résultats<br />

de convergence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3<br />

1.1 Définitions. Un résultat de convergence en norme vectorielle. . . . . . . . . . . . . . 1.3<br />

1.2 Un résultat de convergence en norme scalaire. . . . . . . . . . . . . . . . . . . . . . 1.5<br />

2 Analyse de la convergence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6<br />

2.1 Rappel de la notion d’accrétivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6<br />

2.1.1 Définitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6<br />

2.1.2 Cas de IR n : caractérisation des matrices fortement accrétives. . . . . . . . . 1.7<br />

2.1.3 Perturbation d’un opérateur accrétif par un opérateur diagonal. . . . . . . . 1.8<br />

2.2 Caractérisation d’une classe d’opérateurs assurant la convergence des algorithmes asynchrones<br />

: les opérateurs H-accrétifs . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.9<br />

2.3 Un résultat de contraction en norme vectorielle pour une décomposition en blocs du<br />

problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.10<br />

2.4 Convergence des algorithmes asynchrones associés à la décomposition en sous-domaines<br />

du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.12<br />

2.5 Critères d’application des algorithmes asynchrones et synchrones classiques dans le cas<br />

discret. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.14<br />

3 Application à la méthode alternée de Schwarz. . . . . . . . . . . . . . . . . . . . . . . . . 1.14<br />

3.1 Rappels sur la méthode alternée de Schwarz. . . . . . . . . . . . . . . . . . . . . . . 1.14<br />

3.2 Méthode alternée de Schwarz et algorithmes parallèles asynchrones et synchrones. . . 1.16<br />

3.3 Exemples de problèmes d’utilisation de la méthode alternée de Schwarz et des algorithmes<br />

parallèles asynchrones et synchrones. . . . . . . . . . . . . . . . . . . . . . . . . . . 1.18<br />

4 Références du chapitre 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.23<br />

2 Algorithmes itératifs asynchrones avec communication flexible. 2.1<br />

1 Position du problème - rappels sur les notions de M-fonction et de coercivité pour l’ordre. . . 2.2<br />

2 Λ-sur-applications et nouvelles méthodes asynchrones. . . . . . . . . . . . . . . . . . . . . 2.3<br />

2.1 Itérations asynchrones avec communication flexible. . . . . . . . . . . . . . . . . . . 2.3<br />

2.2 Une classe particulière de Λ-sur-applications. . . . . . . . . . . . . . . . . . . . . . 2.7<br />

i


2.3 Critères d’applications des algorithmes itératifs asynchrones avec communication flexible. 2.7<br />

2.4 Lien avec la méthode alternée de Schwarz. . . . . . . . . . . . . . . . . . . . . . . . 2.8<br />

3 Exemples d’applications des algorithmes itératifs asynchrones avec communication flexible. . 2.8<br />

4 Références du chapitre 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.13<br />

3 Implémentation des algorithmes parallèles synchrones et asynchrones. 3.1<br />

1 Description du multiprocesseur I.B.M.-SP2. . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3<br />

2 Description des outils de parallélisation P.V.M. et M.P.I. . . . . . . . . . . . . . . . . . . . 3.3<br />

2.1 Présentation de l’environnement Parallel Virtual Machine ( P.V.M. ). . . . . . . . . 3.3<br />

2.2 Présentation de l’environnement Message Passing Interface ( M.P.I. ). . . . . . . . . 3.4<br />

3 Rôle général du Maître et des Esclaves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5<br />

4 Mise en œuvre des algorithmes synchrones . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6<br />

4.1 Le Maître et l’Esclave synchrones. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6<br />

4.2 Algorithme synchrone et P.V.M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7<br />

4.3 Algorithme synchrone et M.P.I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9<br />

4.4 Quelques enseignements liés à l’utilisation de P.V.M. et M.P.I. pour développer les algorithmes<br />

synchrones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10<br />

5 Mise en œuvre des algorithmes asynchrones . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11<br />

5.1 Le Maître et l’Esclave asynchrones. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11<br />

5.2 Test d’arrêt et Terminaison. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14<br />

5.3 Algorithmes asynchrones et P.V.M. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.15<br />

5.4 Algorithmes asynchrones et M.P.I. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.18<br />

5.5 Exemple de gestion de la terminaison. . . . . . . . . . . . . . . . . . . . . . . . . . 3.21<br />

6 Références du chapitre 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.25<br />

4 Application des algorithmes asynchrones pour la résolution de problèmes de convectiondiffusion<br />

linéaires et non-linéaires. 4.1<br />

1 Cadre théorique pour le problème de convection-diffusion. . . . . . . . . . . . . . . . . . . . 4.3<br />

1.1 Cas de la discrétisation décentrée du terme de convection. . . . . . . . . . . . . . . . 4.3<br />

1.1.1 Le problème linéaire de convection-diffusion. . . . . . . . . . . . . . . . . . 4.3<br />

1.1.2 Situation non-linéaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4<br />

1.1.3 Problèmes de convection-diffusion avec forte convection. . . . . . . . . . . . 4.7<br />

1.2 Cas de la discrétisation centrée du terme de convection. . . . . . . . . . . . . . . . . 4.8<br />

ii


1.2.1 Le problème linéaire de convection-diffusion. . . . . . . . . . . . . . . . . . 4.8<br />

1.2.2 Situation non-linéaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9<br />

2 Expérimentations numériques pour le problème linéaire classique de convection-diffusion. . . 4.9<br />

2.1 Résultats détaillés de deux calculs avec discrétisation décentrée des termes de convection<br />

– Version P.V.M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.10<br />

2.2 Résultats des calculs avec discrétisation décentrée des termes de convection. . . . . . 4.12<br />

2.2.1 Implémentation avec P.V.M. . . . . . . . . . . . . . . . . . . . . . . . . . 4.12<br />

2.2.2 Implémentation avec M.P.I. . . . . . . . . . . . . . . . . . . . . . . . . . 4.18<br />

2.3 Résultats des calculs avec discrétisation centrée des termes de convection. . . . . . . 4.23<br />

2.3.1 Implémentation avec P.V.M. . . . . . . . . . . . . . . . . . . . . . . . . . 4.23<br />

2.3.2 Implémentation avec M.P.I. . . . . . . . . . . . . . . . . . . . . . . . . . 4.27<br />

3 Expérimentations numériques pour un problème non-linéaire de convection-diffusion. . . . . 4.32<br />

3.1 Résultats des calculs avec discrétisation décentrée des termes de convection. . . . . . 4.32<br />

3.1.1 Implémentation avec P.V.M. . . . . . . . . . . . . . . . . . . . . . . . . . 4.32<br />

3.1.2 Implémentation avec M.P.I. . . . . . . . . . . . . . . . . . . . . . . . . . 4.35<br />

3.2 Résultats des calculs avec discrétisation centrée des termes de convection. . . . . . . 4.38<br />

3.2.1 Implémentation avec P.V.M. . . . . . . . . . . . . . . . . . . . . . . . . . 4.38<br />

3.2.2 Implémentation avec M.P.I. . . . . . . . . . . . . . . . . . . . . . . . . . 4.41<br />

3.3 Commentaires sur les résultats du problème non-linéaire. . . . . . . . . . . . . . . . 4.44<br />

4 Synthèse des différents résultats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.44<br />

5 Comparaison P.V.M. et M.P.I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.44<br />

6 Références du chapitre 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.47<br />

5 Application des algorithmes asynchrones et synchrones à un problème d’écoulements<br />

incompressibles en formulation fonction courant-rotationnel. 5.1<br />

1 Equations du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3<br />

2 Algorithmes numériques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4<br />

2.1 Méthode alternée de Schwarz classique pour l’équation de convection-diffusion. . . . 5.4<br />

2.1.1 Cas des schémas de discrétisation décentrés. . . . . . . . . . . . . . . . . . 5.5<br />

2.1.2 Cas des schémas de discrétisation centrés. . . . . . . . . . . . . . . . . . . 5.5<br />

2.2 Une variante efficace de la méthode alternée de Schwarz pour l’équation de diffusion. 5.6<br />

3 Expérimentations numériques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10<br />

iii


3.1 Algorithmes séquentiels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.11<br />

3.2 Algorithmes parallèles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12<br />

3.2.1 Résultats des calculs avec discrétisation centrée des termes de convection. . 5.13<br />

3.2.2 Résultats des calculs avec discrétisation décentrée des termes de convection. 5.18<br />

4 Synthèse des résultats des algorithmes asynchrones. . . . . . . . . . . . . . . . . . . . . . . 5.20<br />

5 Références du chapitre 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.23<br />

6 Étude numérique d’un problème d’électrophorèse en écoulement continu. 6.1<br />

1 Position du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3<br />

1.1 Le principe de l’électrophorèse en écoulement continu. . . . . . . . . . . . . . . . . . 6.3<br />

1.2 Les phénomènes physiques mis en jeu. . . . . . . . . . . . . . . . . . . . . . . . . . 6.4<br />

2 Équations du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4<br />

2.1 Variables physiques et coefficients. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4<br />

2.2 Les équations du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4<br />

2.2.1 La conservation de la masse. . . . . . . . . . . . . . . . . . . . . . . . . . 6.4<br />

2.2.2 L’équation d’écoulement 3D. . . . . . . . . . . . . . . . . . . . . . . . . . 6.5<br />

2.2.3 L’équation de transport des protéines. . . . . . . . . . . . . . . . . . . . . 6.5<br />

2.2.4 L’équation de potentiel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5<br />

2.3 Les conditions aux limites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6<br />

2.3.1 Les conditions aux limites de l’écoulement 3D. . . . . . . . . . . . . . . . . 6.6<br />

2.3.2 Les conditions aux limites associées à l’équation de transport. . . . . . . . . 6.6<br />

2.3.3 Les conditions aux limites de potentiel. . . . . . . . . . . . . . . . . . . . . 6.7<br />

3 Discrétisation des équations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.8<br />

3.1 L’équation d’écoulement 3D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.8<br />

3.1.1 Rappel de l’algorithme PISO. . . . . . . . . . . . . . . . . . . . . . . . . . 6.8<br />

3.1.2 Rappel de la méthode des volumes finis. . . . . . . . . . . . . . . . . . . . 6.10<br />

3.1.3 L’équation de transport des protéines. . . . . . . . . . . . . . . . . . . . . 6.16<br />

3.1.4 L’équation de potentiel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.17<br />

4 Méthodes de résolution des systèmes linéaires. . . . . . . . . . . . . . . . . . . . . . . . . . 6.18<br />

4.1 La méthode du Bi-gradient conjugué pour le problème d’écoulement. . . . . . . . . . 6.18<br />

4.2 La méthode du Bi-gradient conjugué stabilisé pour les équations de transport et de potentiel.<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.19<br />

iv


5 Quelques Résultats Numériques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.19<br />

5.1 Le maillage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.19<br />

5.2 Valeurs indicatives des différents paramètres. . . . . . . . . . . . . . . . . . . . . . 6.22<br />

5.2.1 Problème d’écoulement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.22<br />

5.2.2 Équation de transport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.23<br />

5.2.3 Équation de potentiel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.23<br />

5.3 Différentes courbes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.23<br />

6 Références du chapitre 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.35<br />

A Récapitulatif des routines P.V.M. utilisées. A.1<br />

B Récapitulatif des routines M.P.I. utilisées. B.1<br />

C Récapitulatif des variables utilisées. C.1<br />

D Un préconditionnement de la méthode du gradient conjugué. D.1<br />

1 Notations ; position du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.1<br />

2 Une méthode du gradient conjugué préconditionné. . . . . . . . . . . . . . . . . . . . . . . D.2<br />

2.1 Initialisation : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.2<br />

2.2 Boucle : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.3<br />

3 Vitesse de convergence de l’algorithme : . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.3<br />

4 Application à la résolution du problème de Poisson avec conditions de Neumann. . . . . . . D.3<br />

E La méthode du BiGradient Conjugué Stabilisée ( Bi-CGSTAB ). E.1<br />

v

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!