Les multiprocesseurs - PowerPoint PPT Presentation

1 / 46
About This Presentation
Title:

Les multiprocesseurs

Description:

Nous allons maintenant tudier les multiprocesseurs, comment ils fonctionnent, ... Dans ce qui suit, nous allons maintenant tudier comment faire un syst me ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 47
Provided by: frdricm4
Category:

less

Transcript and Presenter's Notes

Title: Les multiprocesseurs


1
Les multiprocesseurs
  • Jusquà maintenant, nous avons parlé longuement
    des microprocesseurs.
  • Nous allons maintenant étudier les
    multiprocesseurs, comment ils fonctionnent, quels
    sont les problèmes particuliers qui apparaissent.

2
Les multiprocesseurs
  • Périodiquement, depuis les années 60, on a
    prédit la fin des uniprocesseurs, au profit des
    multiprocesseurs
  • On parle souvent de la vitesse de la lumière
    comme dune limite proche dêtre atteinte
  • C 3 X 10 8 m/s   15 cm / 0,5 ns (2 GHz)
  • On dit que des architectures nouvelles
    (multiprocesseurs) devront être utilisées pour
    continuer daméliorer la performance
  • Mais depuis 1985, laugmentation de performance
    des processeurs est la plus importante depuis la
    fin des années 50!

3
Les multiprocesseurs pourquoi
  • En supposant que les microprocesseurs demeurent
    la technologie dominante pour les uniprocesseurs,
    il semble naturel dimaginer en connecter
    plusieurs ensemble pour augmenter la performance
  • Il nest pas clair que le taux dinnovation au
    niveau de larchitecture pourra se continuer
    longtemps
  • Il semble quil y ait des progrès constants dans
    les 2 domaines où les machines parallèles ont le
    plus de difficulté le logiciel et les
    interconnexions

4
Les types de multiprocesseurs
  • Taxonomie proposée par Flynn dans les années 60
  • SISD (Single Instruction Single Data)
    uniprocesseur
  • SIMD (Single Instruction Multiple Data)
    plusieurs processeurs, qui exécutent en parallèle
    les mêmes instructions sur plusieurs données
  • MISD (Multiple Instruction Single Data) pas
    dexemple connu
  • MIMD (Multiple Instruction Multiple Data)
    plusieurs processeurs qui opèrent de façon
    indépendantes ou semi-indépendantes sur leurs
    données

5
Types de multiprocesseurs utilisés
  • Les premiers multiprocesseurs étaient du type
    SIMD, et cette architecture est encore utilisée
    pour certaines machines spécialisées
  • Le type MIMD semble être la cible de choix de nos
    jours pour des ordinateurs dapplication
    courante
  • Les MIMD sont flexibles on peut les utiliser
    comme machines à un seul utilisateur, ou comme
    machines multi-programmées
  • Les MIMD peuvent être bâties à partir de
    processeurs existants

6
Au centre des processeurs MIMD la mémoire
  • On peut classifier les processeurs MIMD en deux
    classes, dépendant du nombre de processeurs dans
    la machine. Ultimement, cest lorganisation de
    la mémoire qui est affectée
  • Mémoire partagée centralisée (centralized shared
    memory)
  • Mémoire distribuée

7
Architecture possible des multiprocesseurs
Multiprocesseur
8
Mémoire partagée centralisée
9
Mémoire partagée centralisée
  • La mémoire partagée centralisée (centralized
    shared memory) est utilisée par des machines dau
    plus une douzaine de processeurs en 1995
  • On utilise un bus qui connecte les processeurs et
    la mémoire, avec laide de mémoire cache locale.
  • On appelle ce type de structure de mémoire le
    Uniform Memory Access (UMA).

10
Mémoire distribuée
11
Architecture possible des multiprocesseurs
Multiprocesseur
12
Mémoire distribuée
  • La mémoire distribuée est utilisée dans des
    machines utilisant  beaucoup  de processeurs,
    qui requièrent une bande passante trop grande
    pour une mémoire unique
  •  Beaucoup  tend à diminuer avec le temps,
    puisque la performance des processeurs continue
    daugmenter plus rapidement que celle de la
    mémoire
  • Avantages de la mémoire distribuée il est plus
    facile daugmenter la bande passante de la
    mémoire si la plupart des accès mémoire sont
    locaux. La latence est aussi améliorée lorsquon
    utilise la mémoire locale

13
Modèles de mémoire distribuée
  • Il existe deux modèles de mémoire distribuée
  • Espace dadressage unique, accessible par tous
    les processeurs, mais distribué parmi les
    processeurs. On dit de ce système quil est
    Non-Uniform Memory Access (NUMA), parce que le
    temps daccès à la mémoire dépend de lendroit où
    se trouve la région qui est adressée (locale ou
    distante)
  • Espace dadressage privé, où chaque processeur a
    un accès exclusif à la mémoire locale. On
    appelle parfois ces systèmes des systèmes
    multi-ordinateurs (multi-computers)
  • Pour ces deux modèles, le mode de communication
    diffère
  • Pour la mémoire partagée, la communication se
    fait de façon implicite, en écrivant/lisant la
    mémoire.
  • Pour la mémoire privée, on doit utiliser des
    messages explicites entre les processeurs pour
    passer linformation de lun à lautre, doù leur
    nom de machines à passage de message (Message
    Passing Machines)

14
Architecture possible des multiprocesseurs
Multiprocesseur
15
Avantages et inconvénients des mécanismes de
communication
  • Mémoire partagée
  • Mécanisme bien connu
  • Facile à programmer (et facile de bâtir des
    compilateurs)
  • Meilleure utilisation de la bande passante
    (protection de la mémoire au niveau du matériel,
    et non au niveau du système dexploitation
  • Possibilité dutiliser des techniques de caching
  • Message-passing
  • Matériel simplifié
  • Communication explicite, exigeant lintervention
    du programmeur

16
Paramètres de communication
  • Bande passante
  • Limitée par linterconnection ou par les
    processeurs eux-mêmes?
  • Temps de latence
  • Temps de préparation de lenvoyeur temps de vol
    (taille du message) / (bande passante) temps
    de réception.
  • Élimination apparente de la latence (latency
    hiding)
  • Comment minimiser limpact de la latence?
  • Impact au niveau du logiciel

17
Limites de la programmation parallèle
  • Loi de Amdahl
  • Speedup 1 _____________
  • Fraction(améliorée) (1 - Fraction(améliorée)
  • Speedup(amélioré)
  • Soit un speedup désiré de 80 avec 100
    processeurs. Quelle portion de lapplication
    peut être séquentielle?
  • Fraction(parallèle) 0.9975 --gt 0,25 maximum
    peut être séquentielle

18
Limites de la programmation parallèle (II)
  • Importance de la latence
  • Dans les machines parallèles daujourdhui,
    laccès à de linformation sur un autre
    processeur peut prendre entre 50 et 10,000 coups
    dhorloge.
  • Soit une machine qui prend 2,000 ns pour un accès
    mémoire à distance, une horloge de 10 ns, et un
    CPI de base de 1.0. Quelle est limpact sur le
    CPI si 0,5 des instructions font un accès
    mémoire à distance?
  • Accès à distance 2,000 / 10 200 coups
    dhorloge
  • CPI 1.0 0,5 X 200 2.0

19
Les systèmes à mémoire partagée centralisée
  • Dans ce qui suit, nous allons maintenant étudier
    comment faire un système parallèle MIMD qui
    utilise de la mémoire partagée centralisée

20
La cohérence de la mémoire quest-ce que cest?
  • Comme pour les uniprocesseurs, il est essentiel
    pour la performance des multiprocesseurs que le
    temps daccès à la mémoire soit raisonnable
  • Lutilisation de mémoire cache est donc encore de
    première importance
  • Puisquon est en présence de plusieurs machines,
    il se peut quune adresse mémoire utilisée par
    une machine  A  soit modifiée par une machine
     B . Il faut sassurer que les données gardées
    dans les mémoires caches soient les mêmes pour
    tous les processeurs. Cest ce quon appelle la
     cohérence  de la mémoire

21
Exemple du problème de cohérence de cache
Temps Événement Cache du CPU A Cache du CPU B Contenu de la mémoire, adresse  X 
0 1
1 CPU A lit X 1 1
2 CPU B lit X 1 1 1
3 CPU A écrit 0 dans X 0 1 0
22
Définition de la cohérence de la mémoire
  • Définition 1 Chaque lecture de la mémoire
    retourne la valeur écrite le plus récemment
  • Cette définition traite de 2 concepts
  • La cohérence (est-ce que la lecture retourne la
    bonne valeur)
  • La consistence (quand est-ce quune valeur écrite
    devient visible?)

23
Définition de la cohérence
  • La mémoire est cohérente si
  • Un read par le processeur P à ladresse X qui
    suit un write à ladresse X par le processeur P,
    sans quil ny ait eu décriture par dautres
    processeurs, retourne toujours la valeur écrite
    par P
  • Un read par P à ladresse X qui suit un write par
    Q à ladresse X retourne la valeur écrite par Q
    si les 2 événements sont assez distants dans le
    temps
  • Les écritures au même endroit sont sérialisées
  • Les écritures par deux processeurs P et Q à
    ladresse X sont vues dans le même ordre par tout
    processeur du système

24
Fonction de la mémoire cache
  • La mémoire cache a deux fonctions
  • La migration On transporte les valeurs dans la
    mémoire cache locale pour diminuer le temps
    daccès
  • La réplication Lorsquune donnée est modifiée,
    toutes les caches qui la détiennent doivent être
    infformées

25
Dans un système à multiprocesseur, comment
connaître létat des différentes caches?
  • Il existe deux classes de protocoles de cohérence
    de cache
  • Basé sur un répertoire (directory based) létat
    de partage des adresses de la mémoire est
    conservé dans un endroit unique, le directory
  • Basé sur lespionnage (snooping) chaque mémoire
    cache est branchée sur un bus de mémoire commun,
    et écoute continuellement ce qui se passe

26
Architecture possible des multiprocesseurs
Multiprocesseur
27
Méthodes de maintient de la cohérence
  • Il y a deux façons de sassurer de la cohérence
    des caches
  • Obtenir laccès exclusif de ladresse mémoire
    visée
  • Mettre à jour les autres copies 
  • Lusage exclusif de la mémoire est appelé le
    protocole décriture invalidante (write
    invalidate protocol). Le principe est le
    suivant suivant lécriture dune donnée, toutes
    les autres copies de cette donnée sont marquées
    comme étant invalides.
  • La mise à jour des autres copies est appelée le
    protocole décriture et mise à jour (write update
    protocol, aussi appellé write broadcast
    protocol). Ici, chaque écriture est suivie de
    messages de mises à jour pour les autres versions
    de la même donnée.

28
Architecture possible des multiprocesseurs
Multiprocesseur
29
Méthodes de maintient de la cohérence (II)
  • Les deux protocoles dopération ont des
    caractéristiques différentes qui infuencent leur
    performance
  • Dans le cas décritures multiples au même espace
    mémoire, sans lecture intermédiaire
  • Le protocole de mise à jour utilisera de
    multiples appels aux autres machines
  • Le protocole dusage exclusif nutilisera quun
    seul accès dinvalidation.
  • Il est possible de regrouper les mots mémoire
    pour le protocole dusage exclusif, et ainsi
    diminuer le nombre dinvalidations nécessaires
    lors décriture à des adresses adjacentes (on
    invalide toute un bloc de mémoire)
  • Cette possibilités nexiste pas pour le protocole
    de mise à jour.

30
Méthodes de maintient de la cohérence (III)
  • Le délai nécessaire entre lécriture dune donnée
    et sa lecture sur une autre machine est
    habituellement plus petit avec un protocole de
    mise à jour
  • Le protocole dusage exclusif est maintenant le
    plus utilisé dans les machines multiprocesseurs

31
Implémentation du protocole dusage exclusif
  • Comment réaliser ce protocole? Sur un
    multiprocesseur à petite échelle, on utilise le
    bus comme moyen privilégié de synchronisation.
  • Pour pouvoir écrire dans la mémoire, un
    processeur doit dabord obtenir le contrôle du
    bus.
  • Ensuite, ladresse de la mémoire modifiée est
    envoyée sur le bus.
  • Tous les autres processeurs sont continuellement
    à lécoute. Si une écriture est faite à une
    adresse mémoire qui est dans leur cache, cette
    adresse est invalidée.

32
Implémentation du protocole dusage exclusif (II)
  • Pour la lecture, sil y a un cache miss, le
    processeur va demander la donnée sur le bus.
    Ici, il y a 2 possibilités
  • Si la mémoire centrale est continuellement mise à
    jour (write-through), alors elle peut fournir la
    valeur demandée.
  • Si au contraire on utilise lécriture avec délai
    (write-back), il se peut que ce soit un
    processeur qui détienne la valeur la plus
    récente. Pour ce type de machine, les
    processeurs doivent écouter le bus pour la
    lecture aussi, et fournir la valeur demandée en
    interrompant la lecture de la mémoire centrale.

33
Architecture possible des multiprocesseurs
Multiprocesseur
34
Implémentation du protocole dusage exclusif
(III)
  • On peut ajouter de linformation dans la mémoire
    cache locale pour améliorer le rendement du
    système (write-back). On utilise alors un bit de
    partage
  • Lors de lécriture dune adresse mémoire, on met
    le bit de partage à 0.
  • Lors décritures subséquentes, on ninforme
    personne de lécriture si le bit de partage est
    toujours à 0.
  • Si un autre processeur lit cette adresse mémoire,
    le bit de partage est mis à 1, et une écriture
    subséquente va donc générer une invalidation.
  • Note comment permettre laccès efficace de la
    mémoire cache à la fois par le processeur et par
    le système de surveillance du bus? On peut tout
    simplement dédoubler linformation de partage.
    Une façon de faire est dutiliser des caches
    multi-niveaux.

35
Protocole  write-invalidate 
36
Protocole  write invalidate  unifié
37
Architecture possible des multiprocesseurs
Multiprocesseur
38
Gestion de la mémoire pour des machines à
beaucoup de processeurs
  • Lorsquon désire utiliser beaucoup de
    processeurs, la méthode de mémoire partagée
    centralisée ne fonctionne plus les délais
    deviennent trop importants
  • Solution utiliser de la mémoire partagée
    distribuée
  • Problème (toujours le même) cohérence des
    mémoires cache.
  • Solution possible on défend dutiliser de la
    mémoire cache pour les données partagées!
  • Cest la solution adoptée entres autres par le
    Cray T3D. Chaque nœud possède une mémoire cache
    uniquement pour ses données privées (locales).

39
Problème de cohérence de cache pour des machines
à beaucoup de processeurs
  • Solution possible gestion logicielle (simplifie
    le matériel), mais
  • Pas de mécanismes efficaces pour  passer  le
    problème au compilateur, et faire gérer le
    problème de cohérence sans lintervention du
    programmeur
  • On ne peut accéder à des adresses adjacentes de
    façon efficace.
  • Meilleure solution utiliser un système matériel
    qui assure la cohérence des caches

40
Mémoire partagée distribuée le répertoire, un
protocole plus efficace que lespionnage
  • Au lieu de faire de lespionnage (snooping), du
    bus de connexion des processeurs, on peut
    utiliser un répertoire qui indique létat de la
    mémoire.
  • En particulier, le répertoire peut indiquer
    létat de chaque bloc de mémoire qui peut se
    retrouver dans la mémoire cache.
  • On y indique par exemple quelles mémoires cache
    ont des copies de quels blocs de mémoire, et si
    la mémoire a été modifiée (dirty bit) ou non.

41
Mémoire partagée distribuée le répertoire
  • Problème avec le répertoire
  • La quantité dinformation à emmagasiner est
    proportionnelle au nombre de blocs de mémoire
    multiplié par le nombre de processeurs. Pour
    plus de 100 processeurs, on peut avoir un
    problème despace requis pour le répertoire
  • Autre problème le répertoire lui-même peut
    devenir le goulot détranglement (trop de
    requêtes).
  • Solution Le répertoire lui-même peut être
    distribué de concert avec la mémoire

42
Système multiprocesseur à répertoire distribué
43
Protocole de répertoire simple
  • Pour fonctionner correctement, le système doit
    pouvoir gérer 2 types dopérations
  • Les lectures manquées ( read miss )
  • Les écritures dans un bloc de mémoire partagée
  • Pour ce faire, le répertoire doit contenir
    linformation suivante pour chaque bloc de
    mémoire
  • Mémoire partagée (un ou plusieurs processeurs
    utilisent ce bloc mémoire, qui est à jour)
  • Mémoire non en cache (aucun processeur nutilise
    une copie de ce bloc mémoire)
  • Mémoire exclusive ( un et un seul processeur
    utilise ce bloc, qui a été écrit et donc qui
    nest plus à jour)
  • Il faut savoir quels processeurs utilisent le
    bloc mémoire sil est partagé. On peut utiliser
    un vecteur de bits par bloc mémoire pour gérer
    cette information

44
Protocole de répertoire simple (2)
  • On suppose que la machine contient un grand
    nombre de processeurs.
  • Il nest plus possible dutiliser le bus pour
    résoudre les problèmes daccès simultanés.
  • De plus, on suppose que la communication se fait
    de point à point (pourquoi?)

45
Protocole dutilisation de répertoire
46
Protocole dutilisation de répertoire
Write a Comment
User Comments (0)
About PowerShow.com