La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Les multiprocesseurs Jusquà maintenant, nous avons parlé longuement des microprocesseurs. Nous.

Présentations similaires


Présentation au sujet: "Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Les multiprocesseurs Jusquà maintenant, nous avons parlé longuement des microprocesseurs. Nous."— Transcription de la présentation:

1 Gei 431 Architecture des ordinateurs II – Frédéric Mailhot 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Cohérence de la mémoire cache Architecture possible des multiprocesseurs Multiprocesseur Mémoire partagée centralisée (UMA) Mémoire distribuée Basée sur lespionnage (bus) Espace dadressage unique (NUMA) Espace dadressage privé (multi-ordinateurs) Write invalidate protocol Write update protocol Write-through (mémoire centrale) Write-back (mémoire centrale) Basée sur un répertoire

8 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Mémoire partagée centralisée

9 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Mémoire distribuée

11 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Architecture possible des multiprocesseurs Multiprocesseur Mémoire partagée centralisée (UMA) Mémoire distribuée

12 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Architecture possible des multiprocesseurs Multiprocesseur Mémoire partagée centralisée (UMA) Mémoire distribuée Espace dadressage unique (NUMA) Espace dadressage privé (multi-ordinateurs)

15 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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,25% maximum peut être séquentielle

18 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 = ,5% X 200 = 2.0

19 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Exemple du problème de cohérence de cache TempsÉvénementCache du CPU A Cache du CPU B Contenu de la mémoire, adresse « X » 01 1CPU A lit X11 2CPU B lit X111 3CPU A écrit 0 dans X 010

22 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Cohérence de la mémoire cache Architecture possible des multiprocesseurs Multiprocesseur Mémoire partagée centralisée (UMA) Mémoire distribuée Basée sur lespionnage (bus) Espace dadressage unique (NUMA) Basée sur un répertoire

27 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Cohérence de la mémoire cache Architecture possible des multiprocesseurs Multiprocesseur Mémoire partagée centralisée (UMA) Basée sur lespionnage (bus) Write invalidate protocol Write update protocol

29 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Cohérence de la mémoire cache Architecture possible des multiprocesseurs Multiprocesseur Mémoire partagée centralisée (UMA) Basée sur lespionnage (bus) Write invalidate protocol Write update protocol Write-through (mémoire centrale) Write-back (mémoire centrale)

34 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Protocole « write-invalidate »

36 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Protocole « write – invalidate » unifié

37 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Cohérence de la mémoire cache Architecture possible des multiprocesseurs Multiprocesseur Mémoire partagée centralisée (UMA) Mémoire distribuée Basée sur lespionnage (bus) Espace dadressage unique (NUMA) Espace dadressage privé (multi-ordinateurs) Write invalidate protocol Write update protocol Write-through (mémoire centrale) Write-back (mémoire centrale) Basée sur un répertoire

38 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Système multiprocesseur à répertoire distribué

43 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs 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 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Protocole dutilisation de répertoire

46 © 2001 Frédéric MailhotUniversité de Sherbrooke Les multiprocsseurs Protocole dutilisation de répertoire


Télécharger ppt "Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Les multiprocesseurs Jusquà maintenant, nous avons parlé longuement des microprocesseurs. Nous."

Présentations similaires


Annonces Google