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

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

Embed Size (px)

Citation preview

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

Architectures Architectures parallèlesparallèles

Source: Michael J. Quinn Parallel Programming in C with MPI and openMP

1

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

PlanPlan

1. Réseaux d’intercommunication2. Ordinateurs vectoriels3. Multiprocesseurs4. Multi-ordinateurs5. Taxonomie de Flynn

2

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

1. Réseaux 1. Réseaux dd ’’intercommunicationintercommunicationUtilités

◦Connecter les processeurs à la mémoire partagée

◦Connecter les processeurs entre eux2 modes:

◦Partagé◦Avec commutateurs (switchs)

3

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

Comparaison des deux Comparaison des deux modesmodes

Partagé Commutateurs

4

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

Mode partagéMode partagéUn seul message à la foisLes messages sont diffusés à tous les

processeurs via un busChaque processeur “écoute” tous les

messagesL’arbitrage est décentraliséUne collision nécessite la rediffusion

du messageLimite le nombre de processeurs

5

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

Avec commutateursAvec commutateursPermet la communication point-

à-pointAvantages:

◦Permet l’envoi de plusieurs messages simultanément

◦Permet l’utilisation d’un plus grand nombre de processeurs

6

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

Topologies des réseaux Topologies des réseaux dd ’’intercommunicationintercommunication

Représentation sous forme de graphe◦Noeud = processeur ou

commutateur◦Arête = lien de communication

Deux types de topologies◦Directe◦Indirecte

7

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

Topologie directeTopologie directeUn commutateur pour chaque

processeurChaque 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

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

Topologie indirecteTopologie indirecteLe nombre de commutateurs

peut être plus grand que le nombre de processeurs

Certains commutateurs ne sont connectés qu’à d’autres commutateurs.

9

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

Évaluation dÉvaluation d’’une topologieune topologie

Diamètre ◦ Distance maximale entre deux noeuds◦ Borne inférieure sur le temps de communication

Largeur de coupe◦ Nombre min d’arê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 d’arêtes adjacentes à un noeud

Longueur des arêtes: Une longueur constante permet plus

facilement d’augmenter le nombre de processeurs.

10

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

Grille 2-DGrille 2-DTopologie directeLes commutateurs sont organisés

sous la forme d’une grille 2-DCommunication permise

seulement entre les noeuds voisins

Tore: les extrémités sont reliées

11

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

Grille 2-DGrille 2-D Tore Tore

Les cercles représentent des commutateurs et les carré des processeurs.

12

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

Évaluation des grilles 2-DÉvaluation des grilles 2-DDiamètre: (n1/2)Largeur de coupe: (n1/2)Degré: 4Longueur d’arêtes constante

13

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

Arbre binaireArbre binaireTopologie indirecte n = 2d processeurs 2n-1 commutateurs

14

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

Évaluation dÉvaluation d’’un arbre un arbre binairebinaireDiamètre: 2 log n

Largeur de coupe: 1

Degré: 3

La longueur d’arête n’est pas constante

15

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

Hyper-arbreHyper-arbreTopologie indirecteFaible diamètrePlus grande largeur de coupe qu’un

arbreDe face, il apparaît comme un arbre

de degré k et profondeur dDe côté, il apparaît comme un arbre

binaire renversé de hauteur d

16

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

Hyper-arbreHyper-arbre

17

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

Évaluation des hyper-Évaluation des hyper-arbrearbreDiamètre: log n

Largeur de coupe: n / 2

Degré: 6

Longueur d’arêtes non constante

18

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

Réseau butterflyRéseau butterflyTopologie indirecten = 2d processeurs connectés à l’aide de

n(log n + 1) commutateurs.

19

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

Routage sur un réseau Routage sur un réseau butterflybutterfly

20

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

ÉvaluationÉvaluationDiamètre: log n

Largeur de coupe: n / 2

Degré: 4

Longueur d’arêtes non constante

21

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

HypercubeHypercubeTopologie directeLe nombre de noeuds est un

puissance de 2Adresses: 0, 1, …, 2k-1Le noeud i est connecté au noeud k si

et seulement si leurs adresses ne diffèrent que d’un seul bit.

22

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

Réseau hypercube de 16 Réseau hypercube de 16 processeursprocesseurs

23

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

ÉvaluationÉvaluationDiamètre: log n

Largeur de coupe: n / 2

Degré: log n

La longueur des arêtes n’est pas constante

24

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

Réseau shuffle-exchangeRéseau shuffle-exchangeTopologie directeLe nombre de noeuds est une

puissance de 2Adresses: 0, 1, …, 2k-1Deux 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 qu’au bit le

moins significatif25

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

Illustration du shuffle-Illustration du shuffle-exchangeexchange

0 1 2 3 4 5 6 7

26

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

Adressage du shuffle-Adressage du shuffle-exchangeexchange

27

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

Évaluation du shuffle-Évaluation du shuffle-exchangeexchangeDiamètre: 2log n - 1

Largeur de coupe: n / log n

Degré: 2

Longueur d’arêtes non constante

28

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

Comparaison des réseauxComparaison des réseauxTous ont un diamètre

logarithmique sauf la grille 2-DHyper-arbre, butterfly et

hypercube ont une largeur de coupe n / 2

Tous ont un degré constant sauf l’hypercube

Seul la grille 2-D a une longueur d’arête constante.

29

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

2. Ordinateurs 2. Ordinateurs vectorielsvectorielsInclut des opérations sur les vecteurs en

plus des opérations sur les scalairesDeux types d’implé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

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

Réseau de processeursRéseau de processeurs

31

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

Réseau de processeursRéseau de processeursOrdinateur frontal

◦ Programme◦ Données manipulées séquentiellement

Réseau de processeurs◦ Mémoires locales◦ Données manipulées en parallèle

L’ordinateur frontal diffuse les instructions aux processeurs du réseau

Tous les processeurs du réseau exécutent la même instruction

32

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

PerformancePerformanceQuantité de travail par unité de

temps◦Ex. Nombre d’opérations par

secondeLa performance dépend de l’utilisation faite des processeurs.

La performance est au maximum lorsque les processeurs sont utilisés à 100%

33

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

Exemple 1Exemple 11024 processeursChacun additionne un couple d’entiers en 1 sec

On veut additionner deux vecteurs de1024-elements (un par processeur)

34

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

Exemple 2Exemple 2512 processeursChacun peut additionner deux

entiers en 1 secOn additionne deux vecteurs de

600 éléments.

35

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

Activer et désactiver un Activer et désactiver un processeurprocesseur

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

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

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

37

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

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

38

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

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

39

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

Désavantages des ordinateurs Désavantages des ordinateurs vectoriels.vectoriels.N’exploite que le parallélisme de

donnéesLa performance décroit en présence d’instructions conditionnelles

S’adapte mal à la présence de plusieurs usagers

Nécessite une bande passante très grande

Le rapport performance/coût n’est pas aussi bon que celui des processeurs standards

40

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

3. Multiprocesseurs3. MultiprocesseursPlusieurs processeurs utilisant

une mémoire communeMême espace d’adressageÉ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

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

MultiprocesseursMultiprocesseurs

Deux types de multiprocesseurs:

◦Mémoire centralisées

◦Mémoire distribuées

42

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

Multiprocesseurs Multiprocesseurs centraliséscentralisésExtension directe des monoprocesseursPlusieurs processeurs conectés à un

même busTous les processeurs partagent une

mémoire communeLe temps d’accè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

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

Multiprocesseurs Multiprocesseurs centraliséscentralisés

44

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

Données privées et Données privées et partagéespartagéesDonnées privées: Accessible à

un seul processeurDonnées partagées: Accessible à

tous les processeursLa communication entre les

processeurs se fait à l’aide des données partagées.

45

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

Problèmes liés aux variables Problèmes liés aux variables partagéespartagéesCohérence des caches

◦La présence de caches réduit les problèmes de bande passante

◦Comment s’assurer que différents processeurs possèdent la même valeur pour une variable partagée?

Synchronisation◦Exclusion mutuelle◦Barrière

46

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

Cohérence des cachesCohérence des caches

Cache

CPU A

Cache

CPU B

Memory

7X

47

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

Cohérence des cachesCohérence des caches

CPU A CPU B

Memory

7X

7

48

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

Cohérence des cachesCohérence des caches

CPU A CPU B

Memory

7X

7 7

49

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

Cohérence des cachesCohérence des caches

CPU A CPU B

Memory

2X

7 2

50

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

Protocole dProtocole d’’invalidation en invalidation en écritureécriture

CPU A CPU B

7X

7 7 Chaque cache possède un moniteur de bus

51

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

Protocole dProtocole d’’invalidation en invalidation en écritureécriture

CPU A CPU B

7X

7 7

Intention de modifier X

52

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

Protocole dProtocole d’’invalidation en invalidation en écritureécriture

CPU A CPU B

7X

7

Invalidation de X dans le cache de A

53

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

Protocole dProtocole d’’invalidation en invalidation en écritureécriture

CPU A CPU B

X 2

2

54

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

Multiprocesseurs Multiprocesseurs distribuésdistribuésLa mémoire est distribuée entre

les processeursDiminue la bande passante ainsi

que le temps moyen d’accès à la mémoire.

Permet d’utiliser un plus grand nombre de processeurs

Non-uniform memory access (NUMA)

55

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

Multiprocesseurs Multiprocesseurs distribuésdistribués

56

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

Cohérence de la mémoire Cohérence de la mémoire cachecacheImplé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

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

Protocole à répertoireProtocole à répertoireUn répertoire contient l’information

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

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

Status de partageStatus de partagePas en cache

◦Aucun processeur n’a mis le bloc en cache

Partagé◦Dans le cache d’un ou plusieurs

processeurs◦En lecture seulement

Exclusif◦Dans le cache d’un seule processeur◦Le bloc a été modifié◦La copie en mémoire n’est plus valide

59

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

Protocole avec répertoireProtocole avec répertoire

Interconnection Network

Directory

Local Memory

Cache

CPU 0

Directory

Local Memory

Cache

CPU 1

Directory

Local Memory

Cache

CPU 260

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

Protocole avec répertoireProtocole avec répertoire

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X U 0 0 0

Vecteur de bits

61

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

Processeur 0 lit XProcesseur 0 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X U 0 0 0

Faute de lecture

62

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

Processeur 0 lit XProcesseur 0 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X S 1 0 0

63

7X

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

Processeur 1 lit XProcesseur 1 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X S 1 0 0

7X

Faute de lecture

64

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

Processeur 1 lit XProcesseur 1 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X S 1 1 0

7X

65

7X

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

Processeur 2 lit XProcesseur 2 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X S 1 1 0

7X

66

7X

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

Processeur 2 lit XProcesseur 2 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X S 1 1 1

7X

67

7X 7X

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

Processeur 0 écrit 6 dans Processeur 0 écrit 6 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X S 1 1 1

7X 7X

Faute d’écriture

68

7X

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

Processeur 0 écrit 6 dans Processeur 0 écrit 6 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X E 1 0 0

6X Invalidation

69

Invalidation

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

Processeur 1 lit XProcesseur 1 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X E 1 0 0

6X

Faute de lecture

70

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

Processeur 1 lit XProcesseur 1 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

7X

Caches

Memories

Directories X E 1 0 0

6X

Changer pour partage

71

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

Processeur 1 lit XProcesseur 1 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

6X

Caches

Memories

Directories X E 1 0 0

6X

72

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

Processeur 1 lit XProcesseur 1 lit X

Interconnection Network

CPU 0 CPU 1 CPU 2

6X

Caches

Memories

Directories X S 1 1 0

6X 6X

73

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

Processeur 2 met 5 dans Processeur 2 met 5 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

6X

Caches

Memories

Directories X S 1 1 0

6X 6X

Faute d’écriture

74

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

Processeur 2 met 5 dans Processeur 2 met 5 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

6X

Caches

Memories

Directories X S 1 1 0

6X 6X

Invalidation

75

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

Processeur 2 met 5 dans Processeur 2 met 5 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

6X

Caches

Memories

Directories X E 0 0 1

5X

76

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

Processeur 0 met 4 dans Processeur 0 met 4 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

6X

Caches

Memories

Directories X E 0 0 1

5X

Faute d’écriture

77

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

Processeur 0 met 4 dans Processeur 0 met 4 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

6X

Caches

Memories

Directories X E 0 0 1

Changement de processeur

5X

78

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

Processeur 0 met 4 dans Processeur 0 met 4 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

5X

Caches

Memories

Directories X E 0 0 1

5X

79

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

Processeur 0 met 4 dans Processeur 0 met 4 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

5X

Caches

Memories

Directories X E 1 0 0

80

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

Processeur 0 met 4 dans Processeur 0 met 4 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

5X

Caches

Memories

Directories X E 1 0 0

5X

81

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

Processeur 0 met 4 dans Processeur 0 met 4 dans XX

Interconnection Network

CPU 0 CPU 1 CPU 2

5X

Caches

Memories

Directories X E 1 0 0

4X

82

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

Processeur 0 libère X Processeur 0 libère X (flush)(flush)

Interconnection Network

CPU 0 CPU 1 CPU 2

5X

Caches

Memories

Directories X E 1 0 0

4X

4X

Mise à jour

83

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

Processeur 0 libère X Processeur 0 libère X (flush)(flush)

Interconnection Network

CPU 0 CPU 1 CPU 2

4X

Caches

Memories

Directories X U 0 0 0

84

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

4. Multi-ordinateurs4. Multi-ordinateursPlusieurs ordinateurs ayant chacun sa

propre mémoireChaque ordinateur possède son

propre espace d’adressageLes ordinateurs interagissent entre

eux par l’envoie de messagesPeut facilement être construit à partir

d ’ordinateurs conventionels et un réseau local.

85

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

Multi-ordinateurs Multi-ordinateurs asymétriquesasymétriques

86

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

AvantagesAvantagesLes ordinateurs du réseaux sont dédiés

au calcul parallèle et ne nécessite qu’un système d’exploitation simple

Deux types de systèmes d’exploitations:◦ Ordinateur frontal◦ Ordinateurs du réseaux

Système d’exploitation des ordinateur du réseaux:◦ sans mémoire virtuel ◦ sans entrée/sortie ◦ facile à comprendre.

87

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

DésavantagesDésavantagesTout le système dépend de l’ordinateur frontal

L’existence d’un unique ordinateur frontal limite le nombre d ’ordinateurs

Déboguage plus difficile◦Les ordinateurs du réseau ne peuvent

pas faire d’E/SChaque application nécessite le

développement de deux types de programes (frontal et réseau)

88

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

Multi-ordinateurs Multi-ordinateurs symétriquessymétriques

89

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

AvantagesAvantagesÉlimine le problème de goulot d ’étranglement causé par l’existence d ’un ordinateur frontal unique

Déboguage plus facileChaque ordinateur exécute le même

programme◦Lorsqu’un seul ordinateur doit exécuter

une opération, cela peut facilement être déterminé par une instruction conditionelle.

90

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

DésavantagesDésavantagesIl est plus difficile de maintenir l’illusion de

travailler sur une seule machine lorsqu’on peut se connecter sur n’importe quel ordinateur possédant son propre nom.

Difficulté de balancer le travail entre les ordinateurs

Difficile d’obtenir une bonne performance losrqu’il y a plusieurs processus en concurrence pour l’utilisation des processeurs◦ Ex. La mémoire cache sert les processeurs et

non pas les processus.

91

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

Quel est le meilleur Quel est le meilleur modèle?modèle?L’utilisation d’un système d’exploitation

unique et complet facilitant le déboguage (e.g. Linux) plaide en faveur des multi-orninateurs symétriques

Les performances d’un processeurs dépendent beaucoup de l’efficacité de sa mémoire cache.◦ Cette situation est favorisé lorsqu’il n’y a qu’un seul

processus par processeur◦ Cela plaide en faveur des multi-ordinateur

asymétrique

92

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

Cluster maisonCluster maisonOrdinateurs regroupésDédié à l’exécution de

programmes parallèlesSans clavier ni écranSystèmes d’exploitation

identiquesImages disque logiques

identiques

93

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

Réseau de station de Réseau de station de travailtravailOrdinateur dispersésLa priorité est donné à l’usagé

qui utilise le clavierLes tâches parallèles sont

exécutées en arrière planDifférents systèmes d’exploitation

Différentes images disque

94

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

5. Taxonomie de Flynn5. Taxonomie de FlynnFlux d’instructionsFlux de donnéesSimple vs. multipleQuatre combinaisons

◦SISD◦SIMD◦MISD◦MIMD

95

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

SISDSISDSingle Instruction, Single DataSystème monoprocesseurNote: On ne compte pas les co-

processeurs◦Calcul en points flottant◦Carte graphique◦I/O

Exemple: PC

96

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

SIMDSIMDSingle Instruction, Multiple Data

Ex. Réseaux de processeurs(e.g., Connection Machine, nCube, iPSC, etc.)

97

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

MISDMISDMultiple

Instruction,Single Data

Architecture pipeline

Grilles systoliques

Ordinateur tolérant aux fautes Controleur de vol de la

navette spatiale 98

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

MIMDMIMDMultiple Instruction, Multiple Data

◦Multiprocesseurs

◦Multi-ordinateurs

99

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

100