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

Architectures parallèles Source: Michael J. Quinn Parallel Programming in C with MPI and openMP 1.

Présentations similaires


Présentation au sujet: "Architectures parallèles Source: Michael J. Quinn Parallel Programming in C with MPI and openMP 1."— Transcription de la présentation:

1 Architectures parallèles Source: Michael J. Quinn Parallel Programming in C with MPI and openMP 1

2 Plan 1. Réseaux dintercommunication 2. Ordinateurs vectoriels 3. Multiprocesseurs 4. Multi-ordinateurs 5. Taxonomie de Flynn 2

3 1. Réseaux dintercommunication Utilités Connecter les processeurs à la mémoire partagée Connecter les processeurs entre eux 2 modes: Partagé Avec commutateurs (switchs) 3

4 Comparaison des deux modes Partagé Commutateurs 4

5 Mode partagé Un seul message à la fois Les messages sont diffusés à tous les processeurs via un bus Chaque processeur écoute tous les messages Larbitrage est décentralisé Une collision nécessite la rediffusion du message Limite le nombre de processeurs 5

6 Avec commutateurs Permet la communication point-à-point Avantages: Permet lenvoi de plusieurs messages simultanément Permet lutilisation dun plus grand nombre de processeurs 6

7 Topologies des réseaux dintercommunication Représentation sous forme de graphe Noeud = processeur ou commutateur Arête = lien de communication Deux types de topologies Directe Indirecte 7

8 Topologie directe Un commutateur pour chaque processeur Chaque commutateur est connecté à: 1 processeur Au moins un autre commutateur En général, le nombre de processeurs est identique au nombre de commutateurs 8

9 Topologie indirecte Le nombre de commutateurs peut être plus grand que le nombre de processeurs Certains commutateurs ne sont connectés quà dautres commutateurs. 9

10 Évaluation dune topologie Diamètre Distance maximale entre deux noeuds Borne inférieure sur le temps de communication Largeur de coupe Nombre min darêtes à enlever pour diviser le graphe en deux composantes connexes de même taille (à 1 neud près). Borne supérieure sur le nombre de messages pouvant être envoyés simultanément. Degré = Nombre darêtes adjacentes à un noeud Longueur des arêtes: Une longueur constante permet plus facilement daugmenter le nombre de processeurs. 10

11 Grille 2-D Topologie directe Les commutateurs sont organisés sous la forme dune grille 2-D Communication permise seulement entre les noeuds voisins Tore: les extrémités sont reliées 11

12 Grille 2-D Tore Les cercles représentent des commutateurs et les carré des processeurs. 12

13 Évaluation des grilles 2-D Diamètre: (n 1/2 ) Largeur de coupe: (n 1/2 ) Degré: 4 Longueur darêtes constante 13

14 Arbre binaire Topologie indirecte n = 2 d processeurs 2n-1 commutateurs 14

15 Évaluation dun arbre binaire Diamètre: 2 log n Largeur de coupe: 1 Degré: 3 La longueur darête nest pas constante 15

16 Hyper-arbre Topologie indirecte Faible diamètre Plus grande largeur de coupe quun arbre De face, il apparaît comme un arbre de degré k et profondeur d De côté, il apparaît comme un arbre binaire renversé de hauteur d 16

17 Hyper-arbre 17

18 Évaluation des hyper-arbre Diamètre: log n Largeur de coupe: n / 2 Degré: 6 Longueur darêtes non constante 18

19 Réseau butterfly Topologie indirecte n = 2 d processeurs connectés à laide de n(log n + 1) commutateurs. 19

20 Routage sur un réseau butterfly 20

21 Évaluation Diamètre: log n Largeur de coupe: n / 2 Degré: 4 Longueur darêtes non constante 21

22 Hypercube Topologie directe Le nombre de noeuds est un puissance de 2 Adresses: 0, 1, …, 2 k -1 Le noeud i est connecté au noeud k si et seulement si leurs adresses ne diffèrent que dun seul bit. 22

23 Réseau hypercube de 16 processeurs 23

24 Évaluation Diamètre: log n Largeur de coupe: n / 2 Degré: log n La longueur des arêtes nest pas constante 24

25 Réseau shuffle-exchange Topologie directe Le nombre de noeuds est une puissance de 2 Adresses: 0, 1, …, 2 k -1 Deux arcs sortent de chaque noeud i (i,k): où k est la rotation à gauche des bits de i (i,j): où i et j ne diffèrent quau bit le moins significatif 25

26 Illustration du shuffle-exchange

27 Adressage du shuffle-exchange 27

28 Évaluation du shuffle-exchange Diamètre: 2log n - 1 Largeur de coupe: n / log n Degré: 2 Longueur darêtes non constante 28

29 Comparaison des réseaux Tous ont un diamètre logarithmique sauf la grille 2-D Hyper-arbre, butterfly et hypercube ont une largeur de coupe n / 2 Tous ont un degré constant sauf lhypercube Seul la grille 2-D a une longueur darête constante. 29

30 2. Ordinateurs vectoriels Inclut des opérations sur les vecteurs en plus des opérations sur les scalaires Deux types dimplémentations: Pipeline: Les vecteur sont déplacés de la mémoire vers le processeurs en un flux de données traités en pipeline- CRAY-I, II, Cyber 205 Réseau de processeurs: Un ordinateur standard contient plusieurs processeurs identiques et synchronisés (ex. GPU) 30

31 Réseau de processeurs 31

32 Réseau de processeurs Ordinateur frontal Programme Données manipulées séquentiellement Réseau de processeurs Mémoires locales Données manipulées en parallèle Lordinateur frontal diffuse les instructions aux processeurs du réseau Tous les processeurs du réseau exécutent la même instruction 32

33 Performance Quantité de travail par unité de temps Ex. Nombre dopérations par seconde La performance dépend de lutilisation faite des processeurs. La performance est au maximum lorsque les processeurs sont utilisés à 100% 33

34 Exemple processeurs Chacun additionne un couple dentiers en 1 sec On veut additionner deux vecteurs de1024-elements (un par processeur) 34

35 Exemple processeurs Chacun peut additionner deux entiers en 1 sec On additionne deux vecteurs de 600 éléments. 35

36 Activer et désactiver un processeur Si tous les processeurs exécute la même instruction simultanément, comment traiter les instruction conditionnelles??? Chaque processeur possède un bit de masquage lui permettant de ne pas exécuter la prochaine instruction. 36

37 if (T[i]!=0) then T[i]=1 else T[i]=-1 37

38 if (T[i]!=0) then T[i]=1 else T[i]=-1 38

39 if (T[i]!=0) then T[i]=1 else T[i]=-1 39

40 Désavantages des ordinateurs vectoriels. Nexploite que le parallélisme de données La performance décroit en présence dinstructions conditionnelles Sadapte mal à la présence de plusieurs usagers Nécessite une bande passante très grande Le rapport performance/coût nest pas aussi bon que celui des processeurs standards 40

41 3. Multiprocesseurs Plusieurs processeurs utilisant une mémoire commune Même espace dadressage Évitent trois problèmes des ordinateurs vectoriels: Peuvent être construits avec des processeurs standards Supportent plusieurs usagers Aucun problème avec les instructions conditionelles 41

42 Multiprocesseurs Deux types de multiprocesseurs: Mémoire centralisées Mémoire distribuées 42

43 Multiprocesseurs centralisés Extension directe des monoprocesseurs Plusieurs processeurs conectés à un même bus Tous les processeurs partagent une mémoire commune Le temps daccès à la mémoire est identique pour tous les processeurs Uniform memory access (UMA) Symmetrical multiprocessor (SMP) Chaque processeur possède sa propre mémoire cache 43

44 Multiprocesseurs centralisés 44

45 Données privées et partagées Données privées: Accessible à un seul processeur Données partagées: Accessible à tous les processeurs La communication entre les processeurs se fait à laide des données partagées. 45

46 Problèmes liés aux variables partagées Cohérence des caches La présence de caches réduit les problèmes de bande passante Comment sassurer que différents processeurs possèdent la même valeur pour une variable partagée? Synchronisation Exclusion mutuelle Barrière 46

47 Cohérence des caches Cache CPU A Cache CPU B Memory 7 X 47

48 Cohérence des caches CPU ACPU B Memory 7 X 7 48

49 Cohérence des caches CPU ACPU B Memory 7 X

50 Cohérence des caches CPU ACPU B Memory 2 X

51 Protocole dinvalidation en écriture CPU ACPU B 7 X 7 7 Chaque cache possède un moniteur de bus 51

52 Protocole dinvalidation en écriture CPU ACPU B 7 X 7 7 Intention de modifier X 52

53 Protocole dinvalidation en écriture CPU ACPU B 7 X 7 Invalidation de X dans le cache de A 53

54 Protocole dinvalidation en écriture CPU ACPU B X

55 Multiprocesseurs distribués La mémoire est distribuée entre les processeurs Diminue la bande passante ainsi que le temps moyen daccès à la mémoire. Permet dutiliser un plus grand nombre de processeurs Non-uniform memory access (NUMA) 55

56 Multiprocesseurs distribués 56

57 Cohérence de la mémoire cache Implémentation plus difficile que pour les multiprocesseurs à mémoire partagées. Pas de bus unique à monitorer Méthode la plus utilisée: protocole à répertoire (Directory-based protocol) 57

58 Protocole à répertoire Un répertoire contient linformation concernant les blocs de mémoire pouvant être mis en cache Le répertoire est distribué Une entrée dans le répertoire pour chaque bloc de mémoire Chaque entrée possède: Status de partage Liste des processeurs possédant une copie du bloc 58

59 Status de partage Pas en cache Aucun processeur na mis le bloc en cache Partagé Dans le cache dun ou plusieurs processeurs En lecture seulement Exclusif Dans le cache dun seule processeur Le bloc a été modifié La copie en mémoire nest plus valide 59

60 Protocole avec répertoire Interconnection Network Directory Local Memory Cache CPU 0 Directory Local Memory Cache CPU 1 Directory Local Memory Cache CPU 2 60

61 Protocole avec répertoire Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X U Vecteur de bits 61

62 Processeur 0 lit X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X U Faute de lecture 62

63 Processeur 0 lit X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X S X

64 Processeur 1 lit X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X S X Faute de lecture 64

65 Processeur 1 lit X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X S X 65 7 X

66 Processeur 2 lit X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X S X 66 7 X

67 Processeur 2 lit X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X S X 67 7 X 7 X

68 Processeur 0 écrit 6 dans X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X S X 7 X Faute décriture 68 7 X

69 Processeur 0 écrit 6 dans X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X E X Invalidation 69 Invalidation

70 Processeur 1 lit X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X E X Faute de lecture 70

71 Processeur 1 lit X Interconnection Network CPU 0CPU 1CPU 2 7 X Caches Memories Directories X E X Changer pour partage 71

72 Processeur 1 lit X Interconnection Network CPU 0CPU 1CPU 2 6 X Caches Memories Directories X E X 72

73 Processeur 1 lit X Interconnection Network CPU 0CPU 1CPU 2 6 X Caches Memories Directories X S X 6 X 73

74 Processeur 2 met 5 dans X Interconnection Network CPU 0CPU 1CPU 2 6 X Caches Memories Directories X S X 6 X Faute décriture 74

75 Processeur 2 met 5 dans X Interconnection Network CPU 0CPU 1CPU 2 6 X Caches Memories Directories X S X 6 X Invalidation 75

76 Processeur 2 met 5 dans X Interconnection Network CPU 0CPU 1CPU 2 6 X Caches Memories Directories X E X 76

77 Processeur 0 met 4 dans X Interconnection Network CPU 0CPU 1CPU 2 6 X Caches Memories Directories X E X Faute décriture 77

78 Processeur 0 met 4 dans X Interconnection Network CPU 0CPU 1CPU 2 6 X Caches Memories Directories X E Changement de processeur 5 X 78

79 Processeur 0 met 4 dans X Interconnection Network CPU 0CPU 1CPU 2 5 X Caches Memories Directories X E X 79

80 Processeur 0 met 4 dans X Interconnection Network CPU 0CPU 1CPU 2 5 X Caches Memories Directories X E

81 Processeur 0 met 4 dans X Interconnection Network CPU 0CPU 1CPU 2 5 X Caches Memories Directories X E X 81

82 Processeur 0 met 4 dans X Interconnection Network CPU 0CPU 1CPU 2 5 X Caches Memories Directories X E X 82

83 Processeur 0 libère X (flush) Interconnection Network CPU 0CPU 1CPU 2 5 X Caches Memories Directories X E X 4 X Mise à jour 83

84 Processeur 0 libère X (flush) Interconnection Network CPU 0CPU 1CPU 2 4 X Caches Memories Directories X U

85 4. Multi-ordinateurs Plusieurs ordinateurs ayant chacun sa propre mémoire Chaque ordinateur possède son propre espace dadressage Les ordinateurs interagissent entre eux par lenvoie de messages Peut facilement être construit à partir dordinateurs conventionels et un réseau local. 85

86 Multi-ordinateurs asymétriques 86

87 Avantages Les ordinateurs du réseaux sont dédiés au calcul parallèle et ne nécessite quun système dexploitation simple Deux types de systèmes dexploitations: Ordinateur frontal Ordinateurs du réseaux Système dexploitation des ordinateur du réseaux: sans mémoire virtuel sans entrée/sortie facile à comprendre. 87

88 Désavantages Tout le système dépend de lordinateur frontal Lexistence dun unique ordinateur frontal limite le nombre dordinateurs Déboguage plus difficile Les ordinateurs du réseau ne peuvent pas faire dE/S Chaque application nécessite le développement de deux types de programes (frontal et réseau) 88

89 Multi-ordinateurs symétriques 89

90 Avantages Élimine le problème de goulot détranglement causé par lexistence dun ordinateur frontal unique Déboguage plus facile Chaque ordinateur exécute le même programme Lorsquun seul ordinateur doit exécuter une opération, cela peut facilement être déterminé par une instruction conditionelle. 90

91 Désavantages Il est plus difficile de maintenir lillusion de travailler sur une seule machine lorsquon peut se connecter sur nimporte quel ordinateur possédant son propre nom. Difficulté de balancer le travail entre les ordinateurs Difficile dobtenir une bonne performance losrquil y a plusieurs processus en concurrence pour lutilisation des processeurs Ex. La mémoire cache sert les processeurs et non pas les processus. 91

92 Quel est le meilleur modèle? Lutilisation dun système dexploitation unique et complet facilitant le déboguage (e.g. Linux) plaide en faveur des multi-orninateurs symétriques Les performances dun processeurs dépendent beaucoup de lefficacité de sa mémoire cache. Cette situation est favorisé lorsquil ny a quun seul processus par processeur Cela plaide en faveur des multi-ordinateur asymétrique 92

93 Cluster maison Ordinateurs regroupés Dédié à lexécution de programmes parallèles Sans clavier ni écran Systèmes dexploitation identiques Images disque logiques identiques 93

94 Réseau de station de travail Ordinateur dispersés La priorité est donné à lusagé qui utilise le clavier Les tâches parallèles sont exécutées en arrière plan Différents systèmes dexploitation Différentes images disque 94

95 5. Taxonomie de Flynn Flux dinstructions Flux de données Simple vs. multiple Quatre combinaisons SISD SIMD MISD MIMD 95

96 SISD Single Instruction, Single Data Système monoprocesseur Note: On ne compte pas les co- processeurs Calcul en points flottant Carte graphique I/O Exemple: PC 96

97 SIMD Single Instruction, Multiple Data Ex. Réseaux de processeurs (e.g., Connection Machine, nCube, iPSC, etc.) 97

98 MISD Multiple Instruction, Single Data Architecture pipeline Grilles systoliques Ordinateur tolérant aux fautes Controleur de vol de la navette spatiale 98

99 MIMD Multiple Instruction, Multiple Data Multiprocesseurs Multi-ordinateurs 99

100 100


Télécharger ppt "Architectures parallèles Source: Michael J. Quinn Parallel Programming in C with MPI and openMP 1."

Présentations similaires


Annonces Google