Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Algorithmiques et architectures distribuées etparallèles : une introduction
Frederic Guinand Eric Sanlaville
Master 1 [email protected]
2heures
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Plan
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Plan
1 Historique
2 Système + Réseaux = ParallélismeProcessusCommunications inter-processus intra-processeurs
3 Schémas d’exécutions distribuées asynchronesSchéma C/SSchéma M/SSchéma P2P
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Plan
1 Historique
2 Système + Réseaux = ParallélismeProcessusCommunications inter-processus intra-processeurs
3 Schémas d’exécutions distribuées asynchronesSchéma C/SSchéma M/SSchéma P2P
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Plan
1 Historique
2 Système + Réseaux = ParallélismeProcessusCommunications inter-processus intra-processeurs
3 Schémas d’exécutions distribuées asynchronesSchéma C/SSchéma M/SSchéma P2P
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Plan
1 Historique
2 Système + Réseaux = ParallélismeProcessusCommunications inter-processus intra-processeurs
3 Schémas d’exécutions distribuées asynchronesSchéma C/SSchéma M/SSchéma P2P
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Pourquoi le parallélisme ?
pour calculer plus vite, plus gros et différemment.Calculs numériques.Data miningVérification/validation de modèles.Simulations.Serveurs d’applications, serveurs de données.Synthèse, Traitement d’image
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Pourquoi le parallélisme ?
pour calculer plus vite, plus gros et différemment.Calculs numériques.Data miningVérification/validation de modèles.Simulations.Serveurs d’applications, serveurs de données.Synthèse, Traitement d’image
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Milieux de la recherche et du développement
physique nucléaire,mécanique céleste,biologie moléculaire,sociologie...
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Milieux économiques et industriels
Aéronautique : turbulences, écoulements, profils d’ailes.Onera : image des interactions entre les tourbillons en boutd’aile et les turbulences résultant de la propulsion. Calculréalisé sur NEC SX5 et NEC-SX6 :
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Milieux économiques et industriels
Industrie automobile.crash-tests virtuels chez un constructeur automobile :
finance : prévision de l’évolution des marchés.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Société civile/services publics
gestion et production d’énergie :EDF : gestion du réseau, fonctionnement de certainséléments des centrales nucléaires...prévisions météorologiques :
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Météo France
Modèle opérationnel Arpège (1998),nombre de variables à traiter est Nv = 2,3.107
quatre variables à trois dimensions x 31 niveaux x 600 x300 points sur l’horizontale et une variable à deuxdimensions x 600 x 300 points sur l’horizontale,le nombre de calculs à effectuer pour une variable est Nc =7.103le nombre de pas de temps pour réaliser une prévision à24 heures d’échéance est Nt = 96 (pas de temps de 15minutes).
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Météo France
Les calculs étant effectués sur l’ordinateur Fujitsu VPP700crédité d’une vitesse de calcul R atteignant 20 gigaflops(20 milliards d’opérations flottantes par seconde)⇒ le temps T nécessaire pour obtenir une prévision à 24heures d’échéance est un peu inférieur à un quart d’heure.Météo-France a acheté dernièrement un NEC SX-8 quidevrait délivrer une puissance de 35 Tflops (mise enservice : 2008).⇒ en théorie, le même calcul : ∼ 1 seconde...
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Météo France
Les calculs étant effectués sur l’ordinateur Fujitsu VPP700crédité d’une vitesse de calcul R atteignant 20 gigaflops(20 milliards d’opérations flottantes par seconde)⇒ le temps T nécessaire pour obtenir une prévision à 24heures d’échéance est un peu inférieur à un quart d’heure.Météo-France a acheté dernièrement un NEC SX-8 quidevrait délivrer une puissance de 35 Tflops (mise enservice : 2008).⇒ en théorie, le même calcul : ∼ 1 seconde...
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Météo France
Les calculs étant effectués sur l’ordinateur Fujitsu VPP700crédité d’une vitesse de calcul R atteignant 20 gigaflops(20 milliards d’opérations flottantes par seconde)⇒ le temps T nécessaire pour obtenir une prévision à 24heures d’échéance est un peu inférieur à un quart d’heure.Météo-France a acheté dernièrement un NEC SX-8 quidevrait délivrer une puissance de 35 Tflops (mise enservice : 2008).⇒ en théorie, le même calcul : ∼ 1 seconde...
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Divers
Production d’images de synthèse pour films vidéos, jeux,urbanisme... :
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Qui utilise le parallélisme ?
Tout le monde ?
Les PC Multi coeurs sont partoutCe sont des systèmes parallèles sur une seule puce !Ordinateur serveur interne -> Meta computing -> CloudComputingVers une externalisation des puissances de calcul et destockage ?
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Historique
1950→ 1970 : les pionniers1970→ 1990 : explosion des architectures1990→ 2000 : extinction massive2000→ l’ère des géants
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Les pionniers (1950s-70s)
Difficulté première, la mise en oeuvre du matériel.Challenge : augmenter le ratiofonctionnement/maintenance. ILLIAC IV : quelques heuresde calcul/quelques semaines de maintenance.Les premiers grands noms du parallélisme apparaissent etavec eux, les premiers grands principes : vectorisation,techniques de pipeline, temps partagé,multiprogrammation...Amdahl : IBM 701, 704, 709.Seymour Cray : Control Data Corporation.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Les pionniers (1950s-70s)
Difficulté première, la mise en oeuvre du matériel.Challenge : augmenter le ratiofonctionnement/maintenance. ILLIAC IV : quelques heuresde calcul/quelques semaines de maintenance.Les premiers grands noms du parallélisme apparaissent etavec eux, les premiers grands principes : vectorisation,techniques de pipeline, temps partagé,multiprogrammation...Amdahl : IBM 701, 704, 709.Seymour Cray : Control Data Corporation.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Les machines
CDC6600 (1964) : unités de calcul en parallèle, 10MHz, 2Mo, 9 MFlops
CDC7600 (1969) : équivalent à 10 CDC6600 : 40 MFlops
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Ces années-là
transistor sur base de silicium (Texas Instrument - 1955)premier disque dur (1957)premier compilateur fortran (1957)algol (1958 - 60 - 68). Algorithmic language - récursivité.Voici un langage très en avance de son temps, il n’a passeulement été une amélioration de ses prédécesseursmais aussi une amélioration de presque tous sessuccesseurs.Bull : Gamma 60. Première machine multiprocesseursfrançaise.interface RS-232 (1966)technologie CMOS (Texas Instrument - 1967)ARPANET (ancêtre d’Internet - 1969)Unix (1970)
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Le temps de l’exubérance (1970s-80s)
Premiers succès commerciaux.Apparition de multiples constructeurs :
Thinking Machine Corporation (†), Sequent (†),Telmat (†), Archipel (†), Parsytec (†),Kendall Square Research (†), Meiko (†), BBN (†),Digital (†), IBM, Intel, CRAY (†), MasPar (†),Silicon Graphics (†), Sun, Fujitsu, Nec.
Offre importante et exotique : Connection Machine 1 :hypercube de 65535 processeurs.Problèmes majeurs : l’offre logicielle et le prix.étape suivante : machines abordables et utilisables.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Les machines
Cray-1 (1975), Cray X-MP (1982) : 2 à 4 processeurs,Cray-2 (1983) : 8 processeurs, Cray Y-MP (1989).Hitachi S-810/820.Fujitsu VP200/VP400.Convex C-1.Nec SX-1/2.Connection Machine 1. 65536 processeurs. Topologie :hypercube.Intel iPSC/1 128 processeurs. Topologie : grille.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Les machines
Illiac IV (Burrough - 1973
CRAY-1. 1975. 80 MHz, 8 Mo, 160 MFlops
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Les machines
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Ces années-là
Langage pascal (Wirth - 1972)Ray-Tomlinson : premier email (1972)10000 composants sur 1 cm2 (1975).premier réseau local : Datapoint système ARC (1976).fibre optique (1977).Support d’Ethernet par les principaux constructeurs(1979).Paterson - Hennessy : concept des processeurs RISC(1980)Tim Berners-Lee : projet World Wide Web au CERN(1989).
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Environnements (1990s)
Difficultés bien identifiées : routage, ordonnancement...→ parallélisme automatique très limité⇒ conception d’outils d’aide à la parallélisation : Hypertool,
Pyrros, ParaRex, Adam, Apache...
Autre problème : ratio prix/durée de vie d’une machineparallèle extrêmement élevé.
⇒ solution apportée par PVM : utiliser des réseaux locaux destations de travail pour faire du calcul parallèle.Constructeurs machines parallèles→ réseaux de stationsde travail intégrés.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Les machines
Nec SX-3 (1991).Fujitsu VP-2600 (1991).CM-5 (1992). Topologie : fat-tree.Cray T3D (1993). Jusqu’à 512 processeurs. Topologie :tore 3D.ASCI Red, et Blue (1997-1999).
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Ces années-là
Premier multicast audio sur le Net.PVM (1991).Netscape à partir de NCSA Mosaic (1994).
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
L’ère des Géants : les Grilles
Depuis le milieu des années 90.Constat : les matériels sont la plupart du temps peu etsous-utilisés.Idée : utiliser ces matériels dont le nombre est énorme :meta-computing.Projets les plus simples :
Principe : des milliards de calculs indépendants effectuéssur les PCs de “volontaires”.
→ Seti@Home : transformés de Fourier rapides,→ Folding@Home : conformation 3D de protéines.
Grilles de calcul : ajouter la disponibilité, la puissance, lesinteractions
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
L’ère des Géants : les Grilles et au delà...
Principe des grilles de calculs : offrir un service telle qu’ilest offert par les producteurs d’énergie.Objectif : brancher le cable réseau du PC pour consommerde la puissance de calcul comme on branche une prise decourant pour consommer de la puissance électrique.Moyens : plateforme de services : authentification,sécurisation, répartition de charge, stockage de données,partage de documents...Projets en cours : Globus, Harness, DataGRID, Legion,EuroGRID, GénoGRID, Grid5000, EGEE,...Cloud Computing : Google, Amazon, IBM Blue Cloud,Intel+HP+Yahoo, ...
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
L’ère des Géants : les Grappes
Depuis les milieu des années 90.Idée des grilles de calcul intéressante mais...Constat : les communications pénalisent une bonneutilisation.Constat : les problèmes de sécurité pénalisent l’utilisationcommercialeRemède : construire des réseaux locaux de grandesdimensions.Grappes de machines (clusters of machines).
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
L’ère des Géants : les machines
Puissance des machines en 2007 (source top500.org) :1 BlueGene/L. IBM. US. 280 TFlops. 131072 processeurs.2 Red Storm. Cray Inc. US. 101 TFlops. 26544 processeurs.3 Blue Gene. IBM. US. 91 TFlops. 40960 processeurs.4 ASC Purple. IBM. US. 91 TFlops. 75 TFlops. 12208
processeurs.5 BladeCenter. IBM. Espagne. 62 TFlops. 10240
processeurs.6 Thunderbird. Dell. US. 53 TFlops. 9024 processeurs.7 Tera-10. Bull SA. CEA France. 52 TFlops. 9952
processeurs.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
L’ère des Géants : les machines
Puissance des machines en décembre 2008 :Roadrunner IBM. Los Alamos DOE US. 1105 TFlops.129600 processeurs. Nucléaire, armement, sécurité.Jaguar Cray Inc. DOE US. 1059 TFlops. 150152processeurs.Pléïades SGI. NASA US. 487 TFlops. 51200 processeurs.BlueGene/L. IBM. US. 478 TFlops. 212992 processeurs.(9) Red Storm. Cray Inc. US. 204 TFlops. 38208processeurs.(14) Jade SGI CINES FRANCE 128 TFlops. 12288processeurs.(54) Tera-10. Bull SA. CEA France. 52 TFlops. 9952processeurs.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Les systèmes
Système Pourcentage (fin 2007)Linux 75.20Unix 17.20
BSD Based 3Mixed 6.40
Mac OS 0.60
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Convergence
Parallélisme↔ informatique distribuée :java RMI (Remote Method Invocation) inspiré des RPC(Remote Procedure Call),Architecture Corba pour les objets distribués.Support des communications : Internet.
⇒ Nouveaux objectifs (systèmes embarqués) : robustesse,disponibilité, tolérance aux pannes...Calcul intensif→ calcul intensif + importantescommunications.
⇒ recherche de performances ≡ compromis entre équilibragede la charge et minimisation des communications.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Plan
1 Historique
2 Système + Réseaux = ParallélismeProcessusCommunications inter-processus intra-processeurs
3 Schémas d’exécutions distribuées asynchronesSchéma C/SSchéma M/SSchéma P2P
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Définitions
Ordinateur parallèle : ensemble de processeurs capablesde travailler en coopération de manière à résoudre unproblème donné (I. Foster).Le parallélisme est une technique d’accroissement desperformances d’un système fondé sur l’exécution enparallèle de plusieurs processus.Le parallélisme recouvre tous les aspects liés auxsystèmes multi-processeurs et multi-ordinateurs et auxapplications associées→ conception, modélisation, mise en œuvre et utilisationdes systèmes et des applications.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Définitions
En informatique, le calcul parallèle consiste en l’exécutionsimultanée d’une même tâche, partitionnée et adaptée afinde pouvoir être répartie entre plusieurs processeurs envue de traiter plus rapidement des problèmes plus grands(Wikipedia).L’informatique distribuée recouvre les aspects matériels,réseaux, systèmes et algorithmiques liés à l’exécutiond’une application sur un ensemble de processeurs.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Frontières du domaine
difficiles à cerner :1 gestion de ressources,2 communications inter-processus,3 partage de données,4 modèle de programmation,5 mesures et analyse de performances,6 aspects temporels (temps unique ?)
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Frontières du domaine
difficiles à cerner :1 gestion de ressources,2 communications inter-processus,3 partage de données,4 modèle de programmation,5 mesures et analyse de performances,6 aspects temporels (temps unique ?)
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Programmation parallèle
1 création de activités ou tâches,2 répartition des activités entre les ressources,3 les communications entre les activités.4 Tout commence au niveau du système et du réseau.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Programmation parallèle
1 création de activités ou tâches,2 répartition des activités entre les ressources,3 les communications entre les activités.4 Tout commence au niveau du système et du réseau.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Programmes et processus
programme binaire : objet inertenécessite un support pour son exécution
→ processusprogramme : le code binaire exécutabledonnées : espace d’adressage du processusinformations diverses qui définissent le contexted’exécution du processus : bloc de contrôle du processus
Toutes les actions effectuées par un processeur sontexécutées dans le contexte d’un processusterminologie : souvent activité↔ thread. Pour nousactivité ≡ action exécutée par un processus.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Programmes et processus
programme binaire : objet inertenécessite un support pour son exécution
→ processusprogramme : le code binaire exécutabledonnées : espace d’adressage du processusinformations diverses qui définissent le contexted’exécution du processus : bloc de contrôle du processus
Toutes les actions effectuées par un processeur sontexécutées dans le contexte d’un processusterminologie : souvent activité↔ thread. Pour nousactivité ≡ action exécutée par un processus.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Programmes et processus
programme binaire : objet inertenécessite un support pour son exécution
→ processusprogramme : le code binaire exécutabledonnées : espace d’adressage du processusinformations diverses qui définissent le contexted’exécution du processus : bloc de contrôle du processus
Toutes les actions effectuées par un processeur sontexécutées dans le contexte d’un processusterminologie : souvent activité↔ thread. Pour nousactivité ≡ action exécutée par un processus.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Programmes et processus
programme binaire : objet inertenécessite un support pour son exécution
→ processusprogramme : le code binaire exécutabledonnées : espace d’adressage du processusinformations diverses qui définissent le contexted’exécution du processus : bloc de contrôle du processus
Toutes les actions effectuées par un processeur sontexécutées dans le contexte d’un processusterminologie : souvent activité↔ thread. Pour nousactivité ≡ action exécutée par un processus.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Ordonnancement
système multi-tâches : comment gérer la ressource decalcul ?rôle de l’ordonnanceur.quelle stratégie ?
tâches insécables : impossibletâches interruptibles (E/S)temps partagé (time slicing)temps partagé + interruption
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Ordonnancement
système multi-tâches : comment gérer la ressource decalcul ?rôle de l’ordonnanceur.quelle stratégie ?
tâches insécables : impossibletâches interruptibles (E/S)temps partagé (time slicing)temps partagé + interruption
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Visualisation des effets du time sharing
Exempleun processus créé un processus filsle père et le fils comptent chacun de leur côté jusqu’à100000.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Visualisation des effets du time sharing
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Mécanismes de communications inter-processus
Il existe deux mécanismes principaux pour fairecommuniquer deux processus :La communication via la mémoireLa communication par échange de messagesPrincipales caractéristiques :
synchrone↔ asynchronedirecte↔ indirectede type un-vers-un↔ de type un-vers-plusieurs
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Mécanismes de communications inter-processus
Il existe deux mécanismes principaux pour fairecommuniquer deux processus :La communication via la mémoireLa communication par échange de messagesPrincipales caractéristiques :
synchrone↔ asynchronedirecte↔ indirectede type un-vers-un↔ de type un-vers-plusieurs
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Mécanismes de communications inter-processus
Il existe deux mécanismes principaux pour fairecommuniquer deux processus :La communication via la mémoireLa communication par échange de messagesPrincipales caractéristiques :
synchrone↔ asynchronedirecte↔ indirectede type un-vers-un↔ de type un-vers-plusieurs
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Mécanismes de communications inter-processus
Il existe deux mécanismes principaux pour fairecommuniquer deux processus :La communication via la mémoireLa communication par échange de messagesPrincipales caractéristiques :
synchrone↔ asynchronedirecte↔ indirectede type un-vers-un↔ de type un-vers-plusieurs
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Communication par mémoire partagée
Les processus qui ont besoin d’échanger des données lefont via la mémoire en partageant une partie de lamémoire, partie qui est attachée à leur espaced’adressage.On appelle segment de mémoire partagé cette mémoirecommune.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Communication par mémoire partagée
Les processus qui ont besoin d’échanger des données lefont via la mémoire en partageant une partie de lamémoire, partie qui est attachée à leur espaced’adressage.On appelle segment de mémoire partagé cette mémoirecommune.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Problèmes
Que se passe-t-il si deux processus lisent en mêmetemps ?...rien de particulier.Que se passe-t-il si un processus lit pendant qu’un autreécrit ?...un gros problème, la donnée risque de ne pas être dansun état cohérent et peut ne correspondre ni à la la donnéeavant l’écriture, ni à la donnée après l’écriture.Que se passe-t-il si deux processus écriventsimultanément ?...de gros problèmes en perspective.problèmes de synchronisation des processus et deprotection des accès.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Problèmes
Que se passe-t-il si deux processus lisent en mêmetemps ?...rien de particulier.Que se passe-t-il si un processus lit pendant qu’un autreécrit ?...un gros problème, la donnée risque de ne pas être dansun état cohérent et peut ne correspondre ni à la la donnéeavant l’écriture, ni à la donnée après l’écriture.Que se passe-t-il si deux processus écriventsimultanément ?...de gros problèmes en perspective.problèmes de synchronisation des processus et deprotection des accès.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Problèmes
Que se passe-t-il si deux processus lisent en mêmetemps ?...rien de particulier.Que se passe-t-il si un processus lit pendant qu’un autreécrit ?...un gros problème, la donnée risque de ne pas être dansun état cohérent et peut ne correspondre ni à la la donnéeavant l’écriture, ni à la donnée après l’écriture.Que se passe-t-il si deux processus écriventsimultanément ?...de gros problèmes en perspective.problèmes de synchronisation des processus et deprotection des accès.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Problèmes
Que se passe-t-il si deux processus lisent en mêmetemps ?...rien de particulier.Que se passe-t-il si un processus lit pendant qu’un autreécrit ?...un gros problème, la donnée risque de ne pas être dansun état cohérent et peut ne correspondre ni à la la donnéeavant l’écriture, ni à la donnée après l’écriture.Que se passe-t-il si deux processus écriventsimultanément ?...de gros problèmes en perspective.problèmes de synchronisation des processus et deprotection des accès.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Origine du problème
Les opérations de lecture/écriture en mémoire ne sont pasatomiques.
⇒ une lecture comme une écriture peut être interrompue aucours de son action.La solution : les sémaphore d’exclusion mutuelle (mutex) :
rendent les opérations de lecture/écriture atomiquesen restreignant l’accès à un segment de mémoire partagé àun seul processus à la fois.Un sémaphore possède deux opérations :
une opération d’acquisition souvent notée Pune opération de libération souvent notée V.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Origine du problème
Les opérations de lecture/écriture en mémoire ne sont pasatomiques.
⇒ une lecture comme une écriture peut être interrompue aucours de son action.La solution : les sémaphore d’exclusion mutuelle (mutex) :
rendent les opérations de lecture/écriture atomiquesen restreignant l’accès à un segment de mémoire partagé àun seul processus à la fois.Un sémaphore possède deux opérations :
une opération d’acquisition souvent notée Pune opération de libération souvent notée V.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Origine du problème
Les opérations de lecture/écriture en mémoire ne sont pasatomiques.
⇒ une lecture comme une écriture peut être interrompue aucours de son action.La solution : les sémaphore d’exclusion mutuelle (mutex) :
rendent les opérations de lecture/écriture atomiquesen restreignant l’accès à un segment de mémoire partagé àun seul processus à la fois.Un sémaphore possède deux opérations :
une opération d’acquisition souvent notée Pune opération de libération souvent notée V.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Dangers
Lorsqu’il existe plusieurs segments de mémoire partagées1, s2 et s3 et plusieurs processus p1, p2 et p3.p1 bloque l’accès à s1, p2 bloque l’accès à s2 et p3 bloquel’accès à s3, et p1 pour libérer s1 a besoin d’accéder à s2,mais p2 pour libérer s2 a besoin de lire s3.Si p3 n’a pas besoin de quoi que ce soit d’autre, il fait cequ’il a à faire, puis libère s3, ce qui libère s2 et par la suites1... ouf ! !par contre, si p3 a besoin de lire s1 pour libérer s3...
→ situation d’interblocage.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Dangers
Lorsqu’il existe plusieurs segments de mémoire partagées1, s2 et s3 et plusieurs processus p1, p2 et p3.p1 bloque l’accès à s1, p2 bloque l’accès à s2 et p3 bloquel’accès à s3, et p1 pour libérer s1 a besoin d’accéder à s2,mais p2 pour libérer s2 a besoin de lire s3.Si p3 n’a pas besoin de quoi que ce soit d’autre, il fait cequ’il a à faire, puis libère s3, ce qui libère s2 et par la suites1... ouf ! !par contre, si p3 a besoin de lire s1 pour libérer s3...
→ situation d’interblocage.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Dangers
Lorsqu’il existe plusieurs segments de mémoire partagées1, s2 et s3 et plusieurs processus p1, p2 et p3.p1 bloque l’accès à s1, p2 bloque l’accès à s2 et p3 bloquel’accès à s3, et p1 pour libérer s1 a besoin d’accéder à s2,mais p2 pour libérer s2 a besoin de lire s3.Si p3 n’a pas besoin de quoi que ce soit d’autre, il fait cequ’il a à faire, puis libère s3, ce qui libère s2 et par la suites1... ouf ! !par contre, si p3 a besoin de lire s1 pour libérer s3...
→ situation d’interblocage.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Dangers
Lorsqu’il existe plusieurs segments de mémoire partagées1, s2 et s3 et plusieurs processus p1, p2 et p3.p1 bloque l’accès à s1, p2 bloque l’accès à s2 et p3 bloquel’accès à s3, et p1 pour libérer s1 a besoin d’accéder à s2,mais p2 pour libérer s2 a besoin de lire s3.Si p3 n’a pas besoin de quoi que ce soit d’autre, il fait cequ’il a à faire, puis libère s3, ce qui libère s2 et par la suites1... ouf ! !par contre, si p3 a besoin de lire s1 pour libérer s3...
→ situation d’interblocage.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Avertissement
La conception d’une application faisant intervenir plusieursactivités qui s’exécutent simultanément requiert une étude finede leurs interactions afin d’éviter toute situation d’interblocage
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Communications inter-processus directes
Communications par pipe Communications par échanges de messages
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Communications par échange de messages
par socket : point de communication.primitives d’échange de message :
envoie de messages sendto()reception de messages recvfrom()
la reception est par défaut une primitive bloquante
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Exemple : forum de discussion
algorithme du service de forum
Users[] /* tableau des utilisateurs (vide au départ) */ouverture et gestion de la socketTantque vrai Faire
reception_message(source,contenu,...)Si source /∈ Users Alors
Users.ajouter(source)finSiPour chaque u ∈ Users Faire
envoyer_message(u,contenu)finPour
finTantQue
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Exemple : forum de discussion
Algorithme de l’utilisateur
ouverture et gestion de la socketTantque vrai Faire
contenu← saisir_message()envoyer(forum,contenu)TantQue reception_message(forum,contenu) Faire
afficher(contenu)finTantQue
finTantQue
Cet algorithme ne fonctionne pas, parce que les réceptionssont bloquantes.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Résolution du problème
un processus s’occupe de l’envoie sur une socket.un processus a la charge des receptions sur une autresocket.contrainte : il faut que le service de forum gère deuxsockets par utilisateur :
une socket d’écoute des messages depuis les utilisateurs.Une socket d’envoie des messages vers les utilisateurs.
⇒ deux processus par utilisateur
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Résolution du problème
un processus s’occupe de l’envoie sur une socket.un processus a la charge des receptions sur une autresocket.contrainte : il faut que le service de forum gère deuxsockets par utilisateur :
une socket d’écoute des messages depuis les utilisateurs.Une socket d’envoie des messages vers les utilisateurs.
⇒ deux processus par utilisateur
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Résolution du problème
un processus s’occupe de l’envoie sur une socket.un processus a la charge des receptions sur une autresocket.contrainte : il faut que le service de forum gère deuxsockets par utilisateur :
une socket d’écoute des messages depuis les utilisateurs.Une socket d’envoie des messages vers les utilisateurs.
⇒ deux processus par utilisateur
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Exemple avec 3 clients
C1
Les 3 clients sont connectés et le serveur est démarré
Serveur C2 C3
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Modèle de programmation
Il existe d’autres mécanismes, boîtes aux lettres, quipermettent de s’affranchir de ces points desynchronisation.Ce modèle de programmation correspond au schémaClient/Serveur, mais il en existe plusieurs autres types...
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
ProcessusCommunications inter-processus intra-processeurs
Système + réseau = parallélisme
segment mémoire partagée⇒ parallélisme à mémoirepartagéepoint de communication : socket⇒ parallélisme à mémoiredistribuéeproblèmes rencontrés en système se retrouve enparallélisme.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Plan
1 Historique
2 Système + Réseaux = ParallélismeProcessusCommunications inter-processus intra-processeurs
3 Schémas d’exécutions distribuées asynchronesSchéma C/SSchéma M/SSchéma P2P
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Exécutions distribuées asynchrones
Chaque processus se déroule indépendamment desautres processus.Le bloquage en attente d’une reception de message peutêtre interprété comme un point de synchronisation entre ceprocessus et l’émetteur.Plusieurs modèles de programmation distribuée etparallèle suivent des schémas d’exécution distribuéeasynchrones.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Schémas d’exécution distribuée asynchrones
Le modèle client/serveur (C/S)Le modèle maître/esclave (M/S)Le modèle pair-à-pair (P2P)
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Schéma client/serveur
un serveurdes clientsinitiative aux clientsun serveur ≡ plusieurs services
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Schéma client/serveur
Client
Client
Client
Client
Client
Serveur
réponsesdemande de service
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Schéma maître/esclaves
d’un certain point de vue, ce schéma est l’inverse duclient/serveur :
client/serveur : une multitude de clients et un serveur.maître/esclaves : un client et une multitude de serveurs.
initiative au maître qui distribue du travail aux esclaves.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Schéma maître/esclaves
Esclave
Esclave
Maitre
Esclave
Esclave
Esclave
retour du résultatenvoi de travail
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Différence conceptuelle
Client/serveur : chaque interaction (requête/réponse)correspond à une tâche indépendante.Maître/esclaves : concept centralisé. Le maître construitquelque chose et requiert l’aide. Chaque interaction (envoide travail/retour de résultat) peut ou non être indépendantdes autres.Analogie immobilière :
un constructeur de maisons et des clients : client/serveur :projets indépendants.un maître d’oeuvre et des artisans : modèlemaître/esclaves : différentes tâches pour un unique projet.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Différence conceptuelle
Client/serveur : chaque interaction (requête/réponse)correspond à une tâche indépendante.Maître/esclaves : concept centralisé. Le maître construitquelque chose et requiert l’aide. Chaque interaction (envoide travail/retour de résultat) peut ou non être indépendantdes autres.Analogie immobilière :
un constructeur de maisons et des clients : client/serveur :projets indépendants.un maître d’oeuvre et des artisans : modèlemaître/esclaves : différentes tâches pour un unique projet.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Différence conceptuelle
Client/serveur : chaque interaction (requête/réponse)correspond à une tâche indépendante.Maître/esclaves : concept centralisé. Le maître construitquelque chose et requiert l’aide. Chaque interaction (envoide travail/retour de résultat) peut ou non être indépendantdes autres.Analogie immobilière :
un constructeur de maisons et des clients : client/serveur :projets indépendants.un maître d’oeuvre et des artisans : modèlemaître/esclaves : différentes tâches pour un unique projet.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Différence conceptuelle
Client/serveur : chaque interaction (requête/réponse)correspond à une tâche indépendante.Maître/esclaves : concept centralisé. Le maître construitquelque chose et requiert l’aide. Chaque interaction (envoide travail/retour de résultat) peut ou non être indépendantdes autres.Analogie immobilière :
un constructeur de maisons et des clients : client/serveur :projets indépendants.un maître d’oeuvre et des artisans : modèlemaître/esclaves : différentes tâches pour un unique projet.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Différence conceptuelle
Client/serveur : chaque interaction (requête/réponse)correspond à une tâche indépendante.Maître/esclaves : concept centralisé. Le maître construitquelque chose et requiert l’aide. Chaque interaction (envoide travail/retour de résultat) peut ou non être indépendantdes autres.Analogie immobilière :
un constructeur de maisons et des clients : client/serveur :projets indépendants.un maître d’oeuvre et des artisans : modèlemaître/esclaves : différentes tâches pour un unique projet.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Schéma pair-à-pair
schéma entièrement distribué,schémas client/serveur et/ou maître/esclaves généralisés,chaque entité (pair) remplie les deux rôles.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
HistoriqueSystème + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones
Schéma client/serveur (C/S)Schéma maître/esclaves (M/S)Schéma pair-à-pair
Schéma pair-à-pair
Pair
Pair
Pair
Pair
Pair
Pair
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une introduction
*HistoriqueSystème + Réseaux = ParallélismeProcessusCommunications inter-processus intra-processeurs
Schémas d'exécutions distribuées asynchronesSchéma C/SSchéma M/SSchéma P2P