• Aucun résultat trouvé

Conception d'un programme distribué pour la résolution d'un système d'équation linéaire

N/A
N/A
Protected

Academic year: 2021

Partager "Conception d'un programme distribué pour la résolution d'un système d'équation linéaire"

Copied!
77
0
0

Texte intégral

(1)République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieure et de la Recherche Scientifique Université Ahmed Draia - Adrar Faculté des Sciences et de la Technologie Département des Mathématiques et Informatique. Mémoire de fin d’étude, en vue de l’obtention du diplôme de Master en informatique Option : Réseaux et Systèmes Intelligents. Thème. Conception d'un programme distribué pour la résolution d'un système d'équation linéaire. Préparé par : KOUJOUJI Djemaa. NADJEMI Zohra.. Soutenu le : 28/09/2015 devant le jury composé de : Dr. OMARI Mohammed. Président. Mr. KOUHILI Mohammed. Encadreur. Mr. KADI Mohammed. Examinateur. Mr. MAMOUNI El mamoun. Examinateur. Année Universitaire 2014/2015..

(2)

(3) Résumé La résolution de systèmes linéaires de très grande taille est très difficile actuellement, et est un point critique de problème scientifique ou industriel. Ces systèmes linéaires sont souvent révélés sous la forme de matrices non symétriques creuses et de très grande taille. La résolution de tels systèmes est l’objet de nombreuses recherches aussi bien à propos des méthodes numériques utilisées qu’au sujet de leur réalisation informatique. La taille des problèmes concernés et leur coût en temps de calcul incite à optimiser les méthodes. Pour augmenter la capacité de calcul de résolution de système d'équation de système linéaire en utilisent les systèmes distribués, ces systèmes sont très complexes à développer et à vérifier ; la modélisation et la spécification de tels systèmes est un enjeu pour assurer la qualité de tels systèmes. Les propriétés attendus de tels systèmes sont la sûreté, la fiabilité, la disponibilité, l’intégrité, la confidentialité . . . Dans ces idées, nous avons rassemblé quelques algorithmes de systèmes distribués fondamentaux mais aussi quelques principes et modèles pour ces systèmes. Dans une approche plus pratique, nous exposons nos contributions dans le développement de la plateforme logicielle ViSiDiA pour la simulation et la visualisation d'algorithmes distribués. Nos principales contributions sont la mise en place d’une version distribuée du logiciel, et pour résolution ces systèmes d’équation linaire avec des algorithmes distribués on utilise le langage java.. Mots clés : Système d’équations linéaires, système distribué, algorithmes distribués, ViSiDiA.. I.

(4) Dédicace. Je dédie ce mémoire A mes parents pour leur amour inestimable, leur Confiance, leur soutien, leurs sacrifices et toutes les Valeurs qu'ils ont su m'enseigner. A ma très chère mère pour son amour et ses Encouragements sans qui, je n’aurais jamais pu arrivée à L’aboutissement de ce travail. A mes frères et sas maries A mes sœurs, et rejeton frères chacun par Son nom J’espère que la vie leurs réserve le meilleur. A la mémoire de mes soutenir voisin tonton et de mon Oncle et rejeton tonton A mes oncle et tonton utérus leurs Allah A tous mes amis, chacun par son nom, pour leurs aides Précieuses. A toute ma famille ainsi qu'à mes amis.. Zohra.

(5) Je dédie ce modeste travail A ma très chère mère qui veille Pour me voir réussir, et qui n’a jamais cessé d m’encourager, de me conseiller… Elle m’a tout donné. Et je n'oublierai jamais tous ce que mon très cher père m’adonné , pour leur sacrifice illimité, que dieu l'accorde sa sainte miséricorde. A tous mes frères chacun par son nom pour son amour et ses encouragements. A ma sœur A tous mes amis ; A mon fiancé ; A mon rejeton frères. Mon binôme "Zohra" et tous sa famille.. Djemaa.

(6) Remerciement Nous remercions avant tout, Dieu de nous prodiguée la force moral et physique et nous a permis d’chever ce travail. Nous tenons à exprimer nos vifs remerciements à nous encadreurs Mr KOHILI Mohamed Professeur de l’informatique à l’université d’Adrar Pour avoir accepté de nous encadrer et de nous diriger, aussi pour sa patienté, pour ses conseils précieux et pour toutes les commodités et aisances qu’il nous a apportées durant notre étude et réalisation de ce projet. Nous remercions membres jury d’avoir accepte d’examiner ce modeste travail. Nous remercions touts les enseignants de département d’informatique que respectons beaucoup..

(7) Table des matières Résumé ………………………………………………………….…………………….………I Dédicace …………………………………………………………..…………………… ..…...II Remerciement ……………………………………………………..…………………………IV Table des matières…………………………………………………..……………………..…VI Liste des figures……………………………………………………….…………………….. .X Liste des tableaux ……………………………………………………….………..………….XI Liste de l’abréviation ………………………………………………….……………..…… .XII Introduction générale ……………………………………………………...…………….....….1. Chapitre I : les Systèmes distribués 1-Introduction ……………………………….………………………………………………4 2-Définitions systèmes distribués ………….………………..................................................4 2.1- Définition 1 ………………..……………………………………………………….4 2.2- Définition 2 ………………..……………………………………………………….4 3-Exemples de systèmes distribues ……………….…………………………………………5 3.1- Internet …………………………………………….…….…………………….…..5 3.2 - les systèmes mobile ……..………………….…………..………..………….…….5 3.3-Les systèmes pair à pair…….…………………….……….....……………….……..6 4-Systèmes distribués vs parallèles………..…………………………….................................6 4.1-Systèmes Parallèles …….………………………………….…………………..…...6 4.2- Systèmes distribués….………………………………………..................................7 5- Caractéristiques d’un système distribué …………………..…………………………….…8 5.1-Transparence ……..………………………………………….………………..…...8 5.2-Prise en charge des pannes partielles………...………………………......................9 5.2.1- Détection des pannes……………………………………..………………….…..9 5.3- Passage à l’échelle ………...……………………………………..........................10 5.4- Disponibilité ...…………………………………………………...........................10 5.5-Autonomie……………………………………...……………………………...…10 5.6- La mémoire répartie ……………………...……………………………...............11 5.7- Echange de messages ……………………………………….…….……...…...…11 6-Types des systèmes distribués ………………………………..……………………..……11 7- Domaines d’application des systèmes répartis…………………………………………….11. VI.

(8) 8-Les avantages et les inconvénients des systèmes distribués…………………………..……12 8.1- les Avantages des systèmes distribués ………….…………………………...…12 8.2- Les Inconvénients des systèmes distribués…………...…………………………13 9- Les Problèmes des systèmes distribués……………………………………...…….....….14 9.1- Problème d'hétérogénéité ……………………………………………..……..…15 9.2- problème de la concurrence……………………………………………...…...…15 9.3- problème de la sécurité ……………………………………………………..….15 9.4- problème des pannes …………………….…………………………………….16 9.5- absence des informations globales……………………………………………...16 10- Conclusion …………………………………………………………………………….16. Chapitre II : les Algorithmes distribués 1- Introduction…………………………………………………………………………...19 2- Définition des algorithmes distribués………………………………………………....19 3- Modélisation d'un système distribué…………………………………………………..19 4- Principes des l'algorithmiques distribuées…………………………………………….19 5- Un cadre de base pour les systèmes distribués………………………………………..20 5.1- Passage de messages (message passing)………………………………………20 5.2- Mémoire partagée……...……………………………………………………...20 5.3- Point-à-point……………...…………………………………………………...20 5.4- Réseau de diffusion………………………………………………...…………21 6- Spécification d’une tache à résoudre………………………………………….............21 6.1- Spécification d’un problème ……………………………………….……......21 7- Type de communication ………………………………………………………..……..21 7.1 - communication Synchrones………….………………………...……..……..21 7.2- communication asynchrones……...………….…………..………..………….22 8 - Modèles de communication………………………………………..….………………22 8.1- Communication par registres………………..……………………..…………22 8.2 -Communication par passage de messages……….………………..……….….23 9 - La Complexité……….………………………………..................................................23 9.1Complexité en messages……….……………………………………….…..….23 9.2 Complexité en temps……………………….……………………………........23 9.3 Complexité en espace ……………….…………………………….…….…...24 9.4 Complexité en bits……………………………….………………..…………..24. VII.

(9) 9.5 Complexité en mémoire……………………………………….………….......24 10- algorithmique distribué de base.………………………………….…………………...24 10.1- Exclusion mutuelle distribuée…………………………………………….24 10.2- Transaction distribuée…………………………………………………….25 10.3- Diffusion causale………………………………………………………….25 10.4- Vote, consensus…………………………………………………………...25 11- Problématique de l'algorithmique distribuée………………………………………….26 12- Conclusion…………………………………….……………………………...………27. Chapitre III : résolution des systèmes d'équations linéaires 1-Introduction.……………………………………………………….……………...……29 2-Défintion…………………………………………………………….……….....……....29 3- Classification des méthodes de résolution ………………………………...….……….29 3.1- Les méthodes directes…………..………………………………...……….…...29 3.2- Les méthodes itératives…….……………………………………...…….…….29 4- Méthodes des résolutions…………………………………………………….………...30 5-Résolution par la méthode de Gauss…………………...………………….……………30 5.1- Algorithme...……………………..………………...…………….…………....30 6-Résolution par la méthode de Jacobi………………….…………………………….…31 7- Résolution des systèmes d'équations linaire par le calcul scientifique……….…….…31 8- Parallélisme en analyse numérique………….………………………………………..32 9- Conclusion….…………………………………………………………………............33. Chapitre IV: implémentation et simulation 1- Introduction……………………………………………………………………..…….35 2- Intoduction a ViSiDiA……………………………………………………………......35 3- Architecture générale………………………………………………………….……...35 3.1- L’interface graphique (GUI)……………………..…………………..….……..35 3.2- Le simulateur……...…………………….…………………………….……….36 3.3.1 La bibliothèque d’algorithmes…………………….……………….………...38 4- Fondements Théoriques et Modèles………………...…………………………...……..39 4.1- Passage de Messages…………………...………………….…………...……...39 4.1.1 -Un modèle de système distribué………….……………………………....….39 5- Environnement de développement ………… …………………………….………........40 a) Choix de langage java …………………………………….……… .…..……......40. VIII.

(10) b) Les ressourc………… …….…………………………………………...……..….40 c) Paramètre de système linéaire..……..……………………………………………41 6-Implémentation de l’algorithme……………...……………………………………….…41 6.1- Arbre recouvrant de poids minimum…………………..…… .…...…………...41 6.1.1-Algorithmes de recherche de l'arbre couvrant de poids minimal……….…….42 6.1.1.1- L'algorithme de Kruskal…….…………………..……………..….........….42 6.2- Architecture de la méthode de résolution proposée…………...……….........…43 6.2.1- Méthodes de résolution……….……………………………………………....43 a-Méthodes directes (Méthode de Gauss) ………………………………………….43 b-Méthodes itératives (Méthode de Jacobi)……………………..……...…..……...45 7- Evaluations expérimentales…………..……………………………………..……….....47 7.1- Exécution séquentielle…………………………………………….………..…47 7.1.1- Mesures et Interprétation……..………………………………...……....…..47 7.2- Exécution parallèle de l’algorithme Gauss…..…….………………..……..….48 7.2.1- Mesures……………………………………………………………..…..…..48 7.2.2- In.terprétation ………………….…………………………………….……..51 7.3- Exécution parallèle de l’algorithme de Jacobi………..…………..…......…….51 7.3.1- Mesures ………………………………………………………………..……51 7.3.2- Interprétation…………………..…………………………………….........…54 7.4- Comparaison entre méthode de Gauss et méthode de Jacobi…………...….…54 7.5-Synthèse ……..…...……………………………………………………...…......55 8- Exemple de l’application ………………..……………...………………...……………..55 9-Conclusion …………………………………………….…………………….…………...60 Conclusion générale ………………….…..………………………………………………...61 Référence ……………….………………………………………………………………….62. IX.

(11) Liste des Figures Figure 1.1- Systèmes Parallèles. ……………………………………………….……..……...7 Figure 1.2- Systèmes distribués ………………………………………………..……..……...8 Figure 1.3- structuration en couches des systèmes distribués………………………....…….14 Figure 1.4- architecture générale de résolution des problèmes par les calculs scientifiques...32 Figure 4.1-. Architecture de Visidia ………………………………………………….……37. Figure 4.2- Simulation par passage de messages……………………………………………40 Figure 4.3- Algorithme la matrice A symétrique ……………………………………………41 Figure 4.4-toplogei de l’arbre couvrant intaille ……………………………………………...42 Figure 4.5-toplogei de l’arbre couvrant de poids minimal…………………………………..42 Figure4.6- Algorithme de Kruskal …..……………………………………………………...44 Figure 4.7- Algorithme de Gauss séquentielle ……………………………………………….44 Figure4.8- Algorithme de Jacobi séquentielle ……………………………………………….46 Figure 4.9 - méthode gauss séquentiel ……………………………………………………….48 Figure 4.10 - Courbe d’exécution algorithme Gauss sur cinq nœuds……………….………..49 Figure 4.11- Courbe d’exécution algorithme Gauss sur quinze nœuds………………………..50 Figure 4.12 - Courbe d’exécution algorithme Gauss sur vingt nœuds………………...……….51 Figure 4.13- Courbe d’exécution algorithme Jacobi sur cinq nœuds………………….……...52 Figure 4.14- Courbe d’exécution algorithme Jacobi sur quinze nœuds………………………..53 Figure 4.15- Courbe d’exécution algorithme Jacobi sur vingt nœuds……………………........54 Figure 4.16- Courbe d’exécution algorithme Gauss et Jacobi sur cinq nœuds………………..55 Figure 4.17- fenêtre exemple d’exécution …………………………………………………….56 Figure 4.18- fenêtre exemple d’exécution de simulation de select algorithme…………...…..56 Figure 4.19-fenêtre exemple d’exécution de simulation de select algorithme………….…..…57 Figure 4.20-fenêtre exemple d’exécution de simulation choiser algorithme kruksal ………....57 Figure 4.21-fenêtre exemple d’exécution de simulation et début de simulation …………......58 Figure 4.22-fenêtre exemple d’exécution de simulation les algorithmes distribués………….58 Figure 4.23-fenêtre exemple d’exécution de simulation les algorithmes distribué ……..…..59 Figure 4.24- fenêtre exemple d’exécution de simulation algorithme de Gauss et Jacobi…….59. X.

(12) Liste des tableaux Tableau4. 1 - l’exécution parallèle de l’algorithme de Gauss cas de cinq nœuds…………....48 Tableau 4.2 - l’exécution parallèle de l’algorithme de Gauss cas de quinze nœuds…………49 Tableau 4. 3 - l’exécution parallèle de l’algorithme de Gauss cas de vingt nœuds……...…...50 Tableau 4.4 -l’exécution parallèle de l’algorithme de Jacobi cas de cinq nœuds…………….52 Tableau 4.5 -l’exécution parallèle de l’algorithme de Jacobi cas de quinze nœuds……….…52 Tableau 4.6- l’exécution parallèle de l’algorithme de Jacobi cas de vingt nœuds…………....53. XI.

(13) Liste de l’abréviation SD : Systèmes Distribué. EM : Exclusion Mutuelle. SC : Section Critique. FIFO : First-In First-Out. www : world Wilde web. FTP : File Transfert Protocole. EDP : Equations aux Dérivées Partielles. ViSiDiA : Visualiser et de Simuler des Algorithmes Distribués. LaBRI : Laboratoire Bordelais de Recherche en Informatique. GUI : Interface Graphique. ARPM : arbre recouvrant de poids minimum. SR : Système Réparti. SEL : Systèmes d’équations Linéaires.. XII.

(14) Introduction général La résolution des systèmes linéaires est considérée comme l’un des deux problèmes fondamentaux de l’Analyse Numérique Matricielle, et cette résolution intervient à divers domaines, en particulier lorsqu’il s’agit de modéliser puis résoudre numériquement des problèmes comme par exemple en : – Electricité : recherche des intensités du courant dans un circuit électronique en utilisant les lois des nœuds et des mailles... ; – Chimie : l’équilibre des équations des réactions chimiques ; – Algèbre linéaire : recherche des vecteurs propres d’une matrice carrée associés à une valeur propre donnée, déterminer le noyau d’un endomorphisme en dimension finie (système homogène) ; – Géométrie analytique : étudier la position relative des droites et des plans dans l’espace ; – Optimisation : minimisation ou maximisation d’une fonction quadratique ; – Analyse numérique : interpolation polynômiale (matrice de Vandermonde), résolution digital des méthodes des différences finies où les matrices rencontrées sont tridiagonales. Pour beaucoup de domaines scientifiques et industriels, la demande de méthodes d’analyse numérique et d’outils est de plus en plus importante, surtout pour les résolutions des grands systèmes linéaires et des problèmes scientifiques aux valeurs propres. Fréquemment ces problèmes dérivent de discrétisation d’équations aux dérivées partielles (EDP) et sollicitent le traitement de matrices de très grande taille. Le nombre important de données cause des problèmes de stockage et de temps de calcul qui sont excessifs sur les machines séquentielles, d’où l’exigence d’utiliser de machines des systèmes distribués pour. surmonter les limitations. Les. grandes machines (les. supercalculateurs) font souvent collaborer jusqu’à une centaine de processeurs et ont une grande capacité de mémoire. Et les systèmes distribués font coopérer jusqu’à une dizaine de milliers de PCs avec des systèmes d’exploitation différents. Souvent, les systèmes distribués à grande échelle sont une version économique de supercalculateur. La minimisation du temps de calcul distribué découle de la réalisation de plusieurs opérations simultanément. Un système distribué possède aussi un ensemble de processeurs mais interconnectés par un réseau informatique. En effet, les processeurs peuvent être géographiquement très éloignés les uns des autres. Par exemple, les processeurs peuvent être situés dans des pays différents et. 1.

(15) être interconnectés par un réseau comme internet. De plus, chaque processeur possède sa propre mémoire locale et échange de l’information avec les autres processeurs à l’aide de messages envoyés via le réseau les connectant. Dans un système distribué, tous les processeurs exécutent le même algorithme et celui-ci doit fonctionner quel que soit la topologie du réseau. Chaque processeur n’a qu’une vision partielle du système et doit communiquer avec les autres processeurs afin d’accomplir sa tâche. Ainsi, l’accent est mis sur la méthode collaborative pour résoudre une tâche donnée. L’objective générale de ce travail est résolution de systèmes d'équation linéaire par des méthodes numériques utilisées qu’au sujet de leur réalisation informatique. La taille des problèmes concernés et leur coût en temps de calcul incite à optimiser les méthodes. Pour augmenter la capacité de calcul de résolution de système d'équation linéaire en utilisent les systèmes distribués, ces systèmes sont très complexes à développer et à vérifier ; la modélisation et la spécification de tels systèmes distribués est un enjeu pour assurer la qualité de tels systèmes. Cette travaille est organisée comme suit : Le premier chapitre présente les définitions et les principaux concepts liés aux systèmes distribués, Nous présentons le concept de système distribué ainsi quelque exemple de systèmes Distribués. Le deuxième chapitre introduit définition, différents modes de communication, la Complexité et les problèmes des algorithmes des systèmes distribués. Le troisième chapitre présente la généralisation, les problèmes et les méthodes de résolution des systèmes linéaires. Dans Le quatrième chapitre nous avons implémenté pu mettre en place des tests pour la résolution d’un système d’équations linéaire en utilisant le simulateur VISIDIA.. 2.

(16) Chapitre I Les systèmes distribués.

(17) Chapitre I. les systèmes distribués. 1- Introduction Les systèmes distribués sont nés de la connexion des ordinateurs entre eux. Mais plus généralement, un système distribué est constitué d’entités calculant, coopérant en s’échangeant de l’information afin de réaliser un but commun. La notion de répartition dans l’espace est relative ; on trouve des algorithmes distribués depuis les circuits électroniques jusqu’aux applications fonctionnant au-dessus d’un réseau de télécommunication tel qu’Internet. Le but du domaine des systèmes distribués est de masquer la répartition des données et des centres de décision aux utilisateurs. Les divers systèmes distribués se distinguent par des paramètres qualitatifs et quantitatifs, ainsi que par les facilités qu’ils offrent ou, au contraire, qui leur font défaut. Parmi celles-ci, la connaissance globale (nom des sites, routage, horloge, synchronisation, etc.) dont un site peut disposer est un paramètre important. Les systèmes distribués sont plus complexes à appréhender que les systèmes centralisés et séquentiels car l’ordre des actions est plus difficilement déterminé. Les systèmes distribués se distinguent des systèmes parallèles et concurrents par la distribution intrinsèque des données et des unités de transformation de ces données. La répartition des données et des unités de calcul est subie, et le but est de masquer cette distribution, en offrant aux utilisateurs les outils nécessaires pour l’oublier, et ainsi faciliter l’utilisation du système.. 2-Définitions des systèmes distribués 2.1- Définition 1 Un système distribué est une collection d’ordinateurs indépendants, connectés par l’intermédiaire d’un réseau, qui apparaissent comme un unique ordinateur pour les utilisateurs du système [1].. 2.2- Définition 2 Un système distribué est un ensemble d’éléments reliés par un réseau de communication. Ces éléments ont des fonctions de traitements (processeurs), de stockage (mémoire) et de relation avec le monde extérieur (capteurs, actionneurs communication). Le système de communication met en œuvre une méthode de communication (par exemple, par envoi de messages).Les différents éléments du système ne fonctionnent pas indépendamment mais collaborent à une ou plusieurs tâches communes. Une partie au moins de l’état global du système est partagée entre plusieurs éléments pour avoir un système distribué [1].. 4.

(18) Chapitre I. les systèmes distribués. 3-Exemples des systèmes distribués Les exemples des systèmes distribués sont nombreux et variés. Un même système distribué peut être fondé sur plusieurs autres systèmes distribués de niveaux différents. En effet, une application distribuée est un système composé de processus qui s’exécute sur plusieurs ordinateurs connectés par un réseau. Cet ensemble d’ordinateurs connectés est lui-même un système distribué. Les couches des systèmes d’exploitation qui assurent le maintien du réseau constituent un système distribué, etc. comme exemples illustratifs, nous considérons Internet, les systèmes mobiles, Les systèmes pair à pair.. 3.1-Internet Internet est une vaste collection de réseaux d’ordinateurs interconnectés. Les programmes qui s’exécutent sur ces ordinateurs interagissent par l’échange de messages en utilisant un moyen de communication ou un autre. La mise en œuvre des moyens de communication constitue un défi considérable qui a permis à un ordinateur quelconque d'échanger des messages avec n'importe quel autre ordinateur dans le réseau. Internet constitue actuellement le système distribué le plus large au monde et ceci sur quasiment tous les plans. Des utilisateurs de n’importe quelle position dans le monde peuvent utiliser les services offerts par le www (world Wilde web), le FTP (file transfert protocole), et autres applications. Les services disponibles peuvent être étendus librement et le système peut être agrandi par l'ajout d'ordinateurs à n'importe quel moment [3].. 3.2 - les systèmes mobiles Le progrès dans la miniaturisation et les réseaux sans fil laisse envisager le concept de l’espace d’information totalement connecté ou chaque entité dotée certaine fonctionnalité est connectée aux autres entités moyennant des dispositifs électroniques et des liaisons sans fil. Ces liaisons permettent à chacune d’avoir des informations sur les autres et éventuellement invoquer les services qu’elles offrent. Comme la majorité des entités sont dynamiques ont a affaire à des systèmes mobiles. Le partage de ressources dans de tels systèmes est une tâche complexe qui nécessite une certaine forme d’organisation et des mécanismes et protocoles ad hoc [3].. 5.

(19) Chapitre I. les systèmes distribués. 3 .3- Les systèmes pair à pair Le terme pair à pair (Peer to Peer en anglais) fait référence à une classe de systèmes distribués qui utilisent des ressources distribuées pour réaliser une tâche particulière de manière décentralisée. Les ressources sont composées d’entités de calcul (ordinateur), de stockage de données, d’un réseau de communication, etc. La tâche à exécuter peut être du calcul distribué, du partage de données (ou de contenu), de la communication et collaboration, d’une plateforme de services, etc. La décentralisation, quant à elle, peut s’appliquer soit aux algorithmes, soit aux données, soit aux métadonnées, soit à plusieurs d’entre eux. L’une des particularités des systèmes pairs à pair est que tous les nœuds (pairs) sont en général symétriques, c’est à dire qu’ils jouent à la fois le rôle de client et de serveur. En particulier, les systèmes de partage de fichiers permettent de rendre les objets d’autant plus disponibles qu’ils sont populaires, en les répliquant sur un grand nombre de nœuds. Cela permet alors de diminuer la charge (en nombre de requêtes) imposée aux nœuds partageant les fichiers populaires, ce qui facilite l’augmentation du nombre de clients et donc le passage à l’échelle en taille des données [15].. 4-Systèmes distribués vs parallèles 4.1-Systèmes Parallèles. Un système parallèle contient un ensemble de processeurs qui sont proches les uns des autres (sur la même machine). De plus, tous les processeurs ont accès `a une mémoire commune et partagée par chacun d’eux. Cette mémoire commune permet d’échanger de l’information entre les processeurs. Dans un système parallèle, il est possible de choisir l’algorithme (ou une partie de celui-ci) qui sera exécuté par chaque processeur. L’architecture connectant les processeurs entre eux est prédéfinie. La tâche à résoudre peut être ainsi découpée et répartie sur les processeurs. Le but est d’exploiter au maximum la puissance de calcul du système [7].. 6.

(20) Chapitre I. les systèmes distribués. Figure : 1.1- Systèmes Parallèles.. 4.2- Systèmes distribués Un système distribué possède aussi un ensemble de processeurs mais interconnectés par un réseau informatique. En effet, les processeurs peuvent être géographiquement très éloignés les uns des autres. Par exemple, les processeurs peuvent être situés dans des pays différents et être interconnectés par un réseau comme internet. De plus, chaque processeur possède sa propre mémoire locale et échange de l’information avec les autres processeurs à l’aide de messages envoyés via le réseau les connectant. Dans un système distribué, tous les processeurs exécutent le même algorithme et celui-ci doit fonctionner quel que soit la topologie du réseau. Chaque processeur n’a qu’une vision partielle du système et doit communiquer avec les autres processeurs afin d’accomplir sa tâche. Ainsi, l’accent est mis sur la méthode collaborative pour résoudre une tache donnée [7].. 7.

(21) Chapitre I. les systèmes distribués. Figure : 1.2- Systèmes distribués.. 5- Caractéristiques d’un système distribué Un système distribué doit assurer plusieurs propriétés pour être considéré comme performant. Nous citerons dans cette section que celles que nous trouvons les plus connexes à notre contexte d’études : la transparence, le passage à l’échelle, la disponibilité et l’autonomie.. 5.1-Transparence : La transparence permet de cacher aux utilisateurs les détails techniques et organisationnels d’un système distribué ou complexe. L’objectif est de pouvoir faire bénéficier aux applications une multitude de services sans avoir besoin de connaître exactement la localisation ou les détails techniques des ressources qui les fournissent. Ceci rend plus simple, le développement des applications, mais aussi leur maintenance évolutive ou corrective. Selon la norme la transparence a plusieurs niveaux : Accès : cacher l’organisation logique des ressources et les moyens d’accès à une ressource. Localisation : l’emplacement d’une ressource du système n’a pas à être connu. Migration : une ressource peut changer d’emplacement sans que cela ne soit aperçu. Relocalisation : cacher le fait qu’une ressource peut changer d’emplacement au moment où elle est utilisée. Réplication : les ressources sont dupliquées, mais les utilisateurs n’ont aucune connaissance de cela.. 8.

(22) Chapitre I. les systèmes distribués. Concurrence : correspond au fait qu’un ensemble de machines indépendantes tentent d’accéder simultanément à une même ressource ou à un ensemble de ressources partagées. Il est alors nécessaire de conserver cette ou ces ressources dans un état cohérent. Nous étudierons deux mécanismes permettant cela. Nous verrons que le problème de concurrence est déjà présent dans les environnements d’exécution locaux à processus légers, ce qui permet de le gérer de façon transparente dans un environnement d’exécution distribuée. Nous étudierons les contraintes qu’il est alors nécessaire d’imposer pour assurer le respect de la cohérence de l’application d’origine [4].. 5.2-Prise en charge des pannes partielles Les pannes dans un système distribué peuvent être de différente nature et affecter divers composants. Une panne peut être franche, transitoire, intermittente ou byzantine. Une panne franche correspondra généralement à un crash, c’est-à-dire que le processus cessera de répondre à toute requête ou d’émettre des requêtes. Une panne transitoire ou intermittente, au contraire, la panne apparaîtra à un instant donné puis le processus fonctionnera à nouveau correctement. Les pannes byzantines sont caractérisées par un comportement déviant du processus affecté : ce dernier ne respecte plus sa spécification, soit à cause d’une opération malveillante, soit en raison d’une erreur logicielle ou encore à la suite d’une erreur physique non détectée comme une erreur mémoire. Quel que soit le type de panne qui apparaisse, une première difficulté consiste à la détecter avant de pouvoir la gérer [4]. 5.2.1-Détection des pannes En général, un mécanisme de détection de panne dans un système distribué décrète un délai – time out – au-delà duquel, si aucune réponse n’a été reçue, le processus est considéré comme étant en panne. Dans un système synchrone pour lequel le délai maximum de communication et de traitement d’une requête est connu, ce système détectera les pannes correctement. Cependant, dans un système totalement asynchrone et pour lequel les délais de réponse ne sont pas prévisibles, comme c’est le cas pour la plupart des systèmes distribués, cette méthode ne permettra pas de distinguer un processus en panne d’un processus très lent. Ce phénomène abouti à l’impossibilité de la résolution de certains problèmes en présence d’une panne, notamment celui du consensus [5]. Dans lequel un ensemble de processus doivent se mettre d’accord sur une valeur commune [4].. 9.

(23) Chapitre I. les systèmes distribués. 5.3- Passage à l’échelle Le concept de passage à l’échelle désigne la capacité d’un système à continuer à délivrer avec un temps de réponse constant un service même si le nombre de clients ou de données augmente de manière importante. Le passage à l’échelle peut être mesuré avec au moins trois dimensions : Le nombre d’utilisateurs et/ou de processus (passage à l’échelle en taille). La distance maximale physique qui sépare les nœuds ou ressources du système (Passage à l’échelle). Le nombre de domaines administratifs (passage à l’échelle administrative) [4].. 5.4- Disponibilité Un système est dit disponible s’il est en mesure de délivrer correctement le ou Les services de manière conforme à sa spécification. Pour rendre un système disponible il faut donc le rendre capable de faire face à tout obstacle qui peut compromettre son bon fonctionnement. En effet, l’indisponibilité d’un système peut être causée par plusieurs sources parmi lesquelles nous pouvons citer : Les pannes qui sont des conditions ou évènements accidentels empêchant le système, ou un de ses composants, de fonctionner de manière conforme à sa spécification. Les surcharges qui sont des sollicitations excessives d’une ressource du système entraînant sa congestion et la dégradation des performances du système [4].. 5.5-Autonomie Un système ou un composant est dit autonome si son fonctionnement ou son intégration dans un système existant ne nécessite aucune modification des composants du système hôte. L’autonomie des composants d’un système favorise l’adaptabilité, l’extensibilité et la réutilisation des ressources de ce système. Par exemple, une ressource autonome peut être remplacée avec une autre ressource plus riche en termes de fonctionnalités, ce qui étend les services du système [4]. La confiance entre les différentes machines d’un système distribué est un élément essentiel. Nous ajoutons donc cette caractéristique aux quatre précédentes. Dès lors que l’ensemble des machines participant à un système distribué ne sont pas toutes gérées et administrées par la même organisation, des problèmes de confiance entre ces machines apparaissent. Il est nécessaire de proposer des mécanismes pour gérer cette confiance et assurer une certaine protection en son absence [4].. 10.

(24) Chapitre I. les systèmes distribués. 5.6- La mémoire répartie La mémoire répartie est une caractéristique constitutive des systèmes distribués. Chaque machine participant à un système distribué possède sa propre mémoire, son propre espace d’adressage et éventuellement ses propres périphériques de stockage permanents. La mémoire de l’ensemble du système est donc répartie dans le sens où une partie des données se trouve sur un site, une autre partie sur un autre et certaines données peuvent éventuellement être dupliquées. La prise en charge de cette répartition implique la mise en œuvre de mécanismes de communication pour l’échange de données entre les différents sites. Cet échange peut être explicite, par l’utilisation d’une bibliothèque de communication. Il peut être abstrait dans la notion d’appel de routine à distance. Il peut enfin être implicite dans le cas d’une mémoire virtuellement partagée [4].. 5.7- Echange de messages L’échange de messages est vraisemblablement la méthode le plus basse niveau, ou en tout cas la plus proche du modèle d’exécution sous-jacent. Pour qu’une machine A connaisse une information contenue sur une machine B, cette dernière doit envoyer un message contenant cette information à la machine A. Cet envoi de message est explicite au niveau du paradigme de programmation et doit être pris en charge par le développeur [4].. 6-Types des systèmes distribués Il existe trois grandes familles de systèmes distribués :  Les systèmes distribués architecturés autour de systèmes d'exploitation orientés réseaux.  Les systèmes distribués reposants sur des systèmes d'exploitation auxquels sont ajoutées. des fonctionnalités <réparties>.ces systèmes permettent de gérer, de façon. plus ou moins évidente, l’hétérogénéité des différents hôtes.  Les systèmes distribués reposant sur système d'exploitation complètement distribué. Dans ce cas, le noyau lui-même possède tous les outils pour prendre sous sa responsabilité la communication inter processus synchrone. Ces systèmes ne gèrent pas directement l’hétérogénéité des différents hôtes [10].. 7- Domaines d’application des systèmes distribués  Ingénierie simultanée  Coopération d’équipes pour la conception d’un produit  Production coopérative de documents  Partage cohérent d’information. 11.

(25) Chapitre I. les systèmes distribués.  Gestion intégrée des informations d'une entreprise  Intégration de l’existant  Contrôle et organisation d’activités en temps réel  Centres de documentation, bibliothèques  Recherche, navigation, visualisation multimédia [9].. 8-Les avantages et les inconvénients des systèmes distribués 8.1- les Avantages des systèmes distribués Les structures de dimension internationales telles que la défense, les banques ou les grandes entreprises voient leurs activités s’étendre planétairement et ne peuvent plus centraliser toute l’information sur un système unique. En outre, de plus en plus de transactions courantes s’effectuent via les réseaux. Prenons l’exemple d’une société de courtage gérant des affaires dans de très nombreux pays. Plutôt que de centraliser toute l’information sur un site central, il vaudra mieux distribuer l’information locale à chaque pays dans son comptoir associé. Ce système présente les avantages suivants : Performance : lors d’une transaction entre deux pays, les données utilisées seront principalement celles situées dans les comptoirs des pays concernés. Ainsi, on limite d’autant la congestion d’un système central. En outre, cette dispersion en unités indépendantes et autogérées permet de mettre à jour plus simplement les données ayant attrait, par exemple à la législation locale d’un pays. Robustesse : lors d’une défaillance du système informatique d’un comptoir, seul celui-ci est touché. Le système continue de fonctionner dans sa globalité. Evolutivité : une transaction peut avoir besoin de données situées sur d’autres serveurs que les deux qui l’ont initiée et s’étendre géographiquement. Comme précisé plus haut, les mises à jour des données de base sont moins coûteuses et pénalisantes pour les performances du système [2]. Sécurité : les applications sont conçues selon une approche modulaire permettant d'isoler les données, et donc protéger les accès. Accélération des calculs : un calcul peut être découpé en sous calculs réalisables en même temps (en parallèle), le système réparti permet alors de répartir les calculs sur les différents processus afin de les exécuter simultanément. Lorsqu'un site est surchargé, certaines tâches peuvent être déplacées ou allouées à un site moins chargé (la répartition des charges). Transparence : l'utilisation des ressources n'influe pas sur leurs états [10].. 12.

(26) Chapitre I. les systèmes distribués. Flexibilité : l'ajout ou la suppression d'un site est une opération simple, et n'influe pas sur le fonctionnement total du système [33]. Fiabilité : un des buts des systèmes répartis est d'obtenir des systèmes plus fiables que les monoprocesseurs. Si une machine tombe en panne, une autre machine devrait prendre la relève, cette situation entraîne généralement la duplication des données partagées pour accroître la robustesse du système [33]. Communication entre les systèmes : Lorsque plusieurs systèmes sont interconnectés par un réseau de communication global, les hôtes le plusieurs sites peuvent échanger des données. Au niveau du réseau, les données sont transmises, entre les processus, par des flots de messages. Etant donné cette possibilité de transfert de messages, l'ensemble des fonctionnalités, accessible au niveau utilisateur local, peut être étendue de manière à englober le système réparti. (Transfert de fichiers complets) [10]. Accès distant : un même service peut être utilisé par plusieurs sites, situés à des endroits différents. Redondance : des systèmes redondants permettent de palier une faute matérielle, où de choisir le service équivalent avec le temps de réponse le plus court [6].. 8.2-Les Inconvénients des systèmes distribués Les inconvénients des systèmes répartis sont des (pseudos) inconvénients, en effet ce sont des problèmes concernant surtout la communication, les avantages offerts par les systèmes répartis nous aident à exploiter le matériel et à concevoir des systèmes informatiques larges et performants, mais ces systèmes ont toujours des problèmes à résoudre. L'absence d'une horloge globale : chaque nœud possède sa propre horloge pour dater les événements qui lui sont locaux. Par conséquent, si les horloges indépendantes de chaque nœud ne sont pas parfaitement synchronisées, l'ordre des événements n'est pas déductible à partir des datations locales. Cette difficulté conduira à définir des datations logiques qui permettent de corriger ce problème.. 13.

(27) Chapitre I. les systèmes distribués. La lenteur de la communication : malgré le degré de fiabilité offert par les réseaux de communication, et les vitesses de transmission qu'ils proposent(avec l'arrivée des fibres optiques), les réseaux restent relativement, et on dit bien relativement lents par rapport à la vitesse de calcul sur les machines, ce qui implique un grand temps d'attente dans le cas d'un travail coopératif entre les processus, et donc on obtient une perte concernant la performance du système. La perte des messages : parfois, les réseaux de communication ne sont pas fiables, quelques messages transportés par ces réseaux peuvent être perdus, et donc on doit réémettre ces messages, les protocoles de détection, de perte, et la génération des nouveaux messages reste jusqu' à maintenant un des domaines de recherche dans les systèmes répartis [6].. 9-Les Problèmes des systèmes distribués Actuellement, les applications distribuées apparaissent comme une dernière couche audessous de laquelle il y a plusieurs autres. On en distingue trois telles qu'illustrées par la figure 1.3 suivant :. Figure : 1.3-structuration en couches des systèmes distribués. 14.

(28) Chapitre I. les systèmes distribués. Dans chaque couche, il est possible d'avoir diverses entités reliées par un réseau qui est physique dans la couche matérielle et virtuel dans les couches. Chaque couche matérialise, à elle seule, un système distribué. Cependant, comme les entités de chaque couche s'exécutent en utilisant les services disponibles dans les inférieures, les applications distribuées sont donc mises en œuvre moyennant plusieurs systèmes distribués.la couche middleware est une couche spécifique pour les systèmes distribués. Qu’est censée cacher les subtilités des couches inférieures et offrir aux concepteurs des applications distribuées des services plus convenables de nature à réduire leur complexité [3].. 9.1- Problème d'hétérogénéité Les composants d'un système distribués sont appelés à coopérer pour partager les ressources mais chaque composant peut avoir ses spécificités qui limitent ce partage ou le rendent difficile. L'hétérogénéité au niveau matériel vient de la différence qui existe entre les ordinateurs aussi bien qu'entre les réseaux. Dans un même système distribué, il est possible de trouver un ordinateur personnel, une station de travail sophistiquée ou même un ordinateur multiprocesseur puissant [3].. 9.2-problème de la concurrence Le problème de la concurrence se pose pour les systèmes distribués comme pour les systèmes centralisés (i.e. multiprocesseurs).la gestion de la concurrence dans les systèmes distribués. nécessite. des. mécanismes. et. des. outils. tout. comme. les. systèmes. centralisés(moniteurs, sémaphore).cependant, dans le cas des systèmes distribués, la gestion de la concurrence se base en partie sur la communication par messages et cette dernière introduit d'autres sources de difficultés, telles que la perte de messages ou leur corruption, d'en-t-il faut tenir compte [3].. 9.3- problème de la sécurité Les problèmes de sécurité se posent pour tous les systèmes informatiques. Cependant, dans les systèmes distribués, la vulnérabilité se trouve accentuée par la répartition même. Ainsi, il est naturel dans le commerce électronique qu'une partie de l'application (un client) envoie des messages à un autre (un serveur).malheureusement le message peut être intercepté,. 15.

(29) Chapitre I. les systèmes distribués. lors de sa transmission, et son contenu divulgué, ce qui peut entrainer de conséquences graves aussi bien pour le client que pour le serveur [3].. 9.4- problème des pannes Les pannes peuvent apparaitront aussi dans les différentes couches et se propager éventuellement aux autres couches. L'origine des pannes peut être une raison matérielle ou une. raison logique liée à la conception des applications, des middlewares et des systèmes. d'exploitation. Certaines peuvent avoir comme origine une faille dans gestion de la concurrence ou la coordination en général. Les pannes d'ordre logiques sont innombrables du fait que les applications distribuées sont par nature même, complexes [3].. 9.5-absence des informations globales Dans le cas des systèmes distribués, la mémoire commune est inexistante. Chaque processus se trouve dans un environnement différent et son état est une information interne à ce dernier. De même, les informations sur les ressources partagées ne sont pas accessibles en temps réel.de ces faits, la coordination d'un ensemble de processus distribués nécessite le recours à la communication par échange de message. Malheureusement, un message parvient toujours à sa destination avec un certain retard et par conséquent l'information qu'il véhicule ne reflète pas toujours l'état d'un processus ou d'une ressource, car ces derniers peuvent changer d'état durant la transmission du message. Il est impossible d'avoir une globale instantanée de l'état d'un système distribué et cette situation rend la coordination dans ces derniers un véritable challenge [3].. 10- Conclusion Dans ce chapitre, nous avons présenté et formalisé la notion générale de système distribue, les différents composants qui le constituent. Les systèmes distribués sont au cœur des technologies de l'information. Il est devenu classique de s'appuyer sur multiples unités distribuées pour améliorer la performance d'une application, la tolérance aux pannes, ou pour traiter problèmes dépassant les capacités d'une seule unité de traitement. La conception d'algorithmes adaptés au contexte distribué est particulièrement difficile en raison de l'asynchronisme et du non-déterminisme qui. 16.

(30) Chapitre I. les systèmes distribués. caractérisent ces systèmes. La simulation offre la possibilité d'étudier les performances des applications distribuées sans la complexité et le coût des plates-formes d'exécution réelles. Les systèmes répartis ont résolus beaucoup de problèmes, et avec l'évolution de la technologie du monde actuel.. 17.

(31) Chapitre II Les Algorithmes Distribués.

Références

Documents relatifs

S’il s’agit d’un filtre SLCI, les propriétés de linéarité et d’invariance dans le temps impliquent que la fonction réponse s(t) est la somme infinie de ces diracs s(t 0

Dans cette section, nous présentons une étude expérimentale où nous évaluons l’efficacité de notre algorithme pour le clustering structurel de grands graphes distribués..

L’innovation majeure de ce papier r´eside dans le fait que nous prouvons que la structure poss`ede simultan´ement de bonnes qualit´es en termes de distances (minimisation du

Avec ce point de vue, l’ensemble des solutions est soit vide (deux droites non sécantes), soit réduit à un point (droites non parallèles), soit une droite (les deux droites

On notera que tous les résultats du chapitre sont donnés pour des systèmes linéaires à coefficients réels mais restent valables pour des systèmes à coefficients

Dans ce qui suit, nous décrivons l'algorithme parallèle construit pour résoudre un système triangulaire inférieur.. L'algorithme s'exécute en fait en deux

La phase I (initialisation de l'algorithme ou recherche d'un sommet d'un polyèdre convexe qui se sert de la phase II comme dans l'algorithme du simplexe) est construite sous deux

A titre de comparaison, nous avons utilisé une variante de la méthode GRG [1], [2], qui passe pour la plus rapide des méthodes existantes (voir les expériences numériques