Présentation
En anglaisRÉSUMÉ
Les algorithmes itératifs parallèles asynchrones et leurs extensions constituées par les méthodes de sous-domaines et de multi-décomposition, pour la résolution de grands systèmes algébriques linéaires ou pseudo-linéaires, éventuellement contraints, sont ici présentés. Le comportement de ces algorithmes est étudié selon trois méthodes distinctes en utilisant d’une part une propriété de contraction de l’application de point fixe associée au système d’équations à résoudre, d’autre part des propriétés de convergence monotone et enfin des propriétés d’emboitements successifs d’ensembles où sont situés les composantes réactualisées par l’algorithme itératif. Le lien entre ces trois types d’analyse est aussi présenté.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleABSTRACT
This paper presents asynchronous parallel iterative algorithms and their extensions constituted by subdomain and multisplitting methods, for the solution of large algebraic linear or pseudo-linear systems, possibly constrained. The behavior of these algorithms is studied by three methods using on the one hand a contraction property of the fixed point mapping associated with the system of equations to be solved, and on the other hand monotone convergence properties and finally properties of the successive nested sets where the updated components are located by the iterative algorithm. The link between these three types of analysis is also presented.
Auteur(s)
-
Pierre SPITERI : Professeur émérite - Université de Toulouse, INP-ENSEEIHT – IRIT, Toulouse, France
-
Jean-Claude MIELLOU : Professeur honoraire - Université de Bourgogne Franche-Comté, Département de Mathématiques, Besançon, France
INTRODUCTION
Les premiers ordinateurs étaient essentiellement constitués d’une mémoire chargée de stocker les programmes informatiques ainsi que les données nécessaires à ces derniers, une unité arithmétique et logique chargée d’effectuer ces types d’opérations, et les unités d’échanges vers les périphériques (disques, imprimantes, etc.). En raison de la présence d’une seule unité arithmétique et logique, sur ce type d’architecture, un code de calcul est exécuté en mode séquentiel sur cette seule ressource ; cela correspond à l’exécution des instructions l’une après l’autre, donc une seule à la fois, même si les opérations à effectuer sont indépendantes. Ce type d’exécution séquentielle a très rapidement atteint des limites de performances lorsque le calcul ne permet pas d’obtenir des résultats dans des délais raisonnables et nécessite un stockage mémoire important. Ainsi, pour des calculs rendus nécessaires pour traiter de grosses applications, comme par exemple en météorologie, ce type de programmation séquentielle n’est plus adapté et les performances de calcul ne sont pas satisfaisantes pour obtenir des résultats de simulation dans des temps relativement brefs.
Pour remédier à ces limitations le calcul parallèle est apparu comme une solution. Afin d’améliorer les performances des ordinateurs, cette solution consiste à exploiter au mieux les ressources de calcul et de mémorisation. La solution retenue revient à paralléliser les codes, c’est-à-dire à effectuer plusieurs calculs simultanément sur différentes ressources constituées pour chacune d’elle par une unité arithmétique et logique, appelée aussi processeur ; ainsi un plus grand nombre d’opérations sont effectuées en un temps minimal. Pour paralléliser un code de calcul, l’utilisateur est amené à décomposer le problème global à traiter en plusieurs sous-problèmes couplés chacun de taille plus petite. Ainsi plusieurs tâches de calcul pourront être traitées simultanément sur ces processeurs, le couplage entre les sous-problèmes étant effectué par des échanges de résultats entre les processus coopérants en parallèle. Par ce biais, à condition de bien optimiser les codes de calcul parallélisés, les temps d’exécution pourront nettement diminuer ce qui permettra de résoudre des problèmes de plus grande taille et de traiter des volumes de données plus importants.
Ce nouveau mode de calcul nécessite d’une part de remettre en cause l’architecture des premiers ordinateurs, d’autre part d’adapter le programme de calcul à un mode d’exécution parallèle et enfin d’apprendre de nouveaux langages et outils de programmation.
Les architectures de ces superordinateurs ont donc évoluées d’abord par la construction de machines à mémoire commune où tous les processeurs ont accès à cette dernière. Cependant ce type de machine est d’une part onéreux à construire et d’autre part il ne permet pas un parallélisme massif souhaitable pour traiter de grosses applications. Les constructeurs ont donc conçu des machines à mémoire distribuée où chaque processeur possède sa propre mémoire locale, les liaisons entre ces processeurs s’effectuant par un réseau d’interconnexion ; ce dernier permet des échanges de messages entre les processeurs ce qui réalise une mise en œuvre du parallélisme. Il existe également des architectures mixtes combinant les deux cas extrêmes précédents. On verra plus en détail dans un second article d’autres possibilités de concevoir des architectures parallèles.
Par ailleurs sur le plan de la programmation de ce type de machine, il convient de repenser le codage des algorithmes afin de prendre en compte les possibilités offertes d’effectuer simultanément plusieurs instructions en même temps. La solution idéale est de découper le problème à résoudre en tâches indépendantes. Ce mode de calcul est rarement possible et en général le programmeur considère un découpage du problème en tâches couplées entre elles ; dans ces conditions les processeurs échangent les résultats de leurs calculs avec les autres unités avec lesquelles ils doivent communiquer. On distingue essentiellement deux modes de communication : un mode de communication synchrone et un mode de communication asynchrone. Pour fixer les idées nous nous limiterons dans cette série d’articles à un mode de calcul itératif bien adapté à la résolution de problèmes de grande dimension ; dans ces conditions :
-
en mode de communication synchrone chaque processeur peut commencer une nouvelle itération lorsqu’il a reçu les données de tous les processeurs avec lesquels il doit communiquer ce qui implique des périodes d’inactivité entre les itérations ; ce mode de communication est donc bloquant ;
-
en mode de communication asynchrone, chaque processeur exécute ses propres itérations sans tenir compte de la progression des autres processeurs avec lesquels il doit communiquer ; ainsi les processeurs effectuent leurs calculs à leur propre rythme sans attendre les données émises par les autres processeurs en utilisant les dernières données disponibles délivrées par ces derniers. Dans ce mode de communication, il n’y a donc pas de période d’inactivité ; ce mode de communication est donc non bloquant.
Enfin, il existe de nombreux outils permettant de paralléliser les codes de calcul implémentés à partir des langages de programmation classiques (Fortran, C, C++).
MOTS-CLÉS
calcul haute performance méthode de sous-domaines méthode de multi-décomposition grands systèmes algébriques linéaires ou pseudo-linéaires
KEYWORDS
high performance computing | subdomain method | multisplitting method | large algebraic linear or pseudo-linear systems
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Mathématiques
(166 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
1. Position du problème
La simulation numérique est une démarche qui est devenue incontournable dans de nombreux domaines scientifiques et industriels, notamment grâce à la puissance actuelle de calcul et à la capacité de stockage des ordinateurs contemporains. Ainsi on assiste actuellement à un développement d’études de phénomènes physiques, chimiques, biologiques, économiques ou encore d’applications médicales, ayant comme point commun d’étre modélisés mathématiquement à partir de lois régissant ces divers phénomènes. Parmi les domaines où la simulation numérique intervient, nous pouvons citer la construction automobile et aéronautique, le génie chimique, la mécanique des fluides, le génie des procédés, les applications nucléaires, la physique des plasmas, la météorologie, l’océanographie, la biologie moléculaire et bien d’autres applications encore, cette liste n’étant pas exhaustive.
Les modèles mathématiques obtenus peuvent imposer des simulations numériques extrêmement complexes. La résolution des équations résultant de cette modélisation peut être une source de difficulté majeure en raison de l’utilisation de structures de données volumineuses pour stocker les données et les résultats de calculs et aussi en raison des temps de calculs prohibitifs. Par exemple, lorsque les phénomènes sont modélisés par des équations aux dérivées partielles, ou encore des systèmes d’équations aux dérivées partielles couplés, les méthodes de discrétisation par différences finies classiques, ou par éléments finis ou encore par volumes finis conduisent à la résolution de systèmes algébriques de très grandes dimensions ; en effet la complexité et le nombre d’inconnues sont d’autant plus élevés que les exigences sur la précision des résultats sont contraignantes. Pour faire face aux besoins grandissant en ressource de calcul, le développement conjoint des architectures et des algorithmes parallèles est une voie d’investigation très explorée actuellement.
Contrairement aux applications parallèles classiques telles que l’exploration de données, la résolution parallèle de grands systèmes algébriques, principalement de nature itérative surtout lorsque les matrices définissant ces derniers sont creuses, fait intervenir des algorithmes nécessitant de nombreux échanges...
Cet article fait partie de l’offre
Mathématiques
(166 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Position du problème
BIBLIOGRAPHIE
-
(1) - BARBU (V.) - Nonlinear Semigroups and Differential Equations in Banach Spaces. - Noordhoff International Publishing (1976).
-
(2) - PATANKAR (S.V.) - Numerical Heat Transfer and Fluid Flow. - Series in Computational Methods in Mechanics and Thermal Science. New-York : Hemisphere Publishing Corporation (1980).
-
(3) - AXELSON (O.), BARKER (V.A.) - Finite element solution of boundary value problems. - Computer Science and Applied Mathematics. New-York : Academic Press (1984).
-
(4) - DUVAUT (G.), LIONS (J.L.) - Les inéquations en mécanique et physique. - Dunod (1972).
-
(5) - GLOWINSKI (R.), LIONS (J.L.), TRÉMOLIERES (R.) - Analyse Numérique des Inéquations Variationnelles. - T. 1 – 2. Dunod (1976).
-
(6) - LAMBERTON (D.),...
DANS NOS BASES DOCUMENTAIRES
ANNEXES
Cet article fait partie de l’offre
Mathématiques
(166 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive