Modèle de Machine 1a: Mém. Partagée Tous les processeurs sont connectés à une large partagée. Appelée Symmetric Multiprocessors (SMPs) SMPs de Sun, HP, Intel, IBM Puces Multicoeur, exceptées celles qui partagent tous les caches Difficulté de s étendre à de grands nombres de processeurs <= 32 processeurs en général Avantage: uniform memory access (UMA) Coût: accès aux données dans la cache plus rapide à celles de la MC. P1 P2 Pn bus partagé Note: = cache 18
Modèle de Machine 1b: Processeur Multithreadé Multiples contexts de thread full processors Partage de et d autres états Processeur Sun Niagra (pour serveurs) 64 threads s exécutent simultanément (8 threads x 8 coeurs) En plus du partage de la, les threads partagent unités de virgule flottantes Pourquoi? Basculer entre les threads pour les opérations de à temps de latence élevé T0 T1 Tn partagé, unités de virgule flottantes partagées, etc. Mémoire 19
Pourquoi l Hyperthreding? Thread Thread 4 Thread 3 Thread 2 Thread 1 Calcul Accès Un seul Thread Calcul Temps Accès Plusieurs Thread Temps La latence de la présente un frein au temps d exécution Un seul thread : taux d utilisation 15-25% Solution : trouver un calcul à faire durant les accès Hyperthreading (Plusieurs threads) : taux d utilisation > 85% 20
Chip Multithreading CMP: Chip that provide MultiProcessing. Architecture Muticoeurs : plusieurs cœurs par processeur HMT: Hardware MultiThreading. Plusieurs threads par cœur CMT: Chip MultiThreading Combine les 2 technologies Plusieurs cœurs par processeur, et chaque cœur supporte plusieurs threads ref : J. Zhang 21
Modèle de Machine 1c: Mémoire Distribuée Partagée La est logiquement partagée, mais physiquement distribuée Tout processeur peut accéder à n'importe quelle adresse en Lignes de cache sont échangés entre les machines Machines SGI (Silicon Graphics) Jusqu à 512 processeurs (SGI Altix) Limitation : cohérence de cache. Comment garder des copies en cache de la même adresse cohérentes P1 P2 réseau Pn Lignes de caches doivent être suffisament grandes pour amortir le surcoût la localité reste critique à la performance 22
Modèle de programmation 2: Passage de Message Un programme consiste en une collection de processus nommés. En général fixé au moment du démarrage du programme Thread de contrôle et espace d'adresses local - pas de données partagées. Les données logiquement partagées sont partitionnées entre les processus locaux. Les processus communiquent explicitement par des paires send/receive La coordination est implicite dans chaque événement de communication. MPI (Message Passing Interface) est le plus utilisé Mémoire Privée s: 12 s: 14 receive Pn,s s: 11 y =..s... i: 2 i: 3 i: 1 P0 P1 send P1,s Pn Réseau 23
Calculer s = A[1]+A[2] par chaque processeur 1ère solution Processeur 1 xlocal = A[1] send xlocal, proc2 receive xremote, proc2 s = xlocal + xremote Processeur 2 xlocal = A[2] send xlocal, proc1 receive xremote, proc1 s = xlocal + xremote 2ème solution Processor 1 xlocal = A[1] send xlocal, proc2 receive xremote, proc2 s = xlocal + xremote Processor 2 xlocal = A[2] receive xremote, proc1 send xlocal, proc1 s = xlocal + xremote Si on dispose de plus que 2 processeurs? 24
Modèle de Machine 2a: Mémoire Distribuée Clusters de PC IBM SP-3 est une machine à mém. distribuée, mais les noeuds sont des SMPs. Chaque processeur posséde ses propres et cache et ne peut pas accéder directement à la d un autre processeur Chaque noeud dispose d une interface réseau (IR) pour toutes les communications et synchronisations. P0 IR P1 IR Pn IR... interconnection Modèle de Machine 2b Grilles de calcul 25