Vous êtes sur la page 1sur 95

Algorithmiques et architectures distribuées et

parallèles : une introduction

Frederic Guinand Eric Sanlaville

Master 1 informatique
eric.sanlaville@univ-lehavre.fr

2heures

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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


Historique
Système + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones

Plan

1 Historique

2 Système + Réseaux = Parallélisme


Processus
Communications inter-processus intra-processeurs

3 Schémas d’exécutions distribuées asynchrones


Schéma C/S
Schéma M/S
Schéma P2P

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Système + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones

Plan

1 Historique

2 Système + Réseaux = Parallélisme


Processus
Communications inter-processus intra-processeurs

3 Schémas d’exécutions distribuées asynchrones


Schéma C/S
Schéma M/S
Schéma P2P

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Système + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones

Plan

1 Historique

2 Système + Réseaux = Parallélisme


Processus
Communications inter-processus intra-processeurs

3 Schémas d’exécutions distribuées asynchrones


Schéma C/S
Schéma M/S
Schéma P2P

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Système + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones

Plan

1 Historique

2 Système + Réseaux = Parallélisme


Processus
Communications inter-processus intra-processeurs

3 Schémas d’exécutions distribuées asynchrones


Schéma C/S
Schéma M/S
Schéma P2P

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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 mining
Vé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


Historique
Systè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 mining
Vé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


Historique
Systè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


Historique
Systè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 bout
d’aile et les turbulences résultant de la propulsion. Calcul
réalisé sur NEC SX5 et NEC-SX6 :

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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


Historique
Systè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


Historique
Systè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 x
300 points sur l’horizontale et une variable à deux
dimensions x 600 x 300 points sur l’horizontale,
le nombre de calculs à effectuer pour une variable est Nc =
7.103
le nombre de pas de temps pour réaliser une prévision à
24 heures d’échéance est Nt = 96 (pas de temps de 15
minutes).

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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 VPP700
cré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 à 24
heures d’échéance est un peu inférieur à un quart d’heure.
Météo-France a acheté dernièrement un NEC SX-8 qui
devrait délivrer une puissance de 35 Tflops (mise en
service : 2008).
⇒ en théorie, le même calcul : ∼ 1 seconde...

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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 VPP700
cré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 à 24
heures d’échéance est un peu inférieur à un quart d’heure.
Météo-France a acheté dernièrement un NEC SX-8 qui
devrait délivrer une puissance de 35 Tflops (mise en
service : 2008).
⇒ en théorie, le même calcul : ∼ 1 seconde...

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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 VPP700
cré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 à 24
heures d’échéance est un peu inférieur à un quart d’heure.
Météo-France a acheté dernièrement un NEC SX-8 qui
devrait délivrer une puissance de 35 Tflops (mise en
service : 2008).
⇒ en théorie, le même calcul : ∼ 1 seconde...

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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


Historique
Systè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 partout
Ce sont des systèmes parallèles sur une seule puce !
Ordinateur serveur interne -> Meta computing -> Cloud
Computing
Vers une externalisation des puissances de calcul et de
stockage ?

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Système + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones

Historique

1950 → 1970 : les pionniers


1970 → 1990 : explosion des architectures
1990 → 2000 : extinction massive
2000 → l’ère des géants

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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 ratio
fonctionnement/maintenance. ILLIAC IV : quelques heures
de calcul/quelques semaines de maintenance.
Les premiers grands noms du parallélisme apparaissent et
avec 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


Historique
Systè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 ratio
fonctionnement/maintenance. ILLIAC IV : quelques heures
de calcul/quelques semaines de maintenance.
Les premiers grands noms du parallélisme apparaissent et
avec 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


Historique
Systè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


Historique
Systè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 pas
seulement été une amélioration de ses prédécesseurs
mais aussi une amélioration de presque tous ses
successeurs.
Bull : Gamma 60. Première machine multiprocesseurs
franç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
Historique
Systè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


Historique
Systè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


Historique
Systè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


Historique
Systè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


Historique
Systè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


Historique
Systè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 machine
parallèle extrêmement élevé.
⇒ solution apportée par PVM : utiliser des réseaux locaux de
stations de travail pour faire du calcul parallèle.
Constructeurs machines parallèles → réseaux de stations
de travail intégrés.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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


Historique
Systè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


Historique
Systè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 et
sous-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és
sur 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, les
interactions

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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’il


est offert par les producteurs d’énergie.
Objectif : brancher le cable réseau du PC pour consommer
de la puissance de calcul comme on branche une prise de
courant 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


Historique
Systè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 bonne
utilisation.
Constat : les problèmes de sécurité pénalisent l’utilisation
commerciale
Remède : construire des réseaux locaux de grandes
dimensions.
Grappes de machines (clusters of machines).

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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


Historique
Systè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. 150152
processeurs.
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. 38208
processeurs.
(14) Jade SGI CINES FRANCE 128 TFlops. 12288
processeurs.
(54) Tera-10. Bull SA. CEA France. 52 TFlops. 9952
processeurs.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une
Historique
Système + Réseaux = Parallélisme
Schémas d’exécutions distribuées asynchrones

Les systèmes

Système Pourcentage (fin 2007)


Linux 75.20
Unix 17.20
BSD Based 3
Mixed 6.40
Mac OS 0.60

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Systè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 + importantes
communications.
⇒ recherche de performances ≡ compromis entre équilibrage
de la charge et minimisation des communications.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Plan

1 Historique

2 Système + Réseaux = Parallélisme


Processus
Communications inter-processus intra-processeurs

3 Schémas d’exécutions distribuées asynchrones


Schéma C/S
Schéma M/S
Schéma P2P

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Définitions

Ordinateur parallèle : ensemble de processeurs capables


de travailler en coopération de manière à résoudre un
problème donné (I. Foster).
Le parallélisme est une technique d’accroissement des
performances d’un système fondé sur l’exécution en
parallèle de plusieurs processus.
Le parallélisme recouvre tous les aspects liés aux
systèmes multi-processeurs et multi-ordinateurs et aux
applications associées
→ conception, modélisation, mise en œuvre et utilisation
des systèmes et des applications.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Définitions

En informatique, le calcul parallèle consiste en l’exécution


simultanée d’une même tâche, partitionnée et adaptée afin
de pouvoir être répartie entre plusieurs processeurs en
vue 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écution
d’une application sur un ensemble de processeurs.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Programmes et processus

programme binaire : objet inerte


nécessite un support pour son exécution
→ processus
programme : le code binaire exécutable
données : espace d’adressage du processus
informations diverses qui définissent le contexte
d’exécution du processus : bloc de contrôle du processus
Toutes les actions effectuées par un processeur sont
exécutées dans le contexte d’un processus
terminologie : souvent activité ↔ thread. Pour nous
activité ≡ action exécutée par un processus.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Programmes et processus

programme binaire : objet inerte


nécessite un support pour son exécution
→ processus
programme : le code binaire exécutable
données : espace d’adressage du processus
informations diverses qui définissent le contexte
d’exécution du processus : bloc de contrôle du processus
Toutes les actions effectuées par un processeur sont
exécutées dans le contexte d’un processus
terminologie : souvent activité ↔ thread. Pour nous
activité ≡ action exécutée par un processus.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Programmes et processus

programme binaire : objet inerte


nécessite un support pour son exécution
→ processus
programme : le code binaire exécutable
données : espace d’adressage du processus
informations diverses qui définissent le contexte
d’exécution du processus : bloc de contrôle du processus
Toutes les actions effectuées par un processeur sont
exécutées dans le contexte d’un processus
terminologie : souvent activité ↔ thread. Pour nous
activité ≡ action exécutée par un processus.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Programmes et processus

programme binaire : objet inerte


nécessite un support pour son exécution
→ processus
programme : le code binaire exécutable
données : espace d’adressage du processus
informations diverses qui définissent le contexte
d’exécution du processus : bloc de contrôle du processus
Toutes les actions effectuées par un processeur sont
exécutées dans le contexte d’un processus
terminologie : souvent activité ↔ thread. Pour nous
activité ≡ action exécutée par un processus.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Ordonnancement

système multi-tâches : comment gérer la ressource de


calcul ?
rôle de l’ordonnanceur.
quelle stratégie ?
tâches insécables : impossible
tâches interruptibles (E/S)
temps partagé (time slicing)
temps partagé + interruption

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Ordonnancement

système multi-tâches : comment gérer la ressource de


calcul ?
rôle de l’ordonnanceur.
quelle stratégie ?
tâches insécables : impossible
tâches interruptibles (E/S)
temps partagé (time slicing)
temps partagé + interruption

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Visualisation des effets du time sharing

Exemple
un processus créé un processus fils
le 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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Visualisation des effets du time sharing

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Mécanismes de communications inter-processus

Il existe deux mécanismes principaux pour faire


communiquer deux processus :
La communication via la mémoire
La communication par échange de messages
Principales caractéristiques :
synchrone ↔ asynchrone
directe ↔ indirecte
de type un-vers-un ↔ de type un-vers-plusieurs

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Mécanismes de communications inter-processus

Il existe deux mécanismes principaux pour faire


communiquer deux processus :
La communication via la mémoire
La communication par échange de messages
Principales caractéristiques :
synchrone ↔ asynchrone
directe ↔ indirecte
de type un-vers-un ↔ de type un-vers-plusieurs

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Mécanismes de communications inter-processus

Il existe deux mécanismes principaux pour faire


communiquer deux processus :
La communication via la mémoire
La communication par échange de messages
Principales caractéristiques :
synchrone ↔ asynchrone
directe ↔ indirecte
de type un-vers-un ↔ de type un-vers-plusieurs

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Mécanismes de communications inter-processus

Il existe deux mécanismes principaux pour faire


communiquer deux processus :
La communication via la mémoire
La communication par échange de messages
Principales caractéristiques :
synchrone ↔ asynchrone
directe ↔ indirecte
de type un-vers-un ↔ de type un-vers-plusieurs

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Communication par mémoire partagée

Les processus qui ont besoin d’échanger des données le


font via la mémoire en partageant une partie de la
mémoire, partie qui est attachée à leur espace
d’adressage.
On appelle segment de mémoire partagé cette mémoire
commune.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Communication par mémoire partagée

Les processus qui ont besoin d’échanger des données le


font via la mémoire en partageant une partie de la
mémoire, partie qui est attachée à leur espace
d’adressage.
On appelle segment de mémoire partagé cette mémoire
commune.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Problèmes

Que se passe-t-il si deux processus lisent en même


temps ?
...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 dans
un état cohérent et peut ne correspondre ni à la la donnée
avant l’écriture, ni à la donnée après l’écriture.
Que se passe-t-il si deux processus écrivent
simultanément ?
...de gros problèmes en perspective.
problèmes de synchronisation des processus et de
protection des accès.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une
Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Problèmes

Que se passe-t-il si deux processus lisent en même


temps ?
...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 dans
un état cohérent et peut ne correspondre ni à la la donnée
avant l’écriture, ni à la donnée après l’écriture.
Que se passe-t-il si deux processus écrivent
simultanément ?
...de gros problèmes en perspective.
problèmes de synchronisation des processus et de
protection des accès.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une
Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Problèmes

Que se passe-t-il si deux processus lisent en même


temps ?
...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 dans
un état cohérent et peut ne correspondre ni à la la donnée
avant l’écriture, ni à la donnée après l’écriture.
Que se passe-t-il si deux processus écrivent
simultanément ?
...de gros problèmes en perspective.
problèmes de synchronisation des processus et de
protection des accès.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une
Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Problèmes

Que se passe-t-il si deux processus lisent en même


temps ?
...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 dans
un état cohérent et peut ne correspondre ni à la la donnée
avant l’écriture, ni à la donnée après l’écriture.
Que se passe-t-il si deux processus écrivent
simultanément ?
...de gros problèmes en perspective.
problèmes de synchronisation des processus et de
protection des accès.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une
Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Origine du problème

Les opérations de lecture/écriture en mémoire ne sont pas


atomiques.
⇒ une lecture comme une écriture peut être interrompue au
cours de son action.
La solution : les sémaphore d’exclusion mutuelle (mutex) :
rendent les opérations de lecture/écriture atomiques
en 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 P
une opération de libération souvent notée V.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Origine du problème

Les opérations de lecture/écriture en mémoire ne sont pas


atomiques.
⇒ une lecture comme une écriture peut être interrompue au
cours de son action.
La solution : les sémaphore d’exclusion mutuelle (mutex) :
rendent les opérations de lecture/écriture atomiques
en 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 P
une opération de libération souvent notée V.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Origine du problème

Les opérations de lecture/écriture en mémoire ne sont pas


atomiques.
⇒ une lecture comme une écriture peut être interrompue au
cours de son action.
La solution : les sémaphore d’exclusion mutuelle (mutex) :
rendent les opérations de lecture/écriture atomiques
en 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 P
une opération de libération souvent notée V.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Dangers

Lorsqu’il existe plusieurs segments de mémoire partagée


s1 , s2 et s3 et plusieurs processus p1 , p2 et p3 .
p1 bloque l’accès à s1 , p2 bloque l’accès à s2 et p3 bloque
l’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 ce
qu’il a à faire, puis libère s3 , ce qui libère s2 et par la suite
s1 ... 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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Dangers

Lorsqu’il existe plusieurs segments de mémoire partagée


s1 , s2 et s3 et plusieurs processus p1 , p2 et p3 .
p1 bloque l’accès à s1 , p2 bloque l’accès à s2 et p3 bloque
l’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 ce
qu’il a à faire, puis libère s3 , ce qui libère s2 et par la suite
s1 ... 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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Dangers

Lorsqu’il existe plusieurs segments de mémoire partagée


s1 , s2 et s3 et plusieurs processus p1 , p2 et p3 .
p1 bloque l’accès à s1 , p2 bloque l’accès à s2 et p3 bloque
l’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 ce
qu’il a à faire, puis libère s3 , ce qui libère s2 et par la suite
s1 ... 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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Dangers

Lorsqu’il existe plusieurs segments de mémoire partagée


s1 , s2 et s3 et plusieurs processus p1 , p2 et p3 .
p1 bloque l’accès à s1 , p2 bloque l’accès à s2 et p3 bloque
l’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 ce
qu’il a à faire, puis libère s3 , ce qui libère s2 et par la suite
s1 ... 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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Avertissement

La conception d’une application faisant intervenir plusieurs


activités qui s’exécutent simultanément requiert une étude fine
de leurs interactions afin d’éviter toute situation d’interblocage

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Exemple : forum de discussion


algorithme du service de forum

Users[] /* tableau des utilisateurs (vide au départ) */


ouverture et gestion de la socket
Tantque vrai Faire
reception_message(source,contenu,...)
Si source ∈
/ Users Alors
Users.ajouter(source)
finSi
Pour chaque u ∈ Users Faire
envoyer_message(u,contenu)
finPour
finTantQue

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Exemple : forum de discussion


Algorithme de l’utilisateur

ouverture et gestion de la socket


Tantque 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éceptions


sont bloquantes.
Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une
Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Résolution du problème

un processus s’occupe de l’envoie sur une socket.


un processus a la charge des receptions sur une autre
socket.
contrainte : il faut que le service de forum gère deux
sockets 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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Résolution du problème

un processus s’occupe de l’envoie sur une socket.


un processus a la charge des receptions sur une autre
socket.
contrainte : il faut que le service de forum gère deux
sockets 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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Résolution du problème

un processus s’occupe de l’envoie sur une socket.


un processus a la charge des receptions sur une autre
socket.
contrainte : il faut que le service de forum gère deux
sockets 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


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Exemple avec 3 clients

C1 Serveur C2 C3

Les 3 clients sont connectés et le serveur est démarré

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Modèle de programmation

Il existe d’autres mécanismes, boîtes aux lettres, qui


permettent de s’affranchir de ces points de
synchronisation.
Ce modèle de programmation correspond au schéma
Client/Serveur, mais il en existe plusieurs autres types...

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique
Processus
Système + Réseaux = Parallélisme
Communications inter-processus intra-processeurs
Schémas d’exécutions distribuées asynchrones

Système + réseau = parallélisme

segment mémoire partagée ⇒ parallélisme à mémoire


partagée
point de communication : socket ⇒ parallélisme à mémoire
distribuée
problèmes rencontrés en système se retrouve en
parallélisme.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones Schéma pair-à-pair

Plan

1 Historique

2 Système + Réseaux = Parallélisme


Processus
Communications inter-processus intra-processeurs

3 Schémas d’exécutions distribuées asynchrones


Schéma C/S
Schéma M/S
Schéma P2P

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones Schéma pair-à-pair

Exécutions distribuées asynchrones

Chaque processus se déroule indépendamment des


autres processus.
Le bloquage en attente d’une reception de message peut
être interprété comme un point de synchronisation entre ce
processus et l’émetteur.
Plusieurs modèles de programmation distribuée et
parallèle suivent des schémas d’exécution distribuée
asynchrones.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones 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


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones Schéma pair-à-pair

Schéma client/serveur

un serveur
des clients
initiative aux clients
un serveur ≡ plusieurs services

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones Schéma pair-à-pair

Schéma client/serveur

Client
demande de service
réponses

Client
Client

Serveur

Client
Client

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones Schéma pair-à-pair

Schéma maître/esclaves

d’un certain point de vue, ce schéma est l’inverse du


client/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


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones Schéma pair-à-pair

Schéma maître/esclaves

Esclave
retour du résultat
envoi de travail

Esclave
Esclave

Maitre

Esclave
Esclave

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones 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 construit
quelque chose et requiert l’aide. Chaque interaction (envoi
de travail/retour de résultat) peut ou non être indépendant
des 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èle
maître/esclaves : différentes tâches pour un unique projet.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones 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 construit
quelque chose et requiert l’aide. Chaque interaction (envoi
de travail/retour de résultat) peut ou non être indépendant
des 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èle
maître/esclaves : différentes tâches pour un unique projet.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones 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 construit
quelque chose et requiert l’aide. Chaque interaction (envoi
de travail/retour de résultat) peut ou non être indépendant
des 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èle
maître/esclaves : différentes tâches pour un unique projet.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones 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 construit
quelque chose et requiert l’aide. Chaque interaction (envoi
de travail/retour de résultat) peut ou non être indépendant
des 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èle
maître/esclaves : différentes tâches pour un unique projet.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones 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 construit
quelque chose et requiert l’aide. Chaque interaction (envoi
de travail/retour de résultat) peut ou non être indépendant
des 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èle
maître/esclaves : différentes tâches pour un unique projet.

Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones 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


Historique Schéma client/serveur (C/S)
Système + Réseaux = Parallélisme Schéma maître/esclaves (M/S)
Schémas d’exécutions distribuées asynchrones 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

Vous aimerez peut-être aussi