340 likes | 452 Views
INTRODUCTION AUX ARCHITECTURES D’ORDINATEURS. Smail NIAR MASTER 1 Informatique Smail.Niar@univ-valenciennes.fr. Plan. Les Performances des processors superscalaire sont loins des performances idéales. Exécution sur un processeur super scalaire exécutant un ensemble de prgs, en supposant :
E N D
INTRODUCTION AUX ARCHITECTURES D’ORDINATEURS Smail NIAR MASTER 1 Informatique Smail.Niar@univ-valenciennes.fr
Les Performances des processors superscalaire sont loins des performances idéales • Exécution sur un processeur super scalaire exécutant un ensemble de prgs, en supposant: • d ’unités Fonctionnelles • vitesse de transfert entre Mémoire et UC • Prédiction des branchement parfaite • Taille de la mémoire et vitesse réelles • Taux d’échec dans la mémoire $ non nul
Architecture à Mémoire PartagéeShared Address Space Architectures • Any processor can directly reference any memory location • Communication occurs implicitly as result of loads and stores • Convenient: • Location transparency • Similar programming model to time-sharing on uniprocessors • Wide range of scale: few to hundreds of processors • memory may be physically distributed among processors
Mémoire partagée Centralisée UMA Mémoire Partagée Distribuée NUMA • Quelles solution pour le réseau d’interconnections: Connection Complète ou crossbar (coûteuse) , bus commun (faible performance pour un grand nombre de processeurs) • Solution possible : Une mémoire distribué ou « non-uniform memory access (NUMA) » • Construire une espace d’adressage partagé sur un réseau de communication fonctionnant par message
SMP : Symmetric Multi-Processors • Deux ou + processeurs • Même mémoire principale (DRAM) et E/S. Réseau d’interconnection entre processeurs • Tous les processeurs peuvent exécuter les mêmes fct (symm) • Un seul OS, supporte les interactions entre les tâches parallèles
Ring Fully Connected Quelques exemple de réseaux d’interconnexion 3 a . 2 D g r i d o r m e s h o f 1 6 n o d e s b . n - c u b e t r e e o f 8 n o d e s ( 8 = 2 s o n = 3 )
Message-Passing Y , P , t Match Receive Addr esse Y Send X, Q, t • Send instruction specifies buffer to be transmitted and/or receiving process • Receive specifies : sending process and application storage to receive into • In simplest form, the send/receive are pairwise; synch event • Send/receive Blockant ou non blockant X Addr esse ocess Local pr Local pr ocess ess space addr addr ess space Pr ocess P Pr ocess Q
Tâche A Tâche B envoie donnée canal de communication réception donnée Communication Par Passage de Messages Tâche A Tâche B Mémoire partagée écrire dans V v lire dans V Communication Par Mémoire Partagée
Example: Cray T3E • Scale up to 1024 processors, 480MB/s links • Memory controller generates comm. request for nonlocal references • No hardware mechanism for coherence (SGI Origin etc. provide this)
Processeurs Multi-cores • Architecture intel core-duo • Architecture Intel Itanium Montécito
Organisation des processeurs Flux à plusieurs instructions et une donnée Flux à plusieurs instructions et plusieurs données Flux à 1 instruction SISD Monoprocesseur Mémoire Distribuée (clusters) Mémoire partagée • Flux à une instruction • Sur plusieurs données • Processeurs vectoriels • (ex Cray) • 2) Processeurs tableau Accès Non uniforme NUMA MultiPro. Symétrique SMP
1 b c e - ´ + a = (b +1) ´ - (b c) d = c ´ e ´ d f = a d Dataflow graph ´ a ´ f Dataflow Architectures • Représenter le programme à exécuter par un graphe • Un processeur virtuel dans chaque nœud • Une instruction (nœud, processeur Virtuel) s’exécute dés que les opérandes sont présents. Un message (jeton) est envoyé a chacun des destinataires • La dépendance de données est représentés par des jetons (Token) sur le graphe. • Pratiquement un processeur (réel) représente plusieurs processeur virtuel. • Lorsqu’une instruction a calculer sont résultats il faut savoir/trouver les autres opérandes utilisés par la même instr (matching)
Architecture Typique d’un processeur Data Flow Mémoire des programme Le programme à exécuter Les résultats (jetons) déjà calcules en attente des autres résultats pour activer une instr Network T oken Pr ogram e e stor stor Network W aiting Form Instruction Execute fetch token Matching T oken queue Network
Les Trois sources du // F.Capello, LRI Orsay Paris XI
master1 Mémoire UAL UC Conclusion Lic2 Lic3
Any Time, Anywhere, Any Device All computing devices communicate All communication devices compute All enabled by silicon Demandes COMPUTING COMMUNICATIONS Innovation
Shared Memory Programming • Example: Sum 100,000 numbers (Assume 10 processors). Each processor executes the same program (Pn = processor number), Array A contains shared data. sum[Pn] = 0; for (i=10000*Pn; i < 10000*(Pn + 1); i++) sum[Pn] = sum[Pn] + A[i]; half = 10; repeat synch(); /* wait for partial sum completion */ if (half % 2 != 0 && Pn == 0) sum[0] = sum[0] + sum[half -1]; half = half/2; if (Pn < half) sum[Pn] = sum[Pn] + sum[Pn + half]; until (half == 1); /* exit with final sum in sum[0] */
Distributed Memory Programming • Example: Sum 100,000 numbers (Assume 100 processors) • Partition global array, A, into 100 equal parts and distribute each part to a different processor: sum = 0; for (i=0; i < 1000; i++) sum = sum + A[i]; half = 100; limit = 100; repeat half = (half+1)/2; /* send vs. receive dividing line */ if (Pn >= half && Pn < limit) send(Pn - half, sum); if (Pn <= limit/2 -1) sum = sum + receive(); limit = half; /* upper limit of senders */ until (half == 1); /* exit with final sum */