TH`ESE - Enseeiht
TH`ESE - Enseeiht
TH`ESE - Enseeiht
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