cour algorithme distrib 2eme partie
TRANSCRIPT
![Page 1: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/1.jpg)
Architectures et Algorithmes Avancés
Mohamed Mosbah - LaBRI
ENSEIRB Université Bordeaux 1
Nesrine OULED ABDALLAH - ReDCAD
1
![Page 2: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/2.jpg)
Objectifs du cours •Connaître les caractéristiques d’un système distribué (SD)
• Comprendre les concepts et les paradigmes fondamentaux d’un SD, au delà des technologies •Etudier certains problèmes fondamentaux (élection, arbre recouvrant, exclusion mutuelle, pannes)
•Pouvoir raisonner dans un environnement distribué. Par exemple : concevoir des applications distribuées, les tester, les prouver, les valider et les implanter.
2
![Page 3: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/3.jpg)
Exemples de questions abordés
dans ce cours •Comment décrire une exécution répartie ? •Comment déterminer des propriétés globales à partir d’observations locales ?
•Comment coordonner des opérations en l’absence d’horloge commune ?
•Quelles sont les critères de qualité pour une application distribuée ?
•Comment garantir la cohérence (ou la sécurité) d’informations distribuées ?
• Pas sûr que vous aurez toutes les réponses…. 3
![Page 4: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/4.jpg)
Plan du cours
• Introduction aux systèmes distribués
• Architectures des systèmes distribués et communication • Modèles de l’algorithmique distribuée • Calculs locaux et calcul distribué d’arbre recouvrant • Algorithmes d’Election • Algorithmes de Rendez Vous(RDV),algorithme
probabiliste d’élection locale • Terminaison distribuée
• Gestion de la concurrence: Temps, Synchronisation, gestion des conflits
• Implémentation: Plateforme Visidia
4
![Page 5: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/5.jpg)
Cours 1: Introduction aux systèmes distribués
5
![Page 6: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/6.jpg)
I/ Introduction à l’informatique distribuée
•L’informatique répartie : état de fait de plusieurs applications, et une mutation… -Besoin propre des applications
•Intégration : applications séparées, ressources de calcul, ressources de gestion de données, etc •Nouvelles applications: informatique omniprésente
- Possibilités techniques •Interconnexion généralisée : convergence
informatique télécom
• Performance et coût des machines et des réseaux
6
![Page 7: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/7.jpg)
Les progrès technologiques
• Avant les années 80, les ordinateurs étaient encombrants et chers (les systèmes centralisés)
• A partir de la mi 80, deux nouveautés:
- Microprocesseurs (moins chers et très rapide) - LANs et WANs
• Les ordinateurs en réseaux non seulement faisables, mais simples.
7
![Page 8: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/8.jpg)
Technologie + besoins évolution évolution
technologique des besoins banalisation et capillarité structure des entreprises et des
des réseaux de télécommunications organisations : communication et partage (ex. Intranet)
performance des voies de télécommunication accès universel à
l’information (ex. Web)
(débit et fiabilité)
rapport coût/performance des stations
Informatique distribuée "grand public"
convergence informatique et (ex. vidéo interactive) téléphonie
Applications distribuées 8
![Page 9: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/9.jpg)
II/ Définitions d’un SD
Définition [Tanenbaum]: Un ensemble d’ordinateurs indépendants qui apparaît à un utilisateur comme un système unique et cohérent
• Les machines sont autonomes
• Les utilisateurs ont l’impression d’utiliser un seul système.
9
![Page 10: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/10.jpg)
Définition [Lamport]: A distributed system is one on which I can’t do my work if some computer has failed that I never heard of.
Un système réparti est un système qui vous empêche de travailler quand une machine dont vous n’avez jamais entendu parler tombe en panne.
10
![Page 11: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/11.jpg)
Définition (pour ce cours)•Un système distribué est un ensemble d’entités autonomes de calcul (ordinateurs, PDA, processeurs, processus, etc.) interconnectées et qui peuvent communiquer.
• Exemples: - réseau physique de machines
- Un logiciel avec plusieurs processus sur une même machine.
11
![Page 12: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/12.jpg)
Pourquoi des systèmes répartis ?
•Aspects économiques (rapport prix/performance)•Adaptation de la structure d’un système à celle des applications (géographique ou fonctionnelle) •Besoin d’intégration (applications existantes) •Besoin de communication et de partage d’information
•Réalisation de systèmes à haute disponibilité •Partage de ressources (programmes, données, services) • Réalisation de systèmes à grande capacité d’évolution
12
![Page 13: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/13.jpg)
Exemples: • WWW
• Contrôle du trafic aérien • Système de courtage • Banques • Super calcul distribué • Système de fichier distribué • DNS • Systèmes Pair à pair (P2P)
13
![Page 14: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/14.jpg)
Quelques domaines d’application des systèmes répartis
• CFAO, Ingénierie simultanée -Coopération d’équipes pour la conception d’un
produit -Production coopérative de documents -Partage cohérent d’information
• 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 • Systèmes d’aide à la formation
14
![Page 15: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/15.jpg)
Propriétés •Le système doit pouvoir fonctionner (même
en cas de pannes de certains composants), et donner un résultat correct
•Le système doit pouvoir résister à des attaques contre sa sécurité (confidentialité et intégrité, déni de service, …)
•Le système doit pouvoir s’adapter à des changements (modification de composants, sacalabilité, etc)
•Le système doit préserver ses performances 15
![Page 16: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/16.jpg)
III/ Objectifs d’un système distribué • Transparence (Masquer la répartition)
- Uniformité des accès locaux et distants La séparation physique entre machines et les
différences matériels/logiciels pour les accès sont invisibles par l’utilisateur.
- Localisation des ressources non perceptible (nom logique ex: URL http://www.labri.fr/ ) - Migration des ressources possible sans interférence avec la localisation physique
(ex. transférer un objet uniquement par son nom logique sans modification de ce nom et sans modification de l’environnement d’un utilisateur)
16
![Page 17: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/17.jpg)
- Réplication de ressources non visibles - Concurrence d’accès aux ressources non perceptibles (ex. accès à un même fichier ou une table
dans une base de données: mécanisme de verrou ou
de transaction) Invisibilité du parallélisme offert par l’environnement d’exécution
Tolérance aux pannes permettant à un utilisateur de ne pas s’interrompre (ou même
se rendre compte) à cause d’une panne d’une ressource
17
![Page 18: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/18.jpg)
• Ouverture
-Services offerts selon des règles standards qui décrivent la syntaxe et la sémantique de ces services (Interfaces publiées, ex. IDL) - Interopérabilité des matériels (de fournisseursdifférents)
- Portabilité
- Flexibilité (facilité d’utilisation et de configuration) - Extensibilité (ajout/MAJ de composants
sans en affecter les autres)
18
![Page 19: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/19.jpg)
• Mise à l ’échelle (scalability) fonctionne efficacement dans différentes échelles:
-Deux postes de travail et un serveur de fichiers -Réseau local avec plusieurs centaines de postes de travail et serveurs de fichiers - Plusieurs réseaux locaux reliés pour
former un Internet
19
![Page 20: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/20.jpg)
20 20
![Page 21: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/21.jpg)
• Tolérance aux pannes -Pannes franches -Pannes byzantines -Détection de pannes (difficulté et même
impossibilité de détection pour certains systèmes, suspicion de machines) e.g. connexion par un navigateur à un serveur distant qui répond pas !!
-Correction d’erreurs (de fichiers/messages corrompus)
-Reprise sur pannes (techniques de journalisation dans les BD)
(éventuellement système dégradé)
21
![Page 22: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/22.jpg)
• Sécurité - Confidentialité (authentification)
- Intégrité (protection contre les falsification et les corruptions)
- Disponibilité (accès aux ressources) e.g. commerce électronique, banque en ligne.
22
![Page 23: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/23.jpg)
IV/ Systèmes distribués vs parallèles Systèmes Parallèles.
Une machine multiprocesseurs avec un environnement du type SIMD (tous les processeurs exécutent le même programme et ont une vision
uniforme de l’état global du système). Extensible à un réseau de machines asynchrones
fortement couplées
Systèmes distribués. Processus indépendants sur des machines
distinctes et communiquant par échange de messages asynchrones (en général, des réseaux
faiblement couplés). 23
![Page 24: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/24.jpg)
Caractéristiques du parallélisme/distribué
• Objectifs: optimiser les solutions d’un problème (e.g. calcul scientifique, calcul matriciel, tri)• Calcul de complexité : temps et accès mémoire (pas le temps de communication ou nombre de messages)• La topologie est généralement fixe (grille, hypercube, grappes)
24
![Page 25: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/25.jpg)
V/ Intergiciel (Middleware)
• Le middleware (intergiciel) est la couche logicielle située entre les couches basses (systèmes d'exploitation, protocoles de communication) et les applications dans un système informatique réparti (CORBA, EJB, COM, etc.).
25
![Page 26: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/26.jpg)
• Buts:
- Fournir une interface ou API de haut niveau aux applications
- Masquer l’hétérogénéité des systèmes matériels et logiciels sous jacents
- Rendre la répartition aussi invisible (transparente)
que possible - Faciliter la programmation répartie (dévelop-pement, évolution, réutilisation, portabilité des applications)
26
![Page 27: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/27.jpg)
Couches logicielles et matérielles dans un SD (le middleware)
APIs haut niveau
Applications,
services
Middleware système d’exploitation
APIs bas niveau
Réseau, matériel,
27
![Page 28: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/28.jpg)
VI/ Voies d’études des systèmes distribués
• Approche « descriptive» - Etude de modèles de conception
d’applications réparties (client serveur, objets répartis, composants répartis, architecture)
- Etude de diverses classes de systèmes, intergiciels (middleware) et applications, et de leurs modes d’organisation et de fonctionnement
• Approche « fondamentale» : algorithmes distribués
- Etude des principes de base: problèmes
fondamentaux, solutions connues, limites « intrinsèques»
– Exemples : Election d’un chef; Structure de diffusion (arbre recouvrant), Exclusion mutuelle, Nommage,
Détection de la terminaison 28
![Page 29: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/29.jpg)
Une application pratique
• Les virus sur nos machines…
• Solution actuelle: protection individuelle (de sa machine)….
• Limites: vulnérabilité, « oubli», mise à jour régulière, solution locale mais non globale
• Alternative: développer des stratégies globale de « destruction de virus»
29
![Page 30: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/30.jpg)
Difficultés
• Pas de connaissance de l’état global • Absence de temps universel (ou horloge globale) • Non déterminisme (lié souvent au problème du synchronisme)
• Et surtout pas de modèle « universel»
et standard pour l’algorithmique distribuée 30
![Page 31: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/31.jpg)
Handover/ mobilité
RéceptionTV en modeIP
WiFi
sur PDA
WiMAX
Carteà WiFi
WiMAX Serveurd'adaptati
on & de diffusion Reception TV
Zone classique Site de diffusion TV Réseau Local
DVB IP
RéceptionTV en modeIP (DomaineIP)
sur portable CarteDVB T DVB
1 Cable
Réception TV Reception TVclassique+ DVB T Internet (Web +Mail)
RéceptionTV en modeIP
Est ce que ça fonctionne ? Sécurité ? 31
![Page 32: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/32.jpg)
Exemples de problèmes fondamentaux
• Comment décrire une exécution répartie ? • Comment déterminer des propriétés globales à partir d’observations locales ? • Comment coordonner des opérations en l’absence d’horloge commune ? • Quelles sont les critères de qualité
pour une application distribuée ? • Comment garantir la cohérence
(ou la sécurité) d’informations distribuées ? 32
![Page 33: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/33.jpg)
Vers des modèles
• Modéliser - pour représenter un système en
simplifiant divers aspect du réel - pour maîtriser la complexité
- Pour observer et comprendre le comportement du système réel
- pour prédire ou aider à commander le comportement d’un système
- pour prouver ce comportement à l’aide de techniques formelles
33
![Page 34: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/34.jpg)
• Nécessité de simplifier et maîtriser la complexité des systèmes et des algorithmes distribués
• Difficulté de l’algorithmique distribuée / centralisée:
- Pas de connaissance de l’état global - Absence de temps universel (ou horloge globale) - Non déterminisme (lié souvent au problème du synchronisme) - Et surtout pas de modèle
« universel» et standard pour l’algorithmique distribuée
34
![Page 35: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/35.jpg)
Modèles de communication synchrone /asynchrone
Synchrone
on se voit à 12h
ok on se voit à
12h Même notion de temps, transmission
instantanée, généralement bornée 35
![Page 36: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/36.jpg)
• Communication asynchrone:
mail: on se voit à 12h
10H
10h45 ok ok
11h:15
est ce qu’il sait que ack ok 11h:45 j’ai lu sa réponse
est ce qu’il sait ack ack 12h15 que j’ai ack ok
36
![Page 37: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/37.jpg)
Architecture de systèmes
et communication
37
![Page 38: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/38.jpg)
Les aspects matériels
• Système distribué en opposition à système centralisé
• Vision matérielle d’un système distribué: architecture matérielle - Machine multiprocesseurs avec mémoire-Cluster (grappe) d’ordinateurs dédiés au calcul/traitement massif parallèle
- Ordinateurs standards connectés en réseau • Vision logicielle d’un système distribué Ensemble d’éléments logiciels s’exécutant
sur un réseau d’ordinateurs 38
![Page 39: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/39.jpg)
Architecture logicielle/matérielle
• Composants logiciels: organisation ? Coopération ? Communication ?
• Instanciation de composants logiciels sur
un réseau « réel» de machines. • Choix de l’architecture adéquate:
- Subdivision des fonctionnalités
- Structuration de l’application
- Réduction de la complexité 39
![Page 40: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/40.jpg)
Architecture client serveur
• Communication réalisée par dialogue entre processus deux à deux.
Un processus est le client, l’autre le serveur.
• Les processus forment un système coopératif.
• Le résultat de cette coopération se traduit par un échange de données,
le client réceptionne les résultats finaux livrés par le serveur.
40
![Page 41: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/41.jpg)
LE CLIENT/SERVEUR
• Communication entre processus deux à deux: un client, un serveur;
• Ces processus forment un système coopératif: -le client réceptionne les résultats finaux délivrés par le serveur.
Requête Client Serveur
Réponse Application Service
Modèle client/serveur ==> répartition des services plutôt que l’application elle même.
41
![Page 42: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/42.jpg)
UTILISATION DU MODÈLE C/S
• S’étend de plus en plus vers tous les domaines d’activités :
- Gestion des bases de données, - Systèmes transactionnels,
- Systèmes de messagerie, Web, Intranet,- Systèmes de partage des données, - Calcul scientifique - ...
42
![Page 43: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/43.jpg)
Serveurs de fichiers
• Les appels sur le réseau concernent les opérations de lecture écriture
des fichiers.
• Aucun filtrage n ‘est effectué sur les données échangées. Appel de fichiers
Fichiers
Serveur
Client
Client
43
![Page 44: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/44.jpg)
Serveurs de bases de données
• Les données reçues par l’application sont le résultat de l’exécution de requêtes SQL.
• Cette exécution se fait par le serveur du SGBD. Appels SQ L
Données
BD
Serveur de SG BD
Client
Client
44
![Page 45: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/45.jpg)
Serveurs de transactions
• Utilisés pour implanter des systèmes transactionnels (OLTP). Le client invoque une procédure à distance qui implante une transaction.
• Le serveur de transactions (ou Moniteur de transactions: MT) exécute cette procédure.
Appels de procédure SQ L
BD
Serveur de SG BD M oniteur de Trans.
Application
Application
45
![Page 46: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/46.jpg)
Serveurs de groupeware
• Le rôle du serveur de groupeware (ou collecticiel) est de mettre en commun et/ou de faire circuler des documents (multimédia) au sein d ’une entreprise.
• On utilise parfois la technique dite du Push.
Message du groupeware
BD
Serveur de
groupeware Application
Application
46
![Page 47: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/47.jpg)
Serveurs d’informations
• Ce sont des serveurs qui mettent certains documents (documents HTML, images,
…) à la disposition des clients
• C’est le cas des serveurs HTTP, FTP, …
• Peuvent utiliser des programmes auxiliaires (ex. programmes CGI,
proxys) pour augmenter leur fonctionnalité.
Requête HTTP
Document
Serveur HTTP
Browser
Browser 47
![Page 48: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/48.jpg)
Besoins applicatifs: calcul intensif
• Objectifs : réduire le temps de résolution d’un problème en utilisant un ordinateur parallèle (avec plusieurs processus) • Principe: division d’un algorithme en tâches pouvant s’exécuter en même temps sur des processus différents • Exemples d’applications:
- Calcul scientifique
- Météo
- Bioinformatique
- Applications nucléaires
48
![Page 49: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/49.jpg)
Classification des architectures parallèles
• Taxonomie proposée par Flynn dans les années 60: - SISD (Single Instruction Single Data): c’est ce qu’on trouve sur une station de travail
- SIMD (Single Instruction Multiple Data): plusieurs processeurs, qui exécutent en parallèle les mêmes instructions sur plusieurs données
- MISD (Multiple Instruction Single Data): exécuter plusieurs instructions sur la même donnée (pas d’exemple connu)
- MIMD (Multiple Instruction Multiple Data): plusieurs processeurs qui opèrent de façon indépendantes (ou non) sur leurs données
49
![Page 50: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/50.jpg)
Machines parallèles
• Architectures fortement couplées
• Tenir compte de l’architecture de la machine
• Repenser les applications
• Modèle de programmation parallèle
• La façon de programmer n’est pas indépendante de
la machine utilisée • Découpage d’une tâche en tâches élémentaires (diviser pour régner)
50
![Page 51: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/51.jpg)
Architecture de type grappes
•Une grappe (cluster) est une collection de machines interconnectées, utilisée comme une ressource de calcul unifiée
•Il existe des grappes commerciales clés en main •Une grappe « Beowulf» se définit par les propriétés suivantes : - composants à grande diffusion - composants réseau à faible coût
- système d ’exploitation « open source » - hardware non propriétaire - logiciel « open source »
51
![Page 52: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/52.jpg)
Types de grappes
• Grappes de calculs:
-Mise en commun de ressource de calcul
- Assurer la disponibilité de la ressource principalement en cas
de panne de l’un des serveurs. • Grappes de répartition de charge
- Typiquement utilisé pour les services web (mais peut être utilisé pour d’autres applications). Une requête arrive sur un seul nœud(visible de l’extérieur), et sera envoyée vers un autre en fonction de la charge de chacun des
nœuds.
• Grappes de haute disponibilité
52
![Page 53: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/53.jpg)
Les grilles
• de stations de travail (desktop grids) et/ou de PC "volontaires"
• de grappes dédiés
=> toutes combinaisons possibles
• réseau sous-jacent si possible pas trop lent (ex
WAN haut débit comme Renater 3 Gigabits/sec)
=> difficile problème provenant de la non
unicité du
domaine d’administration 53
![Page 54: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/54.jpg)
Plus généralement
• Si le matériel est important, le logiciel l’est beaucoup plus …. • Systèmes distribués : systèmes complexes ! •Objectif : développement de logiciels fiables et
robustes • Prise en compte spécifité des systèmes distribués - Temps de communication, pannes
• Développer des algorithmes dédiés aux systèmes distribués : algorithmique distribuée
• Synchronisation et coordination entre processus distants • Entente sur des valeurs communes et cohérence globale dans un contexte non fiable
• Adaptation des problèmes classiques en parallélisme • Problèmes typiques des systèmes distribués 54
![Page 55: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/55.jpg)
• Les algorithmes distribués s’appuie sur des caractéristiques du système
• Caractéristiques de la communication
- Fiable ou non, temps de propagation borné ou pas
• Caractéristiques des éléments formant le système
- Fiable, pouvant se planter, pouvant envoyer des
messages erronés, etc.
• Architecture (topologie) -Chaîne
-Arbre -Anneau -Grille 55
![Page 56: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/56.jpg)
Conception de logiciel pour les systèmes
distribués • Importance du système d’exploitation - Donne l’image de la machine pour l’utilisateur - Influence la façon de programmer la machine
• Système d’exploitation entre l’architecture matérielle et les applications
- Système d’exploitation pour un système distribué dépend • de l’architecture sous jacente • des applications à exécuter
-Applications indépendantes -Applications parallèles
• Faiblement couplé • Fortement couplé
-Système d’exploitation
56
![Page 57: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/57.jpg)
Système d’exploitation pour système distribué
• Multiprocesseurs à mémoire partagée - Système d’exploitation à temps partagé de type Unix
• Plusieurs processeurs au lieu d’un seul
• Illusion d’une machine mono processeur pour l’utilisateur - Une seule copie du système d’exploitation sur la machine
• Un processus peut s’exécuter sur n’importe quel processeur de la machine
• Une file des processus prêts à s’exécuter conservée en mémoire partagée
• Synchronisation pour l’accès aux structures de données partagées du noyau
- Section critique pour l’exécution de l’ordonnanceur qui gère la file des processus prêts
• Communication par mémoire partagée
57
![Page 58: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/58.jpg)
Système d’exploitation pour système distribué
• Multicomputers - Système d’exploitation faiblement couplé
(network operating system) • Indépendance des machines
-Un programme peut s’exécuter localement sans le réseau -Réseau permet le partage de ressources entre une communauté d’utilisateurs
» Imprimante, serveur de fichiers » Connexion à distance
• Une copie du système d’exploitation sur chaque machine -Système standard + services distribués (exemple NFS) - Hétérogénéité
- Modèle client/serveur
• Communication par fichiers partagés - NOW, Internet, GRID (Grands Systèmes Informatiques
Distribués) 58
![Page 59: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/59.jpg)
Système d’exploitation pour système distribué
• Système intégré -Vision d’une machine unique (Single System Image)- Machine uni processeur virtuelle
• La multiplicité des ressources et leur distribution doivent être transparentes pour l’utilisateur
• Nœuds anonymes
• Un même système d’exploitation s’exécute surchaque machine
- Chaque machine possède sa copie locale du système d’exploitation
- Communication par messages
• Grappes de calculateurs
59
![Page 60: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/60.jpg)
Représentation : abstraction
un graphe
60
![Page 61: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/61.jpg)
A venir : Modélisation d’un système distribué
• Système distribué : graphe (non orienté, connexe, simple)
• sommet : processus
• arête : canal de communication • algorithme distribué local : algorithme qui s’exécute sur chaque sommet (en utilisant uniquement le contexte local)
61
![Page 62: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/62.jpg)
Les réseaux anonymes /avec identités
• anonymes: pas d’identités (numéros distincts. e.g. IP)
•avec identités (chaque sommet possède une identité (un numéro) unique)
En général, il est plus facile de construire un algo sur des graphes avec identités.
62
![Page 63: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/63.jpg)
• L’état d’un processus est codé par une étiquette:
• Le changement d’état : changement d’étiquette
• Les algorithmes : arbre recouvrant, élection, terminaison, exclusion mutuelle.
63
![Page 64: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/64.jpg)
Modèle de l’algorithmique distribuée
64
![Page 65: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/65.jpg)
Quelques rappels sur les graphes
• Les graphes modélisent une grande variété de
problèmes: réseaux de communication, réseaux routiers,
structures de molécules, etc.
• On se ramène à l’étude de sommets et d’arcs.
• Un graphe simple G est formé de deux
ensembles : un ensemble V de sommets et un
ensemble E d’arêtes. Chaque arête lie deux sommets
(qui sont dits adjacents ou voisins)
• On note G=(V,E) 65
![Page 66: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/66.jpg)
Exemple • V = {u,v,w,x,y,z} v
a b • E = {a,b,c,d,e,f} u w
c d • Le degré d’un graphe: z x f Nombre d’arêtes adjacentes
y e
deg(x) = 3
Un graphe est régulier de degré r si tousses sommets sont de degré r.
66
![Page 67: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/67.jpg)
Lemme de poignées de main: Soit G=(V,E), la somme des degrés des sommets de V est le double du nombre d’arêtes.
Corollaire : un graphe simple a un nombre pair de sommets de degré impair.
Application: est il possible de relier 27 ordinateurs de sorte que chaque appareil
soit relié avec exactement trois autres ?
67
![Page 68: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/68.jpg)
Terminologie : graphes
•Chaîne : suite de sommets reliés entre eux par une arête. •Cycle : chaîne qui revient à son point de départ. •Graphe connexe : pour toute paire de sommets, il existe
une chaîne qui les relie.
•Arbre : graphe connexe sans cycle. •Anneau : graphe formé d’un cycle.
•Longueur d’une chaîne : nombre d’arêtes qui composent la chaîne. •Distance entre deux sommets : longueur de la plus courte chaîne joignant les deux sommets. •Diamètre d’un graphe : maximum des distances entre les
sommets d’un graphe.
•Médian: un sommet qui minimise la somme des distances aux autres sommets.
•Sous graphe : G=(V,E) est sous graphe de G’=(V’,E’) si V est sous ensemble de V’ et E est sous ensemble de E’.
68
![Page 69: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/69.jpg)
69
![Page 70: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/70.jpg)
Arbre recouvrant
• Soit G un graphe. Un arbre recouvrant de G est un sous graphe de G qui est un arbre contenant tous les sommets de G
Exemple :
70
![Page 71: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/71.jpg)
•
•
71
![Page 72: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/72.jpg)
I/ Notion d’algorithme distribué
• Ces transitions peuvent s’effectuer suite à des
événements (internes ou échange de message)
• Un algorithme distribué sur un système
distribué
S est une collection de transitions locales à
réaliser séquentiellement par chaque process de S.
72
![Page 73: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/73.jpg)
• Processus:
- Les instructions d’un processus sont considérées comme atomiques.
- Il possède une mémoire locale
- Il possède un état local (ensemble de ses données et
des valeurs de ses variables locales) - Il peut (ou non) avoir un identifiant
- Pas ou peu de connaissance des autres processus et de leurs états (il peut connaitre l’état des voisins)
- Il s’exécute en parallèle avec les autres processus
73
![Page 74: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/74.jpg)
• Simulation d’une mémoire partagée : 1 process à part qui est chargé uniquement de la communication.
74
![Page 75: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/75.jpg)
indiscernables. 75
![Page 76: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/76.jpg)
76
![Page 77: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/77.jpg)
77
![Page 78: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/78.jpg)
78
![Page 79: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/79.jpg)
2.
79
![Page 80: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/80.jpg)
80
![Page 81: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/81.jpg)
81
![Page 82: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/82.jpg)
es
82
![Page 83: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/83.jpg)
83
![Page 84: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/84.jpg)
84
![Page 85: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/85.jpg)
terminer 85
![Page 86: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/86.jpg)
86
![Page 87: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/87.jpg)
87
![Page 88: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/88.jpg)
88
![Page 89: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/89.jpg)
89
e
![Page 90: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/90.jpg)
90
![Page 91: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/91.jpg)
91
![Page 92: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/92.jpg)
92
![Page 93: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/93.jpg)
93
y
![Page 94: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/94.jpg)
94
![Page 95: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/95.jpg)
95
![Page 96: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/96.jpg)
96
Une
![Page 97: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/97.jpg)
97
![Page 98: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/98.jpg)
98
![Page 99: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/99.jpg)
99
![Page 100: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/100.jpg)
100
![Page 101: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/101.jpg)
101
![Page 102: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/102.jpg)
102
![Page 103: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/103.jpg)
103
![Page 104: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/104.jpg)
104
![Page 105: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/105.jpg)
105
![Page 106: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/106.jpg)
106
![Page 107: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/107.jpg)
107
![Page 108: Cour algorithme Distrib 2eme partie](https://reader035.vdocuments.pub/reader035/viewer/2022062220/55870b16d8b42a8a0f8b4711/html5/thumbnails/108.jpg)
108