Algorithmiques et architectures distribuées et parallèles : une introduction · 2010. 5. 31. ·...

95
Algorithmiques et architectures distribuées et parallèles : une introduction Frederic Guinand Eric Sanlaville Master 1 informatique [email protected] 2heures Frederic Guinand, Eric Sanlaville Algorithmiques et architectures distribuées et parallèles : une

Transcript of Algorithmiques et architectures distribuées et parallèles : une introduction · 2010. 5. 31. ·...

  • 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